micropython/py
Damien George 52b5d76a6b py: Free non-interned strings in the parser when not needed.
mp_parse_node_free now frees the memory associated with non-interned
strings.  And the parser calls mp_parse_node_free when discarding a
non-used node (such as a doc string).

Also, the compiler now frees the parse tree explicitly just before it
exits (as opposed to relying on the caller to do this).

Addresses issue #708 as best we can.
2014-09-23 15:31:56 +00:00
..
argcheck.c py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01:00
asmarm.c py: Make asm_arm_less_op take destination register as first arg. 2014-09-15 16:39:24 +01:00
asmarm.h py: Make asm_arm_less_op take destination register as first arg. 2014-09-15 16:39:24 +01:00
asmthumb.c Add cache flush in py/asmarm.c and add new MP_PLAT_ALLOC_EXEC and MP_PLAT_FREE_EXEC macros 2014-09-03 23:07:42 +02:00
asmthumb.h py: Clean up x86-64 native assembler; allow use of extended regs. 2014-09-07 01:06:19 +01:00
asmx64.c py: Clean up x86-64 native assembler; allow use of extended regs. 2014-09-07 01:06:19 +01:00
asmx64.h py: Clean up x86-64 native assembler; allow use of extended regs. 2014-09-07 01:06:19 +01:00
asmx86.c py: Put define of x86 argument registers in asmx86.h. 2014-09-08 22:16:35 +00:00
asmx86.h py: Put define of x86 argument registers in asmx86.h. 2014-09-08 22:16:35 +00:00
bc.c py: Use variable length encoded uints in more places in bytecode. 2014-09-04 14:44:01 +01:00
bc.h py: Use variable length encoded uints in more places in bytecode. 2014-09-04 14:44:01 +01:00
bc0.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
binary.c py: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
binary.h py: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
builtin.c py: Fix build error when float disabled; add test for divmod. 2014-09-13 19:58:18 +01:00
builtin.h py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
builtinevex.c py: Free non-interned strings in the parser when not needed. 2014-09-23 15:31:56 +00:00
builtinimport.c py: Free non-interned strings in the parser when not needed. 2014-09-23 15:31:56 +00:00
builtintables.c py: Add 'builtins' module. 2014-09-17 23:17:26 +01:00
builtintables.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
compile.c py: Free non-interned strings in the parser when not needed. 2014-09-23 15:31:56 +00:00
compile.h py: Free non-interned strings in the parser when not needed. 2014-09-23 15:31:56 +00: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: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. 2014-09-08 23:05:16 +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 py: Fix line number printing for file with 1 line. 2014-08-26 23:35:57 +01:00
emitglue.h py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
emitinlinethumb.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
emitnative.c py: Make native emitter handle multi-compare and not/is not/not in ops. 2014-09-23 14:15:45 +00: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, gc: Further reduce heap fragmentation with new, faster gc alloc. 2014-08-28 23:06:38 +01:00
gc.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
grammar.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
lexer.c py: Change lexer stream API to return bytes not chars. 2014-07-30 11:46:05 +01:00
lexer.h py: Change lexer stream API to return bytes not chars. 2014-07-30 11:46:05 +01:00
lexerstr.c py: Change lexer stream API to return bytes not chars. 2014-07-30 11:46:05 +01:00
lexerunix.c py: Change lexer stream API to return bytes not chars. 2014-07-30 11:46:05 +01: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: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
map.c py: Make map, dict, set use mp_int_t/mp_uint_t exclusively. 2014-08-30 13:23:35 +01:00
misc.h py: Add generic helper to align a pointer. 2014-07-12 15:57:28 +03:00
mkenv.mk py, mk: Revert change where build variables set with ?=. 2014-06-07 13:14:45 +01:00
mkrules.mk Merge branch 'teensy-new' of github.com:dhylands/micropython into dhylands-teensy-new 2014-07-02 13:42:37 +01:00
modarray.c py: Allow to disable array module and bytearray type. 2014-06-27 21:02:04 +03:00
modcmath.c py, modcmath: Fix doc comment, and add some more of them. 2014-08-11 22:19:44 +00:00
modcollections.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modgc.c doc: Document gc, sys, math, cmath. 2014-08-10 17:50:28 +01:00
modio.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modmath.c doc: Document gc, sys, math, cmath. 2014-08-10 17:50:28 +01:00
modmicropython.c py: Make MP_OBJ_NEW_SMALL_INT cast arg to mp_int_t itself. 2014-07-31 10:49:14 +01:00
modstruct.c py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01:00
modsys.c py: Move definition of mp_sys_exit to core. 2014-09-15 15:53:09 +01:00
mpconfig.h py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
mpz.c py: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
mpz.h py: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
nativeglue.c py: Native emitter now supports delete name & global, and end finally. 2014-09-06 18:38:20 +01:00
nlr.h py: Support arm and thumb ARM ISAs, in addition to thumb2. 2014-06-22 01:40:45 +03:00
nlrsetjmp.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
nlrthumb.S py: Support arm and thumb ARM ISAs, in addition to thumb2. 2014-06-22 01:40:45 +03:00
nlrx64.S unix: Create __bss_start and _end symbols for Mach-O targets. 2014-05-12 00:13:10 +02:00
nlrx86.S Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
obj.c py: Rename mp_builtin_id to mp_obj_id and make it public. 2014-09-07 20:41:09 +01:00
obj.h py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
objarray.c py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01: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 Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01:00
objcell.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objclosure.c py: Change all uint to mp_uint_t in obj.h. 2014-08-30 14:19:41 +01: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: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01: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: Change all uint to mp_uint_t in obj.h. 2014-08-30 14:19:41 +01: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 stmhal: Initialise stack pointer correctly. 2014-09-23 10:59:05 +01:00
objfun.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objgenerator.c py: Use variable length encoded uints in more places in bytecode. 2014-09-04 14:44:01 +01: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: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
objint.h py: Move definition of mp_sys_exit to core. 2014-09-15 15:53:09 +01:00
objint_longlong.c py: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
objint_mpz.c py: Enable struct/binary-helper to parse q and Q sized ints. 2014-09-10 22:10:33 +01:00
objlist.c py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01: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: Print imported module's location (__file__) if available. 2014-09-08 10:45:23 +01:00
objmodule.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objnamedtuple.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
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 Change some parts of the core API to use mp_uint_t instead of uint/int. 2014-08-30 00:35:11 +01: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 Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objstr.c py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
objstr.h py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01:00
objstringio.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
objstrunicode.c py: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01: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: Make tuple and list use mp_int_t/mp_uint_t. 2014-08-30 14:04:14 +01:00
objtype.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01: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: Free non-interned strings in the parser when not needed. 2014-09-23 15:31:56 +00:00
parse.h parser: Convert (u)int to mp_(u)int_t. 2014-07-03 14:13:33 +01:00
parsehelper.c lexer: Convert type (u)int to mp_(u)int_t. 2014-07-03 13:47:47 +01:00
parsehelper.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parsenum.c parser: Convert (u)int to mp_(u)int_t. 2014-07-03 14:13:33 +01: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 Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
pfenv.h py: Make print() accept "file" argument, and actually print to stream. 2014-07-19 21:27:22 +03:00
pfenv_printf.c py: Make print() accept "file" argument, and actually print to stream. 2014-07-19 21:27:22 +03: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: Add native json printing using existing print framework. 2014-09-17 22:56:34 +01:00
qstr.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
qstr.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
qstrdefs.h extmod: Add loads to ujson module. 2014-09-21 23:43:03 +01:00
repl.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
repl.h Tidy up some configuration options. 2014-05-21 20:32:59 +01:00
runtime.c stmhal: Initialise stack pointer correctly. 2014-09-23 10:59:05 +01:00
runtime.h py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01: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: Remove use of int type in obj.h. 2014-08-30 14:28:06 +01:00
showbc.c py: Use variable length encoded uints in more places in bytecode. 2014-09-04 14:44:01 +01:00
smallint.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +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: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01:00
stackctrl.h py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h. 2014-08-30 14:59:21 +01:00
stream.c py: Small cleanup in stream.c. 2014-08-22 18:30:02 +01:00
stream.h stream: Factor out mp_stream_write() method to write a memstring to stream. 2014-07-13 23:14:32 +03:00
unicode.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
unicode.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
vm.c py: Use variable length encoded uints in more places in bytecode. 2014-09-04 14:44:01 +01:00
vmentrytable.h Fix some unused variables, and silence a clang warning about initialization override in vmentrytable.h 2014-05-12 09:06:18 +02:00
vstr.c vstr: Restore bytestr compatibility. 2014-06-27 00:04:18 +03:00