circuitpython/py
Scott Shawcroft c340596580
Add selective collect to memory allocations
By selectively collecting an allocation, we can skip scanning many
allocations for pointers because we know up front they won't have
them. This helps a ton when large buffers are being used and memory is
slow (PSRAM). In one Fruit Jam example GC times drop from 80+ms to
~25ms. The example uses a number of bitmaps that are now no longer
scanned.
2025-04-22 14:07:00 -07:00
..
argcheck.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
asmarm.c
asmarm.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
asmbase.c
asmbase.h
asmthumb.c
asmthumb.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
asmx64.c
asmx64.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
asmx86.c
asmx86.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
asmxtensa.c
asmxtensa.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
bc.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
bc.h Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
bc0.h
binary.c Shrink non-FULL builds (SAMDs mostly) 2025-04-17 14:26:04 -07:00
binary.h
builtin.h
builtinevex.c
builtinhelp.c change remaining STATIC to static 2024-09-03 17:40:07 -04:00
builtinimport.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
circuitpy_defns.mk Merge remote-tracking branch 'adafruit/main' into wifi-power-management 2025-04-21 16:09:23 -04:00
circuitpy_mkenv.mk
circuitpy_mpconfig.h Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
circuitpy_mpconfig.mk Merge remote-tracking branch 'adafruit/main' into wifi-power-management 2025-04-21 16:09:23 -04:00
compile.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
compile.h
dynruntime.h restore async scope flag to previous bit position 2024-09-12 18:06:17 -04:00
dynruntime.mk
emit.h
emitbc.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
emitcommon.c
emitglue.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
emitglue.h fix raw_code is_generator and is_async 2024-09-13 11:35:17 -04:00
emitinlinethumb.c
emitinlinextensa.c
emitnarm.c
emitnative.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
emitnthumb.c
emitnx64.c
emitnx86.c
emitnxtensa.c
emitnxtensawin.c
enum.c
enum.h
formatfloat.c address review comments 2024-08-21 16:50:19 -04:00
formatfloat.h
frozenmod.c
frozenmod.h
gc.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
gc.h Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
grammar.h
lexer.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
lexer.h
make_root_pointers.py
makecompresseddata.py
makemoduledefs.py
makeqstrdata.py Add Zephyr port 2025-02-04 11:24:13 -08:00
makeqstrdefs.py Add Zephyr port 2025-02-04 11:24:13 -08:00
maketranslationdata.py Switch to ruff like MicroPython 2025-02-05 11:09:15 -08:00
makeversionhdr.py Switch to ruff like MicroPython 2025-02-05 11:09:15 -08:00
malloc.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
map.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
misc.h Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
mkenv.mk MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
mkrules.cmake
mkrules.mk Allow boards to select device HCI or native HCI implementation. 2024-12-07 09:32:59 -08:00
modarray.c
modbuiltins.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
modcmath.c
modcollections.c
moderrno.c Add errno.EROFS and errno.ENOSPC 2024-10-18 16:36:22 -04:00
modgc.c
modio.c
modmath.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
modmicropython.c change remaining STATIC to static 2024-09-03 17:40:07 -04:00
modstruct.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
modsys.c change remaining STATIC to static 2024-09-03 17:40:07 -04:00
modthread.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
mpconfig.h Shrink non-FULL builds (SAMDs mostly) 2025-04-17 14:26:04 -07:00
mperrno.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
mphal.h
mpprint.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
mpprint.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
mpstate.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
mpstate.h Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
mpthread.h
mpz.c non-conflict merge changes 2024-09-05 14:54:18 -04:00
mpz.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
nativeglue.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nativeglue.h fix compilation issues; remove more uctypes mentions 2024-09-10 16:04:47 -04:00
nlr.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
nlr.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
nlraarch64.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nlrmips.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nlrpowerpc.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nlrsetjmp.c
nlrthumb.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nlrx64.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nlrx86.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
nlrxtensa.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
obj.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
obj.h Throw TypeError when json-serializing invalid types 2024-11-04 09:16:44 -06:00
objarray.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objarray.h
objattrtuple.c
objbool.c Throw TypeError when json-serializing invalid types 2024-11-04 09:16:44 -06:00
objboundmeth.c
objcell.c
objclosure.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objcomplex.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objdeque.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objdict.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objenumerate.c
objexcept.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objexcept.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
objfilter.c
objfloat.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objfun.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objfun.h py/objfun.h: prevent cast-align warnings 2024-09-14 12:48:49 -04:00
objgenerator.c working on compilation errors 2024-09-06 23:10:41 -04:00
objgenerator.h
objgetitemiter.c
objint.c py/objint.c: mark CIRCUITPY-CHANGEs 2025-01-06 13:56:18 -05:00
objint.h
objint_longlong.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
objint_mpz.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objlist.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objlist.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
objmap.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objmodule.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objmodule.h
objnamedtuple.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objnamedtuple.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
objnone.c Throw TypeError when json-serializing invalid types 2024-11-04 09:16:44 -06:00
objobject.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objpolyiter.c
objproperty.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objproperty.h non-conflict merge changes 2024-09-05 14:54:18 -04:00
objrange.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objreversed.c
objset.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objsingleton.c
objslice.c change remaining STATIC to static 2024-09-03 17:40:07 -04:00
objstr.c Throw TypeError when json-serializing invalid types 2024-11-04 09:16:44 -06:00
objstr.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
objstringio.c change remaining STATIC to static 2024-09-03 17:40:07 -04:00
objstringio.h
objstrunicode.c Throw TypeError when json-serializing invalid types 2024-11-04 09:16:44 -06:00
objtraceback.c non-conflict merge changes 2024-09-05 14:54:18 -04:00
objtraceback.h non-conflict merge changes 2024-09-05 14:54:18 -04:00
objtuple.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objtuple.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
objtype.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
objtype.h
objzip.c
opmethods.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
pairheap.c
pairheap.h
parse.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
parse.h
parsenum.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
parsenum.h
parsenumbase.c
parsenumbase.h
persistentcode.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
persistentcode.h
profile.c
profile.h
proto.c
proto.h
py.cmake MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
py.mk (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
pystack.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
pystack.h Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
qstr.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
qstr.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
qstrdefs.h
reader.c
reader.h
repl.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
repl.h
ringbuf.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
ringbuf.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
runtime.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
runtime.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
runtime0.h restore async scope flag to previous bit position 2024-09-12 18:06:17 -04:00
runtime_utils.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
scheduler.c Add Zephyr port 2025-02-04 11:24:13 -08:00
scope.c Add selective collect to memory allocations 2025-04-22 14:07:00 -07:00
scope.h
sequence.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
showbc.c
smallint.c
smallint.h
stackctrl.c MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
stackctrl.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
stream.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
stream.h (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
unicode.c
unicode.h
usermod.cmake
version.py Fix version determination for 10.x 2025-04-01 14:35:38 -07:00
vm.c change remaining STATIC to static 2024-09-03 17:40:07 -04:00
vmentrytable.h MPy v1.22 merge: initial merge; not compiled yet 2024-07-25 15:16:24 -04:00
vstr.c (only) reserve merge conflicts 2024-08-28 16:31:37 -04:00
warning.c