-
C function annotations
PLACE_IN_ITCMPLACE_IN_DTCM_BSSMP_NO_INSTRUMENTMP_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 *= 256instead ofval <<= 8(undefined behavior on left shift)- add overflow checks
- type code
-
move
externs to top level to prevent warnings -
gc_collect()after eachimport, to reduce fragmentation -
async:
- distinguish between generators and
asyncroutines - implement
_-await__() - disallow
yieldinstead ofawait
- distinguish between generators and
-
gc.c- debugging additions
gc_collect_ptr(void *ptr)bool gc_ptr_on_heap(void *ptr)memorymonitorgc_alloc_possible()- test for attempted alloc while VM not running
-
translation support
-
qstr
- names for characters: hyphen, space, etc.
-
misc.hsizeof_field()
-
mkenv.mkSTEPECHOfor 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_MAPandMP_DEFINE_MUTABLE_DICT, for module singletons, etc. -
avoid linking in 64-bit
doubleroutines: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
memoryviewcast- 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