micropython/py
Damien George 6ce4277551 py: Make all LOAD_FAST ops check for unbound local.
This is necessary to catch all cases where locals are referenced before
assignment.  We still keep the _0, _1, _2 versions of LOAD_FAST to help
reduced the byte code size in RAM.

Addresses issue #457.
2014-04-12 18:20:40 +01:00
..
asmthumb.c py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
asmthumb.h py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
asmx64.c
asmx64.h
bc.h
bc0.h py: Make all LOAD_FAST ops check for unbound local. 2014-04-12 18:20:40 +01:00
binary.c modstruct: Basic implementation of native struct alignment and types. 2014-04-11 03:59:16 +03:00
binary.h modstruct: Basic implementation of native struct alignment and types. 2014-04-11 03:59:16 +03:00
builtin.c py: Revert mp_load_attr() to its previous state (not supporting default val). 2014-04-06 02:15:23 +03:00
builtin.h py: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
builtinevex.c py: Add option to compiler to specify default code emitter. 2014-04-06 11:48:15 +01:00
builtinimport.c builtinimport: Implement relative imports. 2014-04-12 18:25:17 +03:00
builtintables.c py: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
builtintables.h py: Make globals and locals proper dictionary objects. 2014-04-05 22:36:42 +01:00
compile.c py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
compile.h py, compiler: Clean up and compress scope/compile structures. 2014-04-09 12:27:39 +01:00
emit.h py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
emitbc.c py: Make all LOAD_FAST ops check for unbound local. 2014-04-12 18:20:40 +01:00
emitcommon.c py: Properly implement deletion of locals and derefs, and detect errors. 2014-04-09 15:26:46 +01:00
emitcpy.c py: Simplify stack get/set to become stack adjust in emitters. 2014-04-10 17:28:54 +00:00
emitglue.c py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
emitglue.h
emitinlinethumb.c py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
emitnative.c py: Improve inline assembler; improve compiler constant folding. 2014-04-12 17:54:52 +01:00
emitpass1.c py: Make all LOAD_FAST ops check for unbound local. 2014-04-12 18:20:40 +01:00
formatfloat.c
formatfloat.h
gc.c gc.c: Remove superfluous typedef (bute defined in misc.h). 2014-04-09 04:13:21 +03:00
gc.h py: Improve GC locking/unlocking, and make it part of the API. 2014-04-08 11:31:21 +00:00
grammar.h
lexer.c py: Fix lexer so it doesn't allow ! and .. 2014-04-10 12:19:33 +01:00
lexer.h
lexerstr.c
lexerunix.c Make lexerunix not allocate RAM for the entire script. 2014-04-10 15:00:58 +01:00
lexerunix.h
makeqstrdata.py py: Preprocess qstrdefs.h before feeding to makeqstrdata.py. 2014-04-12 00:39:55 +03:00
malloc.c py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
map.c py: Revert revert for allocation policy of set hash table. 2014-04-07 01:16:17 +01:00
misc.h py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
mkenv.mk Replace some Makefile commands with variables in py/mkenv.mk 2014-04-07 01:35:45 +01:00
mkrules.mk Update mkrules.mk 2014-04-11 00:41:59 +01:00
modarray.c
modcollections.c
modio.c
modmath.c
modmicropython.c
modstruct.c modstruct: Basic implementation of native struct alignment and types. 2014-04-11 03:59:16 +03:00
mpconfig.h mpconfig.h: Add basic support for target endianness configuration. 2014-04-11 03:58:49 +03:00
mpz.c py: Add comment mpz function, and free memory used for string printing. 2014-04-08 23:11:00 +01:00
mpz.h Add string formatting support for longlong and mpz. 2014-04-07 11:38:45 -07:00
nlr.h Add a check for NULL nlr_top in nlr_jump. 2014-04-08 14:08:14 +00:00
nlrthumb.S Add a check for NULL nlr_top in nlr_jump. 2014-04-08 14:08:14 +00:00
nlrx64.S Add a check for NULL nlr_top in nlr_jump. 2014-04-08 14:08:14 +00:00
nlrx86.S Add a check for NULL nlr_top in nlr_jump. 2014-04-08 14:08:14 +00:00
obj.c py: Convert some macros to inline functions (in obj.h). 2014-04-11 11:16:53 +00:00
obj.h py: Add 'static' to inline function MP_BOOL; remove category_t. 2014-04-12 17:53:05 +01:00
objarray.c binary: Rename array accessors for clarity. 2014-04-11 03:58:49 +03:00
objarray.h py: Make bytearray a proper type. 2014-04-08 22:11:40 +03:00
objbool.c
objboundmeth.c
objcell.c
objclosure.c
objcomplex.c py: Implement float and complex == and !=. 2014-04-11 10:10:37 +01:00
objdict.c py: Fix up object equality test. 2014-04-11 10:52:06 +00:00
objenumerate.c
objexcept.c py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
objfilter.c
objfloat.c py: Implement float and complex == and !=. 2014-04-11 10:10:37 +01:00
objfun.c py: Change compile order for default positional and keyword args. 2014-04-11 13:38:30 +00:00
objgenerator.c py: Clear state to MP_OBJ_NULL before executing byte code. 2014-04-09 19:53:31 +01:00
objgenerator.h
objgetitemiter.c
objint.c py: Make it so that printing a small int does not allocate heap memory. 2014-04-08 23:30:46 +01:00
objint.h py: Make it so that printing a small int does not allocate heap memory. 2014-04-08 23:30:46 +01:00
objint_longlong.c py: Remove useless implementations of NOT_EQUAL in binary_op's. 2014-04-12 00:20:39 +01:00
objint_mpz.c py: Remove useless implementations of NOT_EQUAL in binary_op's. 2014-04-12 00:20:39 +01:00
objlist.c py: Remove useless implementations of NOT_EQUAL in binary_op's. 2014-04-12 00:20:39 +01:00
objmap.c
objmodule.c py: Finish implementation of all del opcodes. 2014-04-08 21:11:49 +01:00
objmodule.h
objnamedtuple.c
objnone.c
objobject.c py: Make all objects and instances derive from object. 2014-04-05 22:45:23 +01:00
objrange.c
objset.c py: Remove useless implementations of NOT_EQUAL in binary_op's. 2014-04-12 00:20:39 +01:00
objslice.c
objstr.c py: Simplify and improve mp_get_index. 2014-04-11 10:40:38 +00:00
objtuple.c py: Remove useless implementations of NOT_EQUAL in binary_op's. 2014-04-12 00:20:39 +01:00
objtuple.h
objtype.c py: Remove DELETE_SUBSCR opcode, combine with STORE_SUBSCR. 2014-04-08 21:32:29 +01:00
objzip.c
parse.c py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
parse.h py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
parsehelper.c py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
parsehelper.h
parsenum.c Remove exception name from inside the exception message 2014-04-09 19:56:38 +01:00
parsenum.h
parsenumbase.c
parsenumbase.h
pfenv.c py: Reinstate old pfenv_print_int function for stmhal's printf. 2014-04-08 22:10:37 +01:00
pfenv.h py: Reinstate old pfenv_print_int function for stmhal's printf. 2014-04-08 22:10:37 +01:00
py-version.sh
py.mk py: Preprocess qstrdefs.h before feeding to makeqstrdata.py. 2014-04-12 00:39:55 +03:00
qstr.c
qstr.h py: Add 'static' to inline function MP_BOOL; remove category_t. 2014-04-12 17:53:05 +01:00
qstrdefs.h builtinimport: Set __path__ attribute on packages. 2014-04-12 00:39:55 +03:00
repl.c py: Continue line if last character is backslash. 2014-04-08 11:33:28 +00:00
repl.h Improve REPL detecting when input needs to continue. 2014-04-08 11:04:29 +00:00
runtime.c py: Fix compiler warning when floats disabled. 2014-04-12 13:04:44 +01:00
runtime.h py: Remove obsolete mp_delete_subscr declaration. 2014-04-08 22:06:31 +01:00
runtime0.h py, compiler: Clean up and compress scope/compile structures. 2014-04-09 12:27:39 +01:00
scope.c py, compiler: Turn id_info_t.param into a set of flags. 2014-04-09 14:42:51 +01:00
scope.h py: Properly implement deletion of locals and derefs, and detect errors. 2014-04-09 15:26:46 +01:00
sequence.c
showbc.c py: Make all LOAD_FAST ops check for unbound local. 2014-04-12 18:20:40 +01:00
smallint.c
smallint.h
stream.c py: Replace stream_p with *stream_p in mp_obj_type_t. 2014-04-05 23:02:23 +01:00
stream.h
unicode.c py: Make form-feed character a space (following C isspace). 2014-04-10 11:39:36 +01:00
vm.c py: Make all LOAD_FAST ops check for unbound local. 2014-04-12 18:20:40 +01:00
vstr.c