neo-go/pkg/compiler
Evgenii Stratonikov 3729865860 compiler: reimplement for-range loops without syscalls
System.Enumerator.Next costs 1_000_000 gas which is rather big for a
single iteration. Reimplement this by saving current counters on stack.
This approach will use 2 PICKITEMS (270_000 gas) for maps, which is
still cheaper that *.Next syscall.
2020-06-22 13:43:58 +03:00
..
testdata compiler: process interop together with package 2020-06-09 12:41:33 +03:00
analysis.go compiler: process interop together with package 2020-06-09 12:41:33 +03:00
assign_test.go vm: move MaxArraySize and MaxItemSize to stackitem package 2020-06-16 11:32:16 +03:00
binary_expr_test.go vm: make PUSH0 emit Integer 2020-05-22 14:16:32 +03:00
byte_conversion_test.go compiler: allow to convert string constants to []byte 2020-01-27 15:29:52 +03:00
codegen.go compiler: reimplement for-range loops without syscalls 2020-06-22 13:43:58 +03:00
codegen_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
compiler.go cli: use manifest during contract deployment 2020-06-11 10:45:25 +03:00
compiler_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
constant_test.go compiler: emit byte constants properly 2020-05-20 17:45:56 +03:00
convert_test.go compiler: emit Buffer for byte slices 2020-05-20 17:45:56 +03:00
debug.go cli: use manifest during contract deployment 2020-06-11 10:45:25 +03:00
debug_test.go cli: use manifest during contract deployment 2020-06-11 10:45:25 +03:00
for_test.go vm: move StackItem to a separate package 2020-06-08 13:27:08 +03:00
func_scope.go compiler: process interop together with package 2020-06-09 12:41:33 +03:00
function_call_test.go vm: make PUSH0 emit Integer 2020-05-22 14:16:32 +03:00
global_test.go compiler: allow to declare multiple compound types in a var decl 2020-05-19 16:57:02 +03:00
if_test.go vm: make PUSH0 emit Integer 2020-05-22 14:16:32 +03:00
import_test.go vm: make PUSH0 emit Integer 2020-05-22 14:16:32 +03:00
interop_test.go block/transaction: add network magic into the hash 2020-06-18 12:39:50 +03:00
lambda_test.go compiler: add tests for function literal 2020-05-12 16:23:09 +03:00
limit_test.go compiler: emit integers correctly 2020-01-28 16:39:19 +03:00
map_test.go compiler: allow usage of string literals in index expressions 2020-01-23 17:28:35 +03:00
numeric_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
panic_test.go core: move Neo.Runtime/Enumerator/Iterator.* interops to System.* 2020-06-10 12:13:35 +03:00
return_test.go compiler: support named returns 2020-05-06 18:22:52 +03:00
slice_test.go vm: move StackItem to a separate package 2020-06-08 13:27:08 +03:00
struct_test.go vm: move StackItem to a separate package 2020-06-08 13:27:08 +03:00
switch_test.go compiler: implement fallthrough in switch 2020-03-10 12:34:07 +03:00
syscall.go compiler: implement missing System.Contract.* interops 2020-06-17 11:38:34 +03:00
syscall_test.go vm: move StackItem to a separate package 2020-06-08 13:27:08 +03:00
type_test.go compiler: support non-struct methods 2020-05-19 16:40:26 +03:00
types.go compiler: refactor typeinfo functions 2020-05-19 16:40:26 +03:00
util_test.go vm: remove crypto-related opcodes 2020-04-29 19:16:38 +03:00
verify_test.go vm: move InteropNameToID to emit package 2020-04-17 11:46:31 +03:00
vm_test.go core: move Neo.Storage.* interops to System.* 2020-06-10 12:13:35 +03:00