micropython/py
Angus Gratton e273f6d2e5 WIP: Add Valgrind "max address space" option.
This option prevents the Python heap from reusing freed memory addresses
for new allocations (obviously only viable for some workloads!)

Advantage is that valgrind will be able to catch any use-after-free, that
might have been missed if the freed memory address was reallocated for
another use.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-04-03 18:21:04 +11:00
..
argcheck.c
asmarm.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmarm.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmbase.c
asmbase.h
asmthumb.c
asmthumb.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx64.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx64.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx86.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx86.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmxtensa.c py/asmxtensa: Optimise asm_xtensa_mov_reg_i32_optimised() for tiny ints. 2024-03-19 10:31:36 +11:00
asmxtensa.h py/asmxtensa: Optimise asm_xtensa_mov_reg_i32_optimised() for tiny ints. 2024-03-19 10:31:36 +11:00
bc.c
bc.h
bc0.h
binary.c py/binary: Support half-float 'e' format in struct pack/unpack. 2024-03-20 14:13:49 +11:00
binary.h
builtin.h
builtinevex.c
builtinhelp.c
builtinimport.c
compile.c py/compile: Add option to allow compiling top-level await. 2024-03-22 13:05:25 +11:00
compile.h py/compile: Add option to allow compiling top-level await. 2024-03-22 13:05:25 +11:00
dynruntime.h py/dynruntime: Add mp_binary_get_size/get_val_array/set_val_array. 2024-03-28 16:18:09 +11:00
dynruntime.mk
emit.h
emitbc.c
emitcommon.c
emitglue.c
emitglue.h
emitinlinethumb.c
emitinlinextensa.c
emitnarm.c
emitnative.c py/emitnative: Implement viper unary ops positive, negative and invert. 2024-03-19 10:31:36 +11:00
emitnthumb.c
emitnx64.c
emitnx86.c
emitnxtensa.c
emitnxtensawin.c
formatfloat.c
formatfloat.h
frozenmod.c
frozenmod.h
gc.c WIP: Add Valgrind "max address space" option. 2024-04-03 18:21:04 +11:00
gc.h
gc_valgrind.h py/gc: Support valgrind memcheck on the Python heap. 2024-04-03 18:18:40 +11:00
grammar.h
lexer.c
lexer.h
make_root_pointers.py
makecompresseddata.py
makemoduledefs.py
makeqstrdata.py py/makeqstrdata.py: Ensure that scope names get low qstr values. 2024-03-26 22:52:25 +11:00
makeqstrdefs.py
makeversionhdr.py
malloc.c
map.c
misc.h
mkenv.mk py/mkenv: Allow providing STRIP as an environment variable. 2024-04-03 18:18:40 +11:00
mkrules.cmake
mkrules.mk
modarray.c
modbuiltins.c
modcmath.c
modcollections.c
moderrno.c
modgc.c
modio.c
modmath.c
modmicropython.c
modstruct.c
modsys.c
modthread.c
mpconfig.h WIP: Add Valgrind "max address space" option. 2024-04-03 18:21:04 +11:00
mperrno.h
mphal.h
mpprint.c
mpprint.h
mpstate.c
mpstate.h
mpthread.h
mpz.c
mpz.h
nativeglue.c py/dynruntime: Add mp_binary_get_size/get_val_array/set_val_array. 2024-03-28 16:18:09 +11:00
nativeglue.h py/dynruntime: Add mp_binary_get_size/get_val_array/set_val_array. 2024-03-28 16:18:09 +11:00
nlr.c
nlr.h
nlraarch64.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrmips.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrpowerpc.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrsetjmp.c
nlrthumb.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrx64.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrx86.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrxtensa.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
obj.c
obj.h
objarray.c
objarray.h
objattrtuple.c
objbool.c
objboundmeth.c
objcell.c
objclosure.c
objcomplex.c
objdeque.c py/objdeque: Expand implementation to be doubly-ended and support iter. 2024-03-18 14:10:14 +11:00
objdict.c
objenumerate.c
objexcept.c
objexcept.h
objfilter.c
objfloat.c
objfun.c
objfun.h
objgenerator.c
objgenerator.h
objgetitemiter.c
objint.c
objint.h
objint_longlong.c
objint_mpz.c
objlist.c
objlist.h
objmap.c
objmodule.c
objmodule.h
objnamedtuple.c
objnamedtuple.h
objnone.c
objobject.c
objpolyiter.c
objproperty.c
objrange.c
objreversed.c
objset.c
objsingleton.c
objslice.c
objstr.c
objstr.h
objstringio.c
objstringio.h
objstrunicode.c
objtuple.c
objtuple.h
objtype.c py/makeqstrdata.py: Ensure that scope names get low qstr values. 2024-03-26 22:52:25 +11:00
objtype.h
objzip.c
opmethods.c
pairheap.c
pairheap.h
parse.c py/parse: Zero out dangling parse tree pointer to fix potential GC leak. 2024-03-22 10:49:20 +11:00
parse.h
parsenum.c
parsenum.h
parsenumbase.c
parsenumbase.h
persistentcode.c
persistentcode.h py/persistentcode: Bump .mpy sub-version to 6.3. 2024-03-28 16:18:26 +11:00
profile.c
profile.h
py.cmake
py.mk
pystack.c
pystack.h
qstr.c py/makeqstrdata.py: Ensure that scope names get low qstr values. 2024-03-26 22:52:25 +11:00
qstr.h
qstrdefs.h
reader.c
reader.h
repl.c
repl.h
ringbuf.c
ringbuf.h
runtime.c
runtime.h
runtime0.h
runtime_utils.c
scheduler.c
scope.c py/makeqstrdata.py: Ensure that scope names get low qstr values. 2024-03-26 22:52:25 +11:00
scope.h
sequence.c
showbc.c
smallint.c
smallint.h
stackctrl.c
stackctrl.h
stream.c py/stream: Factor stream implementations. 2024-03-15 18:11:28 +11:00
stream.h py/stream: Factor stream implementations. 2024-03-15 18:11:28 +11:00
unicode.c
unicode.h
usermod.cmake
vm.c
vmentrytable.h
vstr.c
warning.c