micropython/py
Damien George 57e99ebc86 py: Add simple way of looking up constants in compiler.
Working towards trying to support compile-time constants (see discussion
in issue #227), this patch allows the compiler to look inside arbitrary
uPy objects at compile time.  The objects to search are given by the
macro MICROPY_EXTRA_CONSTANTS (so they must be constant/ROM objects),
and the constant folding occures on forms base.attr (both base and attr
must be id's).

It works, but it breaks strict CPython compatibility, since the lookup
will succeed even without importing the namespace.
2014-04-10 22:42:11 +01:00
..
asmthumb.c py: Make labels unsigned ints (converted from int). 2014-04-10 14:11:31 +01:00
asmthumb.h py: Make labels unsigned ints (converted from int). 2014-04-10 14:11:31 +01:00
asmx64.c
asmx64.h
bc.h
bc0.h py: Properly implement deletion of locals and derefs, and detect errors. 2014-04-09 15:26:46 +01:00
binary.c py: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
binary.h py: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
builtin.c
builtin.h py: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
builtinevex.c
builtinimport.c Remove exception name from inside the exception message 2014-04-09 19:56:38 +01:00
builtintables.c py: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
builtintables.h
compile.c py: Add simple way of looking up constants in compiler. 2014-04-10 22:42:11 +01:00
compile.h py, compiler: Clean up and compress scope/compile structures. 2014-04-09 12:27:39 +01:00
emit.h py: Simplify stack get/set to become stack adjust in emitters. 2014-04-10 17:28:54 +00:00
emitbc.c py: Simplify stack get/set to become stack adjust in emitters. 2014-04-10 17:28:54 +00: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
emitglue.h
emitinlinethumb.c py: Make labels unsigned ints (converted from int). 2014-04-10 14:11:31 +01:00
emitnative.c py: Simplify stack get/set to become stack adjust in emitters. 2014-04-10 17:28:54 +00:00
emitpass1.c py: Simplify stack get/set to become stack adjust in emitters. 2014-04-10 17:28:54 +00: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 makeqstrdata.py: Add support for conditionally defined qstrs. 2014-04-10 03:38:42 +03:00
malloc.c py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
map.c
misc.h py: Check explicitly for memory allocation failure in parser. 2014-04-10 14:27:31 +00:00
mkenv.mk
mkrules.mk
modarray.c
modcollections.c
modio.c
modmath.c
modmicropython.c
modstruct.c py: Fix modstruct to compile on 64-bit machine. 2014-04-10 13:53:31 +01:00
mpconfig.h py: Add simple way of looking up constants in compiler. 2014-04-10 22:42:11 +01: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
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: Add mp_obj_is_integer; make mp_get_index check for long int. 2014-04-09 19:55:33 +01:00
obj.h py: Fix float/complex binop returning NULL; implement complex power. 2014-04-10 20:08:11 +01:00
objarray.c py: Remove DELETE_SUBSCR opcode, combine with STORE_SUBSCR. 2014-04-08 21:32:29 +01: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: Fix float/complex binop returning NULL; implement complex power. 2014-04-10 20:08:11 +01:00
objdict.c py: Remove DELETE_SUBSCR opcode, combine with STORE_SUBSCR. 2014-04-08 21:32:29 +01: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: Fix float/complex binop returning NULL; implement complex power. 2014-04-10 20:08:11 +01:00
objfun.c objfun: Fix default arguments filling loop, was broken in presense of kwargs. 2014-04-10 05:39:38 +03: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: Make it so that printing a small int does not allocate heap memory. 2014-04-08 23:30:46 +01:00
objint_mpz.c py: Make it so that printing a small int does not allocate heap memory. 2014-04-08 23:30:46 +01:00
objlist.c py: Remove DELETE_SUBSCR opcode, combine with STORE_SUBSCR. 2014-04-08 21:32:29 +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
objrange.c
objset.c
objslice.c
objstr.c objstr: Add TODO-optimize for using .join with arbitrary iterable. 2014-04-10 01:42:40 +03:00
objtuple.c
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: Start implementing "struct" module. 2014-04-10 03:58:03 +03:00
qstr.c
qstr.h
qstrdefs.h py: Start implementing "struct" module. 2014-04-10 03:58:03 +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 float/complex binop returning NULL; implement complex power. 2014-04-10 20:08:11 +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: Properly implement deletion of locals and derefs, and detect errors. 2014-04-09 15:26:46 +01:00
smallint.c
smallint.h
stream.c
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: Fix VM stack overflow detection. 2014-04-10 16:59:44 +00:00
vstr.c