circuitpython/py
Damien George e181c0dc07 py: Fix optimised for-loop compiler so it follows proper semantics.
You can now assign to the range end variable and the for-loop still
works correctly.  This fully addresses issue #565.

Also fixed a bug with the stack not being fully popped when breaking out
of an optimised for-loop (and it's actually impossible to write a test
for this case!).
2014-12-12 17:19:56 +00:00
..
argcheck.c py: Use shorter, static error msgs when ERROR_REPORTING_TERSE enabled. 2014-11-06 17:36:16 +00:00
asmarm.c py: Implement native load for viper. 2014-10-12 16:59:29 +01:00
asmarm.h py: Implement native load for viper. 2014-10-12 16:59:29 +01:00
asmthumb.c py: Make macro names in assemblers consistent, and tidy up a bit. 2014-09-29 19:42:06 +01:00
asmthumb.h py: Make macro names in assemblers consistent, and tidy up a bit. 2014-09-29 19:42:06 +01:00
asmx64.c py: Implement native load for viper. 2014-10-12 16:59:29 +01:00
asmx64.h py: Implement native load for viper. 2014-10-12 16:59:29 +01:00
asmx86.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
asmx86.h py: Implement native load for viper. 2014-10-12 16:59:29 +01:00
bc.c py: Fix some macros defines; cleanup some includes. 2014-11-05 21:16:41 +00:00
bc.h py: Store bytecode arg names in bytecode (were in own array). 2014-10-25 20:23:13 +01:00
bc0.h py: Compress load-int, load-fast, store-fast, unop, binop bytecodes. 2014-10-25 20:23:13 +01:00
binary.c py: Rename mp_obj_int_get to mp_obj_int_get_truncated; fix struct.pack. 2014-12-05 23:13:52 +00:00
binary.h py: Make mp_binary_set_val work on big endian machine. 2014-10-06 15:05:35 +00:00
builtin.h py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
builtinevex.c py: Implement compile builtin, enabled only on unix port. 2014-10-25 22:07:25 +01:00
builtinimport.c py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
compile.c py: Fix optimised for-loop compiler so it follows proper semantics. 2014-12-12 17:19:56 +00:00
compile.h py: Implement proper context save/restore for eval/exec; factor code. 2014-10-05 20:13:34 +01:00
emit.h py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +01:00
emitbc.c py: Compress load-int, load-fast, store-fast, unop, binop bytecodes. 2014-10-25 20:23:13 +01:00
emitcommon.c py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +01:00
emitcpy.c py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +01:00
emitglue.c unix: Make -v dump memory info at exit. 2014-10-26 22:36:56 +00:00
emitglue.h py: Store bytecode arg names in bytecode (were in own array). 2014-10-25 20:23:13 +01:00
emitinlinethumb.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
emitnative.c py: Partially fix viper multi-comparison; add test for it. 2014-10-19 19:00:51 +01:00
emitpass1.c py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +01:00
formatfloat.c formatfloat.c: Typo fix in comment. 2014-07-17 20:45:58 +03:00
formatfloat.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
gc.c py: Fix some macros defines; cleanup some includes. 2014-11-05 21:16:41 +00:00
gc.h py: Make gc.enable/disable just control auto-GC; alloc is still allowed. 2014-10-31 21:30:46 +00:00
grammar.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
lexer.c py: Fix printing of size_t entity; fix qemu-arm for changes to lexer. 2014-12-05 22:50:16 +00:00
lexer.h py: Optimise lexer by exposing lexer type. 2014-12-05 19:35:18 +00:00
lexerstr.c py: Optimise lexer by exposing lexer type. 2014-12-05 19:35:18 +00:00
lexerunix.c py: Optimise lexer by exposing lexer type. 2014-12-05 19:35:18 +00:00
lexerunix.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
makeqstrdata.py py: Use % str formatting instead of {} in makeqstrdata.py. 2014-09-05 13:16:19 +01:00
malloc.c py: Make gc.enable/disable just control auto-GC; alloc is still allowed. 2014-10-31 21:30:46 +00:00
map.c map: Add empty fixed map. 2014-11-27 17:37:07 +00:00
misc.h py: Add further checks for failed malloc in lexer init functions. 2014-10-09 16:53:37 +01:00
mkenv.mk py, mk: Revert change where build variables set with ?=. 2014-06-07 13:14:45 +01:00
mkrules.mk py: Fix order-only dependencies in mkrules.mk and py.mk. 2014-11-06 18:48:38 +00:00
modarray.c Use MP_DEFINE_CONST_DICT macro to define module dicts. 2014-11-29 14:39:27 +00:00
modbuiltins.c py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
modcmath.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
modcollections.c Use MP_DEFINE_CONST_DICT macro to define module dicts. 2014-11-29 14:39:27 +00:00
modgc.c Use MP_DEFINE_CONST_DICT macro to define module dicts. 2014-11-29 14:39:27 +00:00
modio.c Use MP_DEFINE_CONST_DICT macro to define module dicts. 2014-11-29 14:39:27 +00:00
modmath.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
modmicropython.c modmicropython: Move mem_info() and qstr_info() functions from unix port. 2014-12-01 20:42:24 +02:00
modstruct.c Use MP_DEFINE_CONST_DICT macro to define module dicts. 2014-11-29 14:39:27 +00:00
modsys.c modsys: Add sys.print_exception(exc, file=sys.stdout) function. 2014-12-08 20:25:49 +00:00
mpconfig.h py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
mpz.c mpz: Fix 64bit msvc build 2014-10-30 23:00:24 +00:00
mpz.h py: Fix function type: () -> (void). 2014-12-10 18:05:42 +00:00
nativeglue.c py: Add casting to viper; add native mem stores to viper. 2014-09-29 22:10:41 +01:00
nlr.h py: Add NLR support for xtensa CPU. 2014-11-27 20:29:33 +00:00
nlrsetjmp.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
nlrthumb.S py: Fix some macros defines; cleanup some includes. 2014-11-05 21:16:41 +00:00
nlrx64.S py: Clean up nlr*.S to make it easier to read; fix clang .bss error. 2014-09-26 13:07:26 +00:00
nlrx86.S py: Clean up nlr*.S to make it easier to read; fix clang .bss error. 2014-09-26 13:07:26 +00:00
nlrxtensa.S py: Add NLR support for xtensa CPU. 2014-11-27 20:29:33 +00:00
obj.c modsys: Add sys.print_exception(exc, file=sys.stdout) function. 2014-12-08 20:25:49 +00:00
obj.h py: Tidy up a few function declarations. 2014-12-10 22:37:07 +00:00
objarray.c py: Allow bytes/bytearray/array to be init'd by buffer protocol objects. 2014-12-04 15:46:14 +00:00
objarray.h py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01:00
objbool.c py: Make native emitter handle multi-compare and not/is not/not in ops. 2014-09-23 14:15:45 +00:00
objboundmeth.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objcell.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objclosure.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objcomplex.c py and libm: Add asinf,acosf; print higher precision for float. 2014-09-11 22:24:45 +01:00
objdict.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objenumerate.c Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objexcept.c py: Make gc.enable/disable just control auto-GC; alloc is still allowed. 2014-10-31 21:30:46 +00:00
objfilter.c Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objfloat.c py: Implement divmod, % and proper // for floating point. 2014-09-13 18:43:09 +01:00
objfun.c py: Fix some macros defines; cleanup some includes. 2014-11-05 21:16:41 +00:00
objfun.h py: Store bytecode arg names in bytecode (were in own array). 2014-10-25 20:23:13 +01:00
objgenerator.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objgenerator.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objgetitemiter.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objint.c py: Rename mp_obj_int_get to mp_obj_int_get_truncated; fix struct.pack. 2014-12-05 23:13:52 +00:00
objint.h py: Convert [u]int to mp_[u]int_t where appropriate. 2014-10-03 17:44:14 +00:00
objint_longlong.c py: Rename mp_obj_int_get to mp_obj_int_get_truncated; fix struct.pack. 2014-12-05 23:13:52 +00:00
objint_mpz.c py: Rename mp_obj_int_get to mp_obj_int_get_truncated; fix struct.pack. 2014-12-05 23:13:52 +00:00
objlist.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objlist.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objmap.c Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objmodule.c py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
objmodule.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objnamedtuple.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objnone.c py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
objobject.c Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objproperty.c Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objrange.c py: Convert [u]int to mp_[u]int_t where appropriate. 2014-10-03 17:44:14 +00:00
objreversed.c Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objset.c py: Make map, dict, set use mp_int_t/mp_uint_t exclusively. 2014-08-30 13:23:35 +01:00
objslice.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objstr.c py: Fix function type: () -> (void). 2014-12-10 18:05:42 +00:00
objstr.h py: Change [u]int to mp_[u]int_t in qstr.[ch], and some other places. 2014-10-03 19:52:22 +01:00
objstringio.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
objstrunicode.c objstr: Allow to convert any buffer proto object to str. 2014-10-31 00:03:53 +02:00
objtuple.c py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
objtuple.h Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objtype.c py: Use shorter, static error msgs when ERROR_REPORTING_TERSE enabled. 2014-11-06 17:36:16 +00:00
objtype.h py: Fix builtin callable so it checks user-defined instances correctly. 2014-11-03 16:09:39 +00:00
objzip.c py: Small simplifications in tuple and list accessors. 2014-08-30 15:17:47 +01:00
opmethods.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parse.c py: Optimise lexer by exposing lexer type. 2014-12-05 19:35:18 +00:00
parse.h py: Convert [u]int to mp_[u]int_t where appropriate. 2014-10-03 17:44:14 +00:00
parsehelper.c py: Optimise lexer by exposing lexer type. 2014-12-05 19:35:18 +00:00
parsehelper.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parsenum.c py: Use shorter, static error msgs when ERROR_REPORTING_TERSE enabled. 2014-11-06 17:36:16 +00:00
parsenum.h parser: Convert (u)int to mp_(u)int_t. 2014-07-03 14:13:33 +01:00
parsenumbase.c parser: Convert (u)int to mp_(u)int_t. 2014-07-03 14:13:33 +01:00
parsenumbase.h parser: Convert (u)int to mp_(u)int_t. 2014-07-03 14:13:33 +01:00
pfenv.c py: Convert [u]int to mp_[u]int_t where appropriate. 2014-10-03 17:44:14 +00:00
pfenv.h modsys: Add sys.print_exception(exc, file=sys.stdout) function. 2014-12-08 20:25:49 +00:00
pfenv_printf.c py: Remove static from definition of pfenv_printf. 2014-12-10 22:11:01 +00:00
py-version.sh - Let the build environment decide about the toolchain to be used, in case 2014-06-07 09:16:42 +02:00
py.mk py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
qstr.c py: Make gc.enable/disable just control auto-GC; alloc is still allowed. 2014-10-31 21:30:46 +00:00
qstr.h py: Change [u]int to mp_[u]int_t in qstr.[ch], and some other places. 2014-10-03 19:52:22 +01:00
qstrdefs.h modsys: Add sys.print_exception(exc, file=sys.stdout) function. 2014-12-08 20:25:49 +00:00
repl.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00
repl.h Tidy up some configuration options. 2014-05-21 20:32:59 +01:00
runtime.c py: Allow builtins to be overridden. 2014-12-09 16:19:48 +00:00
runtime.h py: Remove obsolute function declaration. 2014-11-06 17:31:18 +00:00
runtime0.h py: Make native emitter handle multi-compare and not/is not/not in ops. 2014-09-23 14:15:45 +00:00
scope.c py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +01:00
scope.h py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +01:00
sequence.c py: Convert [u]int to mp_[u]int_t where appropriate. 2014-10-03 17:44:14 +00:00
showbc.c py: Fix label printing in showbc; print sp in vm trace. 2014-12-12 17:18:56 +00:00
smallint.c py: Fix smallint modulo with negative arguments. 2014-10-22 23:05:50 +01:00
smallint.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
stackctrl.c py: Fix function type: () -> (void). 2014-12-10 18:05:42 +00:00
stackctrl.h py: Fix function type: () -> (void). 2014-12-10 18:05:42 +00:00
stream.c py: Rename mp_obj_int_get to mp_obj_int_get_truncated; fix struct.pack. 2014-12-05 23:13:52 +00:00
stream.h stream: Implement seek operation support via ioctl, wrapped in generic method. 2014-11-17 00:16:14 +02:00
unicode.c py: Tidy up a few function declarations. 2014-12-10 22:37:07 +00:00
unicode.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
vm.c py: Fix label printing in showbc; print sp in vm trace. 2014-12-12 17:18:56 +00:00
vmentrytable.h py: Compress load-int, load-fast, store-fast, unop, binop bytecodes. 2014-10-25 20:23:13 +01:00
vstr.c py: Make functions static where appropriate. 2014-12-10 22:08:14 +00:00