-
C function annotations
PLACE_IN_ITCM
PLACE_IN_DTCM_BSS
MP_NO_INSTRUMENT
MP_COLD
-
Better keyword arg checking in
mp_arg_parse_all()
-
mp_arg_validate_*(something, ..., qstr arg_name)
:mp_arg_validate_int()
mp_arg_validate_int_min()
mp_arg_validate_int_max()
mp_arg_validate_int_range()
mp_arg_validate_type_float()
mp_arg_validate_obj_float_range()
mp_arg_validate_float_range()
mp_arg_validate_float_non_negative()
mp_arg_validate_length_range()
:"%q length must be %d-%d"
mp_arg_validate_length_min()
mp_arg_validate_length_max()
mp_arg_validate_length()
mp_arg_validate_index_range()
:"%q out of range"
mp_arg_validate_type()
mp_arg_validate_type_in()
mp_arg_validate_type_or_none()
mp_arg_validate_type_string()
mp_arg_validate_type_int()
mp_arg_error_invalid()
:"Invalid %q"
-
Eliminate compiler warnings
- Define all preprocessor macros or use
#if defined(FOO) && FOO
- float-equal
- cast-align
- Define all preprocessor macros or use
-
binary.c
:- type code
x
- allow turning off mpy nonstandard typecodes:
P
,O
,S
,e
val *= 256
instead ofval <<= 8
(undefined behavior on left shift)- add overflow checks
- type code
-
move
extern
s to top level to prevent warnings -
gc_collect()
after eachimport
, to reduce fragmentation -
async:
- distinguish between generators and
async
routines - implement
_-await__()
- disallow
yield
instead ofawait
- distinguish between generators and
-
gc.c
- debugging additions
gc_collect_ptr(void *ptr)
bool gc_ptr_on_heap(void *ptr)
memorymonitor
gc_alloc_possible()
- test for attempted alloc while VM not running
-
translation support
-
qstr
- names for characters: hyphen, space, etc.
-
misc.h
sizeof_field()
-
mkenv.mk
STEPECHO
for quieter builds (also inmkrules.mk
- verbose output: steps, commands, rules
-
modbuiltins.c
- catch
dir()
exceptions - add
print(flush=)
- catch
-
moderrno.c
: common errors have strings -
modmath.c
: remove redundant error message forZeroDivisionError
. -
modstruct.c
: additional error checking -
better traceback supportL:
obj.c
, elsewhere -
some vfs mounts can persist across VM's
-
can print compressed strings
-
permanent pointers list: not to be gc'd
-
stack usage measurement
-
run background tasks during long-running longint operations
-
num_bits()
-
generic_subscpt iterator
-
properties
MP_DEFINE_CONST_PROP_GET
-
MP_DEFINE_MUTABLE_MAP
andMP_DEFINE_MUTABLE_DICT
, for module singletons, etc. -
avoid linking in 64-bit
double
routines:mp_float_t uint64_to_float()
int64_t float_to_uint64()
-
Use qstrs instead of strs for type names
-
objarray.c
- check that array initialization length is correct; don't round down
memoryview
cast
- array multiply implemented
- allow appending an iterable to an array
find()
,rfind()
,index()
mp_obj_new_bytearray_of_zeros()
: convenient for various things
stopped at objedict
Created
September 10, 2024 13:33
-
-
Save dhalbert/5a751e61792e6880797c89f85e8bc969 to your computer and use it in GitHub Desktop.
Potential contributions from MicroPython back to CircuitPython
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment