micropython/py
Damien George 3c658a4e75 py: Fix bug where GC collected native/viper/asm function data.
Because (for Thumb) a function pointer has the LSB set, pointers to
dynamic functions in RAM (eg native, viper or asm functions) were not
being traced by the GC.  This patch is a comprehensive fix for this.

Addresses issue #820.
2014-08-24 16:28:17 +01:00
..
argcheck.c Merge branch 'master' of https://github.com/micropython/micropython 2014-05-06 16:52:35 +00:00
asmthumb.c py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
asmthumb.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
asmx64.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
asmx64.h py, compiler: Improve passes; add an extra pass for native emitter. 2014-05-07 17:24:22 +01:00
bc.h py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
bc0.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
binary.c py: binary.c: Properly implement alignment for native unpacked structs. 2014-08-10 23:21:08 +03:00
binary.h binary: Factor out mp_binary_set_int(). 2014-07-05 23:54:03 +03:00
builtin.c py: Implement builtin reversed() function. 2014-08-12 18:33:40 +01:00
builtin.h modzlibd: Decompress part of "zlib" module, based on miniz tinfl.c . 2014-08-13 00:26:19 +03:00
builtinevex.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
builtinimport.c py: Implement __file__ attribute for modules. 2014-07-28 21:21:59 +03:00
builtintables.c py: Put SystemExit in builtin namespace. 2014-08-16 14:32:06 +01:00
builtintables.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
compile.c py: Fix typing of viper locals; allow default types in annotation. 2014-08-15 22:39:08 +01:00
compile.h py: Rename BYTE_CODE to BYTECODE (this was missed in previous rename). 2014-05-12 22:35:37 +01:00
emit.h py: Allow viper to have type annotations. 2014-08-15 16:45:41 +01:00
emitbc.c py: Allow viper to have type annotations. 2014-08-15 16:45:41 +01:00
emitcommon.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
emitcpy.c py: Allow viper to have type annotations. 2014-08-15 16:45:41 +01:00
emitglue.c py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +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: Allow viper to have type annotations. 2014-08-15 16:45:41 +01:00
emitnative.c py: Code clean-up in native emitter; improve thumb native calls. 2014-08-16 22:31:57 +01:00
emitpass1.c py: Improvements to native emitter. 2014-06-30 05:17:25 +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: Speed up GC allocation. 2014-08-22 18:17:02 +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 Bring the C and Python compute_hash functions into consistency 2014-06-07 07:06:18 +10:00
malloc.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
map.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +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 Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
modsys.c doc: Fix up a few docs in sys module. 2014-08-10 17:53:43 +01:00
mpconfig.h py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
mpz.c py: Fix bug in mpn_shl (multi-prec int shift left). 2014-08-07 14:27:48 +00:00
mpz.h py: Improve handling of long-int overflow. 2014-07-31 13:41:43 +00: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: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
obj.h py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
objarray.c objarray: Implement equality testing between arrays and other buffers. 2014-08-10 16:22:57 +03:00
objarray.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objbool.c py: Make MP_OBJ_NEW_SMALL_INT cast arg to mp_int_t itself. 2014-07-31 10:49:14 +01:00
objboundmeth.c objboundmeth: If detailed reporting enabled, print object content. 2014-05-11 02:27:42 +03:00
objcell.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objclosure.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objcomplex.c py: Add .real and .imag attributes to complex numbers. 2014-08-12 19:57:52 +01:00
objdict.c py: Make MP_OBJ_NEW_SMALL_INT cast arg to mp_int_t itself. 2014-07-31 10:49:14 +01:00
objenumerate.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objexcept.c Add support for storing args during an exception raised by an irq. 2014-07-25 14:00:06 -07:00
objfilter.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objfloat.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
objfun.c py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
objfun.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objgenerator.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +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: Fix mult by negative number of tuple, list, str, bytes. 2014-08-13 13:22:24 +01:00
objint.h py: Make long ints hashable. 2014-07-24 14:21:37 +01:00
objint_longlong.c py: Make long ints hashable. 2014-07-24 14:21:37 +01:00
objint_mpz.c py: Improve handling of long-int overflow. 2014-07-31 13:41:43 +00:00
objlist.c py: Fix mult by negative number of tuple, list, str, bytes. 2014-08-13 13:22:24 +01:00
objlist.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objmap.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objmodule.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objmodule.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objnamedtuple.c Rename configuration variables controling Python features. 2014-05-24 23:03:12 +01:00
objnone.c py: Rename MP_OBJ_NOT_SUPPORTED to MP_OBJ_NULL. 2014-05-21 19:42:43 +01:00
objobject.c py: Initial attempts to actually allow implementing __new__ in Python. 2014-05-22 00:32:00 +03:00
objproperty.c Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objrange.c py: Improve range: add len, subscr, proper print. 2014-08-12 19:41:18 +01:00
objreversed.c py: Implement builtin reversed() function. 2014-08-12 18:33:40 +01:00
objset.c py: Make MP_OBJ_NEW_SMALL_INT cast arg to mp_int_t itself. 2014-07-31 10:49:14 +01:00
objslice.c Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objstr.c py: Fix mult by negative number of tuple, list, str, bytes. 2014-08-13 13:22:24 +01:00
objstr.h py: Change hash and len members of str from 16 bit to full word. 2014-08-22 18:34:28 +01:00
objstringio.c py: Change stream protocol API: fns return uint; is_text for text. 2014-07-27 22:38:58 +01:00
objstrunicode.c py: Make MP_OBJ_NEW_SMALL_INT cast arg to mp_int_t itself. 2014-07-31 10:49:14 +01:00
objtuple.c py: Fix mult by negative number of tuple, list, str, bytes. 2014-08-13 13:22:24 +01:00
objtuple.h Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
objtype.c py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
objtype.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objzip.c py: Use mp_arg_check_num in more places. 2014-05-11 18:37:21 +01:00
opmethods.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parse.c py: Allow viper to have type annotations. 2014-08-15 16:45:41 +01: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 modzlibd: Decompress part of "zlib" module, based on miniz tinfl.c . 2014-08-13 00:26:19 +03: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 py: Allow viper to have type annotations. 2014-08-15 16:45:41 +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 py: Code clean-up in native emitter; improve thumb native calls. 2014-08-16 22:31:57 +01:00
runtime.h py: Fix bug where GC collected native/viper/asm function data. 2014-08-24 16:28:17 +01:00
runtime0.h py: Code clean-up in native emitter; improve thumb native calls. 2014-08-16 22:31:57 +01:00
scope.c py: Clean up and simplify functions in scope; add STATIC in compiler. 2014-08-15 14:30:52 +01:00
scope.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
sequence.c Rename machine_(u)int_t to mp_(u)int_t. 2014-07-03 13:25:24 +01:00
showbc.c py: Improve encoding scheme for line-number to bytecode map. 2014-07-31 16:12:01 +00: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 stackctrl: Add "mp_" prefix. 2014-07-01 02:14:08 +03:00
stackctrl.h stackctrl: Add "mp_" prefix. 2014-07-01 02:14:08 +03: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: Improve encoding scheme for line-number to bytecode map. 2014-07-31 16:12:01 +00: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