circuitpython/py
Tom McDermott 1022f9cc35 py/modstruct: Fix struct.unpack with unaligned offset of native type.
With this patch alignment is done relative to the start of the buffer that
is being unpacked, not the raw pointer value, as per CPython.

Fixes issue #3314.
2019-09-02 13:10:55 +10:00
..
argcheck.c py: Shorten error messages by using contractions and some rewording. 2018-09-20 14:33:10 +10:00
asmarm.c py/asmarm: Use __builtin___clear_cache instead of __clear_cache. 2019-07-12 16:48:37 +10:00
asmarm.h py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmbase.c py: Define EMIT_MACHINE_CODE as EMIT_NATIVE || EMIT_INLINE_ASM. 2019-06-28 13:54:45 +10:00
asmbase.h py/asm: Remove need for dummy_data when doing initial assembler passes. 2016-12-09 22:50:58 +11:00
asmthumb.c py/asmthumb: Support asm_thumb code running on normal ARM processors. 2019-05-01 15:24:21 +10:00
asmthumb.h py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmx64.c py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmx64.h py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmx86.c py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmx86.h py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmxtensa.c py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
asmxtensa.h py: Add support to save native, viper and asm code to .mpy files. 2019-03-08 15:53:05 +11:00
bc0.h py/bc0.h: Add comment that MP_BC_MAKE_CLOSURE/_DEFARGS take extra byte. 2019-08-22 16:07:28 +10:00
bc.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
bc.h py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
binary.c py/modstruct: Fix struct.unpack with unaligned offset of native type. 2019-09-02 13:10:55 +10:00
binary.h py/modstruct: Fix struct.unpack with unaligned offset of native type. 2019-09-02 13:10:55 +10:00
builtin.h extmod/moduwebsocket: Refactor websocket to uwebsocket. 2019-02-14 00:35:45 +11:00
builtinevex.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
builtinhelp.c py: Downcase MP_xxx_SLOT_IS_FILLED inline functions. 2019-02-12 14:54:51 +11:00
builtinimport.c py/builtinimport: Populate __file__ when importing frozen or mpy files. 2019-07-31 17:00:11 +10:00
compile.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
compile.h py: Add global default_emit_opt variable to make emit kind persistent. 2019-08-28 12:47:58 +10:00
emit.h py/compile: Support multiple inline asm emitters. 2019-03-14 12:22:25 +11:00
emitbc.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
emitcommon.c py/scope: Optimise scope_find_or_add_id to not need "added" arg. 2018-10-28 00:38:18 +11:00
emitglue.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
emitglue.h py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
emitinlinethumb.c py/compile: Support multiple inline asm emitters. 2019-03-14 12:22:25 +11:00
emitinlinextensa.c py/compile: Support multiple inline asm emitters. 2019-03-14 12:22:25 +11:00
emitnarm.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnative.c py/nativeglue: Remove dependency on mp_fun_table in dyn-compiler mode. 2019-05-29 21:17:29 +10:00
emitnthumb.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnx64.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnx86.c py/emitnative: Implement yield and yield-from in native emitter. 2018-10-01 13:31:11 +10:00
emitnxtensa.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
formatfloat.c py/formatfloat: Fix case where floats could render with negative digits. 2018-03-01 17:00:02 +11:00
formatfloat.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
frozenmod.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
frozenmod.h various: Update early copyright years to match actual edit history. 2019-05-17 18:06:11 +10:00
gc.c various: Add and update my copyright line based on git history. 2019-05-17 18:04:15 +10:00
gc.h py/gc: Adjust gc_alloc() signature to be able to accept multiple flags. 2018-12-20 17:52:16 +11:00
grammar.h py/compile: Combine expr, xor_expr and and_expr into one function. 2018-06-22 17:00:29 +10:00
lexer.c py/lexer: Add support for underscores in numeric literals. 2018-06-12 12:17:43 +10:00
lexer.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
makemoduledefs.py py/makedefs: Use io.open with utf-8 encoding when processing source. 2019-04-12 11:34:52 +10:00
makeqstrdata.py py/makeqstrdata.py: Allow using \r\n as a qstr if a port requires it. 2019-07-12 17:10:11 +10:00
makeqstrdefs.py py/makedefs: Use io.open with utf-8 encoding when processing source. 2019-04-12 11:34:52 +10:00
makeversionhdr.py py/mpconfig: Move MICROPY_VERSION macros to static ones in mpconfig.h. 2018-12-22 01:40:38 +11:00
malloc.c py/malloc: Give a compile warning if using finaliser without GC. 2018-07-09 14:40:02 +10:00
map.c py: Downcase MP_xxx_SLOT_IS_FILLED inline functions. 2019-02-12 14:54:51 +11:00
misc.h py/misc.h: Rename _MP_STRINGIFY to not use leading underscore in ident. 2019-05-09 17:11:33 +10:00
mkenv.mk py: Update makefiles to use $(TOUCH) instead of hard coded "touch". 2019-05-22 12:56:40 +10:00
mkrules.mk py/mkrules.mk: Use $(CPP) not $(CC) -E for preprocessor rule. 2019-06-25 15:03:41 +10:00
modarray.c py: Allow registration of modules at their definition. 2019-03-08 22:46:43 +11:00
modbuiltins.c py: Downcase MP_xxx_SLOT_IS_FILLED inline functions. 2019-02-12 14:54:51 +11:00
modcmath.c py: Change obsolete "///" comment formatting to normal comments. 2017-08-30 21:02:00 +10:00
modcollections.c py/objdeque: Implement ucollections.deque type with fixed size. 2018-02-21 22:39:25 +11:00
modgc.c py: Change obsolete "///" comment formatting to normal comments. 2017-08-30 21:02:00 +10:00
modio.c py/modio: Call mp_import_name to do resource stream import. 2019-07-31 22:37:44 +10:00
modmath.c py/modmath: Implement math.isclose() for non-complex numbers. 2019-08-17 23:23:17 +10:00
modmicropython.c py/scheduler: Rename sched_stack to sched_queue. 2019-07-17 16:09:32 +10:00
modstruct.c py/modstruct: Fix struct.unpack with unaligned offset of native type. 2019-09-02 13:10:55 +10:00
modsys.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
modthread.c py: Downcase MP_xxx_SLOT_IS_FILLED inline functions. 2019-02-12 14:54:51 +11:00
moduerrno.c py/moduerrno: Make list of errno codes configurable. 2017-02-22 12:58:11 +11:00
mpconfig.h py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
mperrno.h py/mperrno: Define MP_EWOULDBLOCK as EWOULDBLOCK, not EAGAIN. 2018-05-01 15:53:25 +10:00
mphal.h lib/utils/sys_stdio_mphal: Add support to poll sys.stdin and sys.stdout. 2019-07-01 17:10:12 +10:00
mpprint.c py/mpprint: Support printing %ld and %lu formats on 64-bit archs. 2019-04-23 12:40:15 +10:00
mpprint.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpstate.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpstate.h py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
mpthread.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
mpz.c py/mpz: Avoid undefined behavior at integer overflow in mpz_hash. 2018-05-21 12:48:26 +10:00
mpz.h py/mpz: Simplify handling of borrow and quo adjustment in mpn_div. 2017-12-29 14:05:48 +11:00
nativeglue.c py: Allow to pass in read-only buffers to viper and inline-asm funcs. 2019-08-06 15:58:23 +10:00
nlr.c py/nlr: Fix missing trailing characters in comments in nlr.c 2017-12-29 22:24:53 +11:00
nlr.h py/nlrthumb: Save and restore VFP registers s16-s21 when CPU has them. 2019-06-19 14:53:17 +10:00
nlrsetjmp.c py/nlr: Factor out common NLR code to macro and generic funcs in nlr.c. 2017-12-28 16:46:30 +11:00
nlrthumb.c py: Introduce MP_UNREACHABLE macro to annotate unreachable code. 2019-08-19 16:14:33 +10:00
nlrx64.c py/nlr: Use MP_UNREACHABLE at the end of arch-specific nlr_jump funcs. 2019-08-19 16:14:57 +10:00
nlrx86.c py/nlr: Use MP_UNREACHABLE at the end of arch-specific nlr_jump funcs. 2019-08-19 16:14:57 +10:00
nlrxtensa.c py/nlr: Use MP_UNREACHABLE at the end of arch-specific nlr_jump funcs. 2019-08-19 16:14:57 +10:00
obj.c py/obj: Optimise small-int comparison to 0 in mp_obj_is_true. 2019-06-05 10:54:23 +10:00
obj.h py: Allow registration of modules at their definition. 2019-03-08 22:46:43 +11:00
objarray.c py/objarray: Fix amount of free space in array when doing slice assign. 2019-08-15 23:02:04 +10:00
objarray.h py/objarray: Introduce "memview_offset" alias for "free" field of object 2018-12-20 17:40:48 +11:00
objattrtuple.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objbool.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objboundmeth.c py/objboundmeth: Support loading generic attrs from the method. 2018-12-06 18:02:41 +11:00
objcell.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objclosure.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objcomplex.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objdeque.c py/objdeque: Fix sign extension bug when computing len of deque object. 2018-05-11 13:44:50 +10:00
objdict.c py/objdict: Quote non-string types when used as keys in JSON output. 2019-07-30 16:34:27 +10:00
objenumerate.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objexcept.c py/objgenerator: Move defn of mp_const_GeneratorExit_obj here. 2019-08-22 16:05:05 +10:00
objexcept.h py/objexcept: Make MP_DEFINE_EXCEPTION public so ports can define excs. 2018-03-17 00:31:40 +11:00
objfilter.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objfloat.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objfun.c py: Allow to pass in read-only buffers to viper and inline-asm funcs. 2019-08-06 15:58:23 +10:00
objfun.h py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
objgenerator.c py/objgenerator: Move defn of mp_const_GeneratorExit_obj here. 2019-08-22 16:05:05 +10:00
objgenerator.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objgetitemiter.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objint_longlong.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objint_mpz.c py: remove "if (0)" and "if (false)" branches. 2019-05-06 18:28:28 +10:00
objint.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objint.h py/modbuiltins: Implement abs() by dispatching to MP_UNARY_OP_ABS. 2017-09-18 00:06:43 +03:00
objlist.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objlist.h py/obj.h: Move declaration of mp_obj_list_init to objlist.h. 2018-03-13 14:03:15 +11:00
objmap.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objmodule.c various: Add and update my copyright line based on git history. 2019-05-17 18:04:15 +10:00
objmodule.h py/objmodule: Factor common code for calling __init__ on builtin module. 2018-02-20 17:56:58 +11:00
objnamedtuple.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objnamedtuple.h py/objnamedtuple: Allow to reuse namedtuple basic functionality. 2017-11-20 09:30:06 +02:00
objnone.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objobject.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objpolyiter.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objproperty.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objrange.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objreversed.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objset.c py/objset: Remove unused forward declaration and clean up whitespace. 2019-04-15 11:14:22 +10:00
objsingleton.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objslice.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objstr.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objstr.h py/objarray: Add decode method to bytearray. 2019-05-21 14:24:04 +10:00
objstringio.c py/objstringio: Guard bytesio_stream_p struct w/ MICROPY_PY_IO_BYTESIO. 2019-07-17 16:12:19 +10:00
objstringio.h py/objstringio: If created from immutable object, follow copy on write policy. 2017-06-09 17:33:01 +03:00
objstrunicode.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
objtuple.c py/objtuple: Allow compatible subclasses of tuple in mp_obj_tuple_get. 2019-08-31 00:14:11 +10:00
objtuple.h all: Convert mp_uint_t to mp_unary_op_t/mp_binary_op_t where appropriate 2017-08-29 13:16:30 +10:00
objtype.c py: Downcase MP_xxx_SLOT_IS_FILLED inline functions. 2019-02-12 14:54:51 +11:00
objtype.h py/objtype: Don't expose mp_obj_instance_attr(). 2018-06-08 11:48:25 +10:00
objzip.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
opmethods.c py/runtime: Add MP_BINARY_OP_CONTAINS as reverse of MP_BINARY_OP_IN. 2017-11-24 14:48:23 +11:00
parse.c py: Downcase all MP_OBJ_IS_xxx macros to make a more consistent C API. 2019-02-12 14:54:51 +11:00
parse.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
parsenum.c py/parsenum: Avoid rounding errors with negative powers-of-10. 2018-09-20 22:06:41 +10:00
parsenum.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
parsenumbase.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
parsenumbase.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
persistentcode.c py/persistentcode: Ensure prelude_offset is always initialised. 2019-07-01 23:46:49 +10:00
persistentcode.h mpy-cross: Add --version command line option to print version info. 2019-05-07 13:54:20 +10:00
profile.c py/profile: Add debugging for sys.settrace feature. 2019-08-30 16:48:47 +10:00
profile.h py/profile: Add debugging for sys.settrace feature. 2019-08-30 16:48:47 +10:00
py.mk py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
pystack.c py/pystack: Use "pystack exhausted" as error msg for out of pystack mem. 2018-02-19 00:26:14 +11:00
pystack.h py: Introduce a Python stack for scoped allocation. 2017-12-11 13:49:09 +11:00
qstr.c py/qstr: Evaluate find_qstr only once then pass to Q_GET_HASH macro. 2019-02-19 23:44:01 +11:00
qstr.h py/qstr: Add QSTR_TOTAL() macro to get number of qstrs. 2018-02-19 16:12:44 +11:00
qstrdefs.h py/modbuiltins: Make oct/hex work when !MICROPY_PY_BUILTINS_STR_OP_MODULO 2018-09-20 14:41:35 +10:00
reader.c py/reader: Allow MICROPY_VFS_POSIX to work with MICROPY_READER_POSIX. 2018-06-06 14:28:23 +10:00
reader.h py: Allow lexer to raise exceptions during construction. 2017-03-14 11:52:05 +11:00
repl.c py/repl: Fix handling of unmatched brackets and unfinished quotes. 2018-05-18 15:23:02 +10:00
repl.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
ringbuf.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
runtime0.h py/obj: Add support for __int__ special method. 2018-12-07 17:28:04 +11:00
runtime_utils.c py: mp_call_function_*_protected(): Pass-thru return value if possible. 2017-12-05 00:38:41 +02:00
runtime.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
runtime.h py/nativeglue: Make private glue funs all static, remove commented code. 2019-05-29 21:14:24 +10:00
scheduler.c py/scheduler: Rename sched_stack to sched_queue. 2019-07-17 16:09:32 +10:00
scope.c py/scope: Optimise scope_find_or_add_id to not need "added" arg. 2018-10-28 00:38:18 +11:00
scope.h py/scope: Optimise scope_find_or_add_id to not need "added" arg. 2018-10-28 00:38:18 +11:00
sequence.c py/sequence: Fix grammar in comment about equality. 2019-07-25 16:37:25 +10:00
showbc.c py/showbc: Fix off-by-one when showing address of unknown opcode. 2019-08-06 16:08:39 +10:00
smallint.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
smallint.h py: Extend nan-boxing config to have 47-bit small integers. 2017-12-11 22:39:12 +11:00
stackctrl.c py/runtime: Move mp_exc_recursion_depth to runtime and rename to raise. 2017-12-11 13:49:09 +11:00
stackctrl.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
stream.c py: Update my copyright info on some files. 2019-02-06 00:19:00 +11:00
stream.h various: Add and update my copyright line based on git history. 2019-05-17 18:04:15 +10:00
unicode.c py/unicode: Fix check for valid utf8 being stricter about contn chars. 2018-11-26 16:13:08 +11:00
unicode.h py/objstr: Add check for valid UTF-8 when making a str from bytes. 2017-09-06 16:43:09 +10:00
vm.c py: Integrate sys.settrace feature into the VM and runtime. 2019-08-30 16:44:12 +10:00
vmentrytable.h py: Replace POP_BLOCK and POP_EXCEPT opcodes with POP_EXCEPT_JUMP. 2019-03-05 16:09:58 +11:00
vstr.c various: Add and update my copyright line based on git history. 2019-05-17 18:04:15 +10:00
warning.c py: Update my copyright info on some files. 2019-02-06 00:19:00 +11:00