diff --git a/components/language/micropython/origin.patch b/components/language/micropython/origin.patch new file mode 100644 index 0000000000000000000000000000000000000000..4bd1f114d003f61189f6ac1ddf975edce73349b3 --- /dev/null +++ b/components/language/micropython/origin.patch @@ -0,0 +1,810 @@ +diff -Nur a/micropython-1.16/ports/unix/build-standard/genhdr/moduledefs.h b/micropython-1.16/ports/unix/build-standard/genhdr/moduledefs.h +--- a/micropython-1.16/ports/unix/build-standard/genhdr/moduledefs.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/micropython-1.16/ports/unix/build-standard/genhdr/moduledefs.h 2021-07-29 15:24:42.782450868 +0800 +@@ -0,0 +1,13 @@ ++// Automatically generated by makemoduledefs.py. ++ ++#if (MICROPY_PY_ARRAY) ++ extern const struct _mp_obj_module_t mp_module_uarray; ++ #define MODULE_DEF_MP_QSTR_UARRAY { MP_ROM_QSTR(MP_QSTR_uarray), MP_ROM_PTR(&mp_module_uarray) }, ++#else ++ #define MODULE_DEF_MP_QSTR_UARRAY ++#endif ++ ++ ++#define MICROPY_REGISTERED_MODULES \ ++ MODULE_DEF_MP_QSTR_UARRAY \ ++// MICROPY_REGISTERED_MODULES +diff -Nur a/micropython-1.16/ports/unix/build-standard/genhdr/mpversion.h b/micropython-1.16/ports/unix/build-standard/genhdr/mpversion.h +--- a/micropython-1.16/ports/unix/build-standard/genhdr/mpversion.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/micropython-1.16/ports/unix/build-standard/genhdr/mpversion.h 2021-07-29 15:24:42.782450868 +0800 +@@ -0,0 +1,4 @@ ++// This file was generated by py/makeversionhdr.py ++#define MICROPY_GIT_TAG "v1.16-120-g6214fa3f9-dirty" ++#define MICROPY_GIT_HASH "6214fa3f9-dirty" ++#define MICROPY_BUILD_DATE "2021-07-23" +diff -Nur a/micropython-1.16/ports/unix/build-standard/genhdr/qstrdefs.generated.h b/micropython-1.16/ports/unix/build-standard/genhdr/qstrdefs.generated.h +--- a/micropython-1.16/ports/unix/build-standard/genhdr/qstrdefs.generated.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/micropython-1.16/ports/unix/build-standard/genhdr/qstrdefs.generated.h 2021-07-29 15:24:42.782450868 +0800 +@@ -0,0 +1,648 @@ ++// This file was automatically generated by makeqstrdata.py ++ ++QDEF(MP_QSTRnull, (const byte*)"\x00\x00\x00" "") ++QDEF(MP_QSTR_, (const byte*)"\x05\x15\x00" "") ++QDEF(MP_QSTR___dir__, (const byte*)"\x7a\x8f\x07" "__dir__") ++QDEF(MP_QSTR__0x0a_, (const byte*)"\xaf\xb5\x01" "\x0a") ++QDEF(MP_QSTR__space_, (const byte*)"\x85\xb5\x01" " ") ++QDEF(MP_QSTR__star_, (const byte*)"\x8f\xb5\x01" "*") ++QDEF(MP_QSTR__slash_, (const byte*)"\x8a\xb5\x01" "/") ++QDEF(MP_QSTR__lt_module_gt_, (const byte*)"\xbd\x94\x08" "") ++QDEF(MP_QSTR__, (const byte*)"\xfa\xb5\x01" "_") ++QDEF(MP_QSTR___call__, (const byte*)"\xa7\xf9\x08" "__call__") ++QDEF(MP_QSTR___class__, (const byte*)"\x2b\xc5\x09" "__class__") ++QDEF(MP_QSTR___delitem__, (const byte*)"\xfd\x35\x0b" "__delitem__") ++QDEF(MP_QSTR___enter__, (const byte*)"\x6d\xba\x09" "__enter__") ++QDEF(MP_QSTR___exit__, (const byte*)"\x45\xf8\x08" "__exit__") ++QDEF(MP_QSTR___getattr__, (const byte*)"\x40\xf8\x0b" "__getattr__") ++QDEF(MP_QSTR___getitem__, (const byte*)"\x26\x39\x0b" "__getitem__") ++QDEF(MP_QSTR___hash__, (const byte*)"\xf7\xc8\x08" "__hash__") ++QDEF(MP_QSTR___init__, (const byte*)"\x5f\xa5\x08" "__init__") ++QDEF(MP_QSTR___int__, (const byte*)"\x16\x1b\x07" "__int__") ++QDEF(MP_QSTR___iter__, (const byte*)"\xcf\x32\x08" "__iter__") ++QDEF(MP_QSTR___len__, (const byte*)"\xe2\xb0\x07" "__len__") ++QDEF(MP_QSTR___main__, (const byte*)"\x8e\x13\x08" "__main__") ++QDEF(MP_QSTR___module__, (const byte*)"\xff\x30\x0a" "__module__") ++QDEF(MP_QSTR___name__, (const byte*)"\xe2\x38\x08" "__name__") ++QDEF(MP_QSTR___new__, (const byte*)"\x79\x15\x07" "__new__") ++QDEF(MP_QSTR___next__, (const byte*)"\x02\x73\x08" "__next__") ++QDEF(MP_QSTR___qualname__, (const byte*)"\x6b\x00\x0c" "__qualname__") ++QDEF(MP_QSTR___repr__, (const byte*)"\x10\x0b\x08" "__repr__") ++QDEF(MP_QSTR___setitem__, (const byte*)"\x32\x3e\x0b" "__setitem__") ++QDEF(MP_QSTR___str__, (const byte*)"\xd0\xcd\x07" "__str__") ++QDEF(MP_QSTR_ArithmeticError, (const byte*)"\x2d\x8c\x0f" "ArithmeticError") ++QDEF(MP_QSTR_AssertionError, (const byte*)"\x97\x5a\x0e" "AssertionError") ++QDEF(MP_QSTR_AttributeError, (const byte*)"\x21\xde\x0e" "AttributeError") ++QDEF(MP_QSTR_BaseException, (const byte*)"\x07\x92\x0d" "BaseException") ++QDEF(MP_QSTR_EOFError, (const byte*)"\x91\xbf\x08" "EOFError") ++QDEF(MP_QSTR_Ellipsis, (const byte*)"\xf0\xe0\x08" "Ellipsis") ++QDEF(MP_QSTR_Exception, (const byte*)"\xf2\x29\x09" "Exception") ++QDEF(MP_QSTR_GeneratorExit, (const byte*)"\x16\x62\x0d" "GeneratorExit") ++QDEF(MP_QSTR_ImportError, (const byte*)"\x20\x9c\x0b" "ImportError") ++QDEF(MP_QSTR_IndentationError, (const byte*)"\x5c\x20\x10" "IndentationError") ++QDEF(MP_QSTR_IndexError, (const byte*)"\x83\xad\x0a" "IndexError") ++QDEF(MP_QSTR_KeyError, (const byte*)"\xea\x00\x08" "KeyError") ++QDEF(MP_QSTR_KeyboardInterrupt, (const byte*)"\xaf\xe2\x11" "KeyboardInterrupt") ++QDEF(MP_QSTR_LookupError, (const byte*)"\xff\x69\x0b" "LookupError") ++QDEF(MP_QSTR_MemoryError, (const byte*)"\xdc\x83\x0b" "MemoryError") ++QDEF(MP_QSTR_NameError, (const byte*)"\xba\x2d\x09" "NameError") ++QDEF(MP_QSTR_NoneType, (const byte*)"\x17\x68\x08" "NoneType") ++QDEF(MP_QSTR_NotImplementedError, (const byte*)"\xc6\x98\x13" "NotImplementedError") ++QDEF(MP_QSTR_OSError, (const byte*)"\xa1\x65\x07" "OSError") ++QDEF(MP_QSTR_OverflowError, (const byte*)"\x81\xe1\x0d" "OverflowError") ++QDEF(MP_QSTR_RuntimeError, (const byte*)"\x61\xf1\x0c" "RuntimeError") ++QDEF(MP_QSTR_StopIteration, (const byte*)"\xea\x1c\x0d" "StopIteration") ++QDEF(MP_QSTR_SyntaxError, (const byte*)"\x94\x8f\x0b" "SyntaxError") ++QDEF(MP_QSTR_SystemExit, (const byte*)"\x20\xff\x0a" "SystemExit") ++QDEF(MP_QSTR_TypeError, (const byte*)"\x25\x96\x09" "TypeError") ++QDEF(MP_QSTR_ValueError, (const byte*)"\x96\x87\x0a" "ValueError") ++QDEF(MP_QSTR_ZeroDivisionError, (const byte*)"\xb6\x27\x11" "ZeroDivisionError") ++QDEF(MP_QSTR_abs, (const byte*)"\x95\x32\x03" "abs") ++QDEF(MP_QSTR_all, (const byte*)"\x44\x33\x03" "all") ++QDEF(MP_QSTR_any, (const byte*)"\x13\x33\x03" "any") ++QDEF(MP_QSTR_append, (const byte*)"\x6b\x97\x06" "append") ++QDEF(MP_QSTR_args, (const byte*)"\xc2\xc6\x04" "args") ++QDEF(MP_QSTR_bool, (const byte*)"\xeb\x3c\x04" "bool") ++QDEF(MP_QSTR_builtins, (const byte*)"\xf7\x31\x08" "builtins") ++QDEF(MP_QSTR_bytearray, (const byte*)"\x76\xa3\x09" "bytearray") ++QDEF(MP_QSTR_bytecode, (const byte*)"\x22\x7d\x08" "bytecode") ++QDEF(MP_QSTR_bytes, (const byte*)"\x5c\xb2\x05" "bytes") ++QDEF(MP_QSTR_callable, (const byte*)"\x0d\x70\x08" "callable") ++QDEF(MP_QSTR_chr, (const byte*)"\xdc\x4c\x03" "chr") ++QDEF(MP_QSTR_classmethod, (const byte*)"\xb4\x8c\x0b" "classmethod") ++QDEF(MP_QSTR_clear, (const byte*)"\x7c\xa0\x05" "clear") ++QDEF(MP_QSTR_close, (const byte*)"\x33\x67\x05" "close") ++QDEF(MP_QSTR_const, (const byte*)"\xc0\xff\x05" "const") ++QDEF(MP_QSTR_copy, (const byte*)"\xe0\xdb\x04" "copy") ++QDEF(MP_QSTR_count, (const byte*)"\xa6\x4d\x05" "count") ++QDEF(MP_QSTR_dict, (const byte*)"\x3f\xfc\x04" "dict") ++QDEF(MP_QSTR_dir, (const byte*)"\xfa\x1e\x03" "dir") ++QDEF(MP_QSTR_divmod, (const byte*)"\xb8\x04\x06" "divmod") ++QDEF(MP_QSTR_end, (const byte*)"\x0a\x23\x03" "end") ++QDEF(MP_QSTR_endswith, (const byte*)"\x1b\xa3\x08" "endswith") ++QDEF(MP_QSTR_eval, (const byte*)"\x9b\xa6\x04" "eval") ++QDEF(MP_QSTR_exec, (const byte*)"\x1e\xc0\x04" "exec") ++QDEF(MP_QSTR_extend, (const byte*)"\x63\xe8\x06" "extend") ++QDEF(MP_QSTR_find, (const byte*)"\x00\x34\x04" "find") ++QDEF(MP_QSTR_format, (const byte*)"\x26\x33\x06" "format") ++QDEF(MP_QSTR_from_bytes, (const byte*)"\x35\x74\x0a" "from_bytes") ++QDEF(MP_QSTR_get, (const byte*)"\x33\x3b\x03" "get") ++QDEF(MP_QSTR_getattr, (const byte*)"\xc0\x17\x07" "getattr") ++QDEF(MP_QSTR_globals, (const byte*)"\x9d\x49\x07" "globals") ++QDEF(MP_QSTR_hasattr, (const byte*)"\x8c\xb0\x07" "hasattr") ++QDEF(MP_QSTR_hash, (const byte*)"\xb7\x70\x04" "hash") ++QDEF(MP_QSTR_id, (const byte*)"\x28\x6f\x02" "id") ++QDEF(MP_QSTR_index, (const byte*)"\x7b\x28\x05" "index") ++QDEF(MP_QSTR_insert, (const byte*)"\x12\x54\x06" "insert") ++QDEF(MP_QSTR_int, (const byte*)"\x16\x53\x03" "int") ++QDEF(MP_QSTR_isalpha, (const byte*)"\xeb\x37\x07" "isalpha") ++QDEF(MP_QSTR_isdigit, (const byte*)"\xa8\x9a\x07" "isdigit") ++QDEF(MP_QSTR_isinstance, (const byte*)"\xb6\xbe\x0a" "isinstance") ++QDEF(MP_QSTR_islower, (const byte*)"\xfc\x80\x07" "islower") ++QDEF(MP_QSTR_isspace, (const byte*)"\x5b\xf8\x07" "isspace") ++QDEF(MP_QSTR_issubclass, (const byte*)"\xb5\x7f\x0a" "issubclass") ++QDEF(MP_QSTR_isupper, (const byte*)"\xdd\xa7\x07" "isupper") ++QDEF(MP_QSTR_items, (const byte*)"\xe3\x53\x05" "items") ++QDEF(MP_QSTR_iter, (const byte*)"\x8f\x21\x04" "iter") ++QDEF(MP_QSTR_join, (const byte*)"\xa7\x5c\x04" "join") ++QDEF(MP_QSTR_key, (const byte*)"\x32\x6d\x03" "key") ++QDEF(MP_QSTR_keys, (const byte*)"\x01\x13\x04" "keys") ++QDEF(MP_QSTR_len, (const byte*)"\x62\x40\x03" "len") ++QDEF(MP_QSTR_list, (const byte*)"\x27\x1d\x04" "list") ++QDEF(MP_QSTR_little, (const byte*)"\x89\x6a\x06" "little") ++QDEF(MP_QSTR_locals, (const byte*)"\x3b\xa1\x06" "locals") ++QDEF(MP_QSTR_lower, (const byte*)"\xc6\xcb\x05" "lower") ++QDEF(MP_QSTR_lstrip, (const byte*)"\xe5\xb9\x06" "lstrip") ++QDEF(MP_QSTR_main, (const byte*)"\xce\xb7\x04" "main") ++QDEF(MP_QSTR_map, (const byte*)"\xb9\x43\x03" "map") ++QDEF(MP_QSTR_micropython, (const byte*)"\x0b\x7c\x0b" "micropython") ++QDEF(MP_QSTR_next, (const byte*)"\x42\x88\x04" "next") ++QDEF(MP_QSTR_object, (const byte*)"\x90\x8d\x06" "object") ++QDEF(MP_QSTR_open, (const byte*)"\xd1\x3a\x04" "open") ++QDEF(MP_QSTR_ord, (const byte*)"\x1c\x5e\x03" "ord") ++QDEF(MP_QSTR_pop, (const byte*)"\x2a\x73\x03" "pop") ++QDEF(MP_QSTR_popitem, (const byte*)"\xbf\x2c\x07" "popitem") ++QDEF(MP_QSTR_pow, (const byte*)"\x2d\x73\x03" "pow") ++QDEF(MP_QSTR_print, (const byte*)"\x54\xc6\x05" "print") ++QDEF(MP_QSTR_range, (const byte*)"\x1a\x5e\x05" "range") ++QDEF(MP_QSTR_read, (const byte*)"\xb7\xf9\x04" "read") ++QDEF(MP_QSTR_readinto, (const byte*)"\x4b\xbf\x08" "readinto") ++QDEF(MP_QSTR_readline, (const byte*)"\xf9\x19\x08" "readline") ++QDEF(MP_QSTR_remove, (const byte*)"\x63\x8a\x06" "remove") ++QDEF(MP_QSTR_replace, (const byte*)"\x49\x25\x07" "replace") ++QDEF(MP_QSTR_repr, (const byte*)"\xd0\xf7\x04" "repr") ++QDEF(MP_QSTR_reverse, (const byte*)"\x25\x2a\x07" "reverse") ++QDEF(MP_QSTR_rfind, (const byte*)"\xd2\x9c\x05" "rfind") ++QDEF(MP_QSTR_rindex, (const byte*)"\xe9\x2b\x06" "rindex") ++QDEF(MP_QSTR_round, (const byte*)"\xe7\x25\x05" "round") ++QDEF(MP_QSTR_rsplit, (const byte*)"\xa5\x00\x06" "rsplit") ++QDEF(MP_QSTR_rstrip, (const byte*)"\x3b\x95\x06" "rstrip") ++QDEF(MP_QSTR_self, (const byte*)"\x79\x77\x04" "self") ++QDEF(MP_QSTR_send, (const byte*)"\xb9\x76\x04" "send") ++QDEF(MP_QSTR_sep, (const byte*)"\x23\x8f\x03" "sep") ++QDEF(MP_QSTR_set, (const byte*)"\x27\x8f\x03" "set") ++QDEF(MP_QSTR_setattr, (const byte*)"\xd4\xa8\x07" "setattr") ++QDEF(MP_QSTR_setdefault, (const byte*)"\x6c\xa3\x0a" "setdefault") ++QDEF(MP_QSTR_sort, (const byte*)"\xbf\x9d\x04" "sort") ++QDEF(MP_QSTR_sorted, (const byte*)"\x5e\x15\x06" "sorted") ++QDEF(MP_QSTR_split, (const byte*)"\xb7\x33\x05" "split") ++QDEF(MP_QSTR_start, (const byte*)"\x85\xef\x05" "start") ++QDEF(MP_QSTR_startswith, (const byte*)"\x74\xe8\x0a" "startswith") ++QDEF(MP_QSTR_staticmethod, (const byte*)"\x62\xaf\x0c" "staticmethod") ++QDEF(MP_QSTR_step, (const byte*)"\x57\x36\x04" "step") ++QDEF(MP_QSTR_stop, (const byte*)"\x9d\x36\x04" "stop") ++QDEF(MP_QSTR_str, (const byte*)"\x50\x8d\x03" "str") ++QDEF(MP_QSTR_strip, (const byte*)"\x29\x1e\x05" "strip") ++QDEF(MP_QSTR_sum, (const byte*)"\x2e\x8d\x03" "sum") ++QDEF(MP_QSTR_super, (const byte*)"\xc4\xb2\x05" "super") ++QDEF(MP_QSTR_throw, (const byte*)"\xb3\x44\x05" "throw") ++QDEF(MP_QSTR_to_bytes, (const byte*)"\xd8\x3e\x08" "to_bytes") ++QDEF(MP_QSTR_tuple, (const byte*)"\xfd\x41\x05" "tuple") ++QDEF(MP_QSTR_type, (const byte*)"\x9d\x7f\x04" "type") ++QDEF(MP_QSTR_update, (const byte*)"\xb4\x76\x06" "update") ++QDEF(MP_QSTR_upper, (const byte*)"\x27\x94\x05" "upper") ++QDEF(MP_QSTR_utf_hyphen_8, (const byte*)"\xb7\x82\x05" "utf-8") ++QDEF(MP_QSTR_value, (const byte*)"\x4e\x34\x05" "value") ++QDEF(MP_QSTR_values, (const byte*)"\x7d\xbe\x06" "values") ++QDEF(MP_QSTR_write, (const byte*)"\x98\xa8\x05" "write") ++QDEF(MP_QSTR_zip, (const byte*)"\xe6\xac\x03" "zip") ++QDEF(MP_QSTR___abs__, (const byte*)"\x95\xd6\x07" "__abs__") ++QDEF(MP_QSTR___add__, (const byte*)"\xc4\x82\x07" "__add__") ++QDEF(MP_QSTR___aenter__, (const byte*)"\x4c\x84\x0a" "__aenter__") ++QDEF(MP_QSTR___aexit__, (const byte*)"\xc4\xcf\x09" "__aexit__") ++QDEF(MP_QSTR___aiter__, (const byte*)"\x4e\x2b\x09" "__aiter__") ++QDEF(MP_QSTR___and__, (const byte*)"\x0e\xdb\x07" "__and__") ++QDEF(MP_QSTR___anext__, (const byte*)"\x83\xb4\x09" "__anext__") ++QDEF(MP_QSTR___bases__, (const byte*)"\x03\x30\x09" "__bases__") ++QDEF(MP_QSTR___bool__, (const byte*)"\x2b\x65\x08" "__bool__") ++QDEF(MP_QSTR___build_class__, (const byte*)"\x42\x88\x0f" "__build_class__") ++QDEF(MP_QSTR___contains__, (const byte*)"\xc6\x5f\x0c" "__contains__") ++QDEF(MP_QSTR___del__, (const byte*)"\x68\x37\x07" "__del__") ++QDEF(MP_QSTR___delattr__, (const byte*)"\x5b\x77\x0b" "__delattr__") ++QDEF(MP_QSTR___delete__, (const byte*)"\xdc\xed\x0a" "__delete__") ++QDEF(MP_QSTR___dict__, (const byte*)"\x7f\x54\x08" "__dict__") ++QDEF(MP_QSTR___divmod__, (const byte*)"\x78\x11\x0a" "__divmod__") ++QDEF(MP_QSTR___eq__, (const byte*)"\x71\x3e\x06" "__eq__") ++QDEF(MP_QSTR___file__, (const byte*)"\x03\x54\x08" "__file__") ++QDEF(MP_QSTR___floordiv__, (const byte*)"\x46\x5f\x0c" "__floordiv__") ++QDEF(MP_QSTR___ge__, (const byte*)"\xa7\x46\x06" "__ge__") ++QDEF(MP_QSTR___get__, (const byte*)"\xb3\x8f\x07" "__get__") ++QDEF(MP_QSTR___globals__, (const byte*)"\x9d\xae\x0b" "__globals__") ++QDEF(MP_QSTR___gt__, (const byte*)"\xb6\x82\x06" "__gt__") ++QDEF(MP_QSTR___iadd__, (const byte*)"\x6d\x4a\x08" "__iadd__") ++QDEF(MP_QSTR___import__, (const byte*)"\x38\x3e\x0a" "__import__") ++QDEF(MP_QSTR___invert__, (const byte*)"\xf7\x77\x0a" "__invert__") ++QDEF(MP_QSTR___isub__, (const byte*)"\x08\x78\x08" "__isub__") ++QDEF(MP_QSTR___le__, (const byte*)"\xcc\x13\x06" "__le__") ++QDEF(MP_QSTR___lshift__, (const byte*)"\x09\x88\x0a" "__lshift__") ++QDEF(MP_QSTR___lt__, (const byte*)"\x5d\x68\x06" "__lt__") ++QDEF(MP_QSTR___matmul__, (const byte*)"\x49\xf3\x0a" "__matmul__") ++QDEF(MP_QSTR___mod__, (const byte*)"\x63\x37\x07" "__mod__") ++QDEF(MP_QSTR___mul__, (const byte*)"\x31\x42\x07" "__mul__") ++QDEF(MP_QSTR___ne__, (const byte*)"\x0e\x0b\x06" "__ne__") ++QDEF(MP_QSTR___neg__, (const byte*)"\x69\xd5\x07" "__neg__") ++QDEF(MP_QSTR___or__, (const byte*)"\x38\xbb\x06" "__or__") ++QDEF(MP_QSTR___path__, (const byte*)"\xc8\x23\x08" "__path__") ++QDEF(MP_QSTR___pos__, (const byte*)"\x29\xf0\x07" "__pos__") ++QDEF(MP_QSTR___pow__, (const byte*)"\x2d\x00\x07" "__pow__") ++QDEF(MP_QSTR___radd__, (const byte*)"\x16\xc5\x08" "__radd__") ++QDEF(MP_QSTR___rand__, (const byte*)"\xdc\x2e\x08" "__rand__") ++QDEF(MP_QSTR___repl_print__, (const byte*)"\x00\xbb\x0e" "__repl_print__") ++QDEF(MP_QSTR___reversed__, (const byte*)"\x61\xff\x0c" "__reversed__") ++QDEF(MP_QSTR___rfloordiv__, (const byte*)"\x54\x98\x0d" "__rfloordiv__") ++QDEF(MP_QSTR___rlshift__, (const byte*)"\x1b\xd1\x0b" "__rlshift__") ++QDEF(MP_QSTR___rmatmul__, (const byte*)"\xdb\x03\x0b" "__rmatmul__") ++QDEF(MP_QSTR___rmod__, (const byte*)"\x31\x8a\x08" "__rmod__") ++QDEF(MP_QSTR___rmul__, (const byte*)"\x63\x01\x08" "__rmul__") ++QDEF(MP_QSTR___ror__, (const byte*)"\x2a\xdc\x07" "__ror__") ++QDEF(MP_QSTR___rpow__, (const byte*)"\xff\x9a\x08" "__rpow__") ++QDEF(MP_QSTR___rrshift__, (const byte*)"\xc5\x9d\x0b" "__rrshift__") ++QDEF(MP_QSTR___rshift__, (const byte*)"\x57\x98\x0a" "__rshift__") ++QDEF(MP_QSTR___rsub__, (const byte*)"\x73\x77\x08" "__rsub__") ++QDEF(MP_QSTR___rtruediv__, (const byte*)"\x5a\xd7\x0c" "__rtruediv__") ++QDEF(MP_QSTR___rxor__, (const byte*)"\xf2\x86\x08" "__rxor__") ++QDEF(MP_QSTR___set__, (const byte*)"\xa7\xb3\x07" "__set__") ++QDEF(MP_QSTR___setattr__, (const byte*)"\x54\x19\x0b" "__setattr__") ++QDEF(MP_QSTR___sub__, (const byte*)"\x21\x09\x07" "__sub__") ++QDEF(MP_QSTR___traceback__, (const byte*)"\x4f\xcf\x0d" "__traceback__") ++QDEF(MP_QSTR___truediv__, (const byte*)"\x88\xef\x0b" "__truediv__") ++QDEF(MP_QSTR___xor__, (const byte*)"\x20\xec\x07" "__xor__") ++QDEF(MP_QSTR__percent__hash_o, (const byte*)"\x6c\x1a\x03" "%#o") ++QDEF(MP_QSTR__percent__hash_x, (const byte*)"\x7b\x1a\x03" "%#x") ++QDEF(MP_QSTR__brace_open__colon__hash_b_brace_close_, (const byte*)"\x58\x37\x05" "{:#b}") ++QDEF(MP_QSTR_maximum_space_recursion_space_depth_space_exceeded, (const byte*)"\x73\x1e\x20" "maximum recursion depth exceeded") ++QDEF(MP_QSTR__lt_lambda_gt_, (const byte*)"\x80\x8c\x08" "") ++QDEF(MP_QSTR__lt_listcomp_gt_, (const byte*)"\xd4\x15\x0a" "") ++QDEF(MP_QSTR__lt_dictcomp_gt_, (const byte*)"\xcc\x8d\x0a" "") ++QDEF(MP_QSTR__lt_setcomp_gt_, (const byte*)"\x54\x51\x09" "") ++QDEF(MP_QSTR__lt_genexpr_gt_, (const byte*)"\x34\x6a\x09" "") ++QDEF(MP_QSTR__lt_string_gt_, (const byte*)"\x52\x53\x08" "") ++QDEF(MP_QSTR__lt_stdin_gt_, (const byte*)"\xe3\x63\x07" "") ++QDEF(MP_QSTR_AF_INET, (const byte*)"\xeb\xb7\x07" "AF_INET") ++QDEF(MP_QSTR_AF_INET6, (const byte*)"\x7d\xb5\x08" "AF_INET6") ++QDEF(MP_QSTR_AF_UNIX, (const byte*)"\xf7\x01\x07" "AF_UNIX") ++QDEF(MP_QSTR_ARRAY, (const byte*)"\x5c\x7a\x05" "ARRAY") ++QDEF(MP_QSTR_B115200, (const byte*)"\xa0\xf2\x07" "B115200") ++QDEF(MP_QSTR_B57600, (const byte*)"\x13\x9c\x06" "B57600") ++QDEF(MP_QSTR_B9600, (const byte*)"\x88\x9a\x05" "B9600") ++QDEF(MP_QSTR_BFINT16, (const byte*)"\x95\xe2\x07" "BFINT16") ++QDEF(MP_QSTR_BFINT32, (const byte*)"\x53\xe2\x07" "BFINT32") ++QDEF(MP_QSTR_BFINT8, (const byte*)"\x4a\x9a\x06" "BFINT8") ++QDEF(MP_QSTR_BFUINT16, (const byte*)"\x40\xa6\x08" "BFUINT16") ++QDEF(MP_QSTR_BFUINT32, (const byte*)"\x06\xa6\x08" "BFUINT32") ++QDEF(MP_QSTR_BFUINT8, (const byte*)"\xbf\xaf\x07" "BFUINT8") ++QDEF(MP_QSTR_BF_LEN, (const byte*)"\x19\xb0\x06" "BF_LEN") ++QDEF(MP_QSTR_BF_POS, (const byte*)"\x52\x9d\x06" "BF_POS") ++QDEF(MP_QSTR_BIG_ENDIAN, (const byte*)"\xff\x51\x0a" "BIG_ENDIAN") ++QDEF(MP_QSTR_BytesIO, (const byte*)"\x1a\xb7\x07" "BytesIO") ++QDEF(MP_QSTR_DESC, (const byte*)"\x34\x0d\x04" "DESC") ++QDEF(MP_QSTR_DecompIO, (const byte*)"\x93\xb7\x08" "DecompIO") ++QDEF(MP_QSTR_EACCES, (const byte*)"\x37\xc2\x06" "EACCES") ++QDEF(MP_QSTR_EADDRINUSE, (const byte*)"\x17\x11\x0a" "EADDRINUSE") ++QDEF(MP_QSTR_EAGAIN, (const byte*)"\x20\xec\x06" "EAGAIN") ++QDEF(MP_QSTR_EALREADY, (const byte*)"\x46\x15\x08" "EALREADY") ++QDEF(MP_QSTR_EBADF, (const byte*)"\x61\xa3\x05" "EBADF") ++QDEF(MP_QSTR_ECONNABORTED, (const byte*)"\x27\xab\x0c" "ECONNABORTED") ++QDEF(MP_QSTR_ECONNREFUSED, (const byte*)"\x3a\x2c\x0c" "ECONNREFUSED") ++QDEF(MP_QSTR_ECONNRESET, (const byte*)"\x19\xfb\x0a" "ECONNRESET") ++QDEF(MP_QSTR_EEXIST, (const byte*)"\x53\xad\x06" "EEXIST") ++QDEF(MP_QSTR_EHOSTUNREACH, (const byte*)"\x86\x25\x0c" "EHOSTUNREACH") ++QDEF(MP_QSTR_EINPROGRESS, (const byte*)"\x9a\xa0\x0b" "EINPROGRESS") ++QDEF(MP_QSTR_EINVAL, (const byte*)"\x5c\xff\x06" "EINVAL") ++QDEF(MP_QSTR_EIO, (const byte*)"\x86\xa6\x03" "EIO") ++QDEF(MP_QSTR_EISDIR, (const byte*)"\xa5\x4f\x06" "EISDIR") ++QDEF(MP_QSTR_ENOBUFS, (const byte*)"\xe3\x87\x07" "ENOBUFS") ++QDEF(MP_QSTR_ENODEV, (const byte*)"\xb6\x67\x06" "ENODEV") ++QDEF(MP_QSTR_ENOENT, (const byte*)"\x5e\x65\x06" "ENOENT") ++QDEF(MP_QSTR_ENOMEM, (const byte*)"\xa4\x85\x06" "ENOMEM") ++QDEF(MP_QSTR_ENOTCONN, (const byte*)"\x79\xd7\x08" "ENOTCONN") ++QDEF(MP_QSTR_EOPNOTSUPP, (const byte*)"\xac\x97\x0a" "EOPNOTSUPP") ++QDEF(MP_QSTR_EPERM, (const byte*)"\xea\x7f\x05" "EPERM") ++QDEF(MP_QSTR_ETIMEDOUT, (const byte*)"\xff\xf8\x09" "ETIMEDOUT") ++QDEF(MP_QSTR_FLOAT32, (const byte*)"\xb4\x87\x07" "FLOAT32") ++QDEF(MP_QSTR_FLOAT64, (const byte*)"\x17\x87\x07" "FLOAT64") ++QDEF(MP_QSTR_FileIO, (const byte*)"\xc5\x15\x06" "FileIO") ++QDEF(MP_QSTR_INCL, (const byte*)"\x0d\xbb\x04" "INCL") ++QDEF(MP_QSTR_INT, (const byte*)"\x36\xd7\x03" "INT") ++QDEF(MP_QSTR_INT16, (const byte*)"\x91\x76\x05" "INT16") ++QDEF(MP_QSTR_INT32, (const byte*)"\x57\x76\x05" "INT32") ++QDEF(MP_QSTR_INT64, (const byte*)"\xf4\x75\x05" "INT64") ++QDEF(MP_QSTR_INT8, (const byte*)"\xce\xbd\x04" "INT8") ++QDEF(MP_QSTR_IOBase, (const byte*)"\x36\xbe\x06" "IOBase") ++QDEF(MP_QSTR_LITTLE_ENDIAN, (const byte*)"\xbf\x5b\x0d" "LITTLE_ENDIAN") ++QDEF(MP_QSTR_LONG, (const byte*)"\x0f\x65\x04" "LONG") ++QDEF(MP_QSTR_LONGLONG, (const byte*)"\x85\xd4\x08" "LONGLONG") ++QDEF(MP_QSTR_LockType, (const byte*)"\x36\x20\x08" "LockType") ++QDEF(MP_QSTR_MSG_DONTROUTE, (const byte*)"\xeb\x5d\x0d" "MSG_DONTROUTE") ++QDEF(MP_QSTR_MSG_DONTWAIT, (const byte*)"\x99\xc8\x0c" "MSG_DONTWAIT") ++QDEF(MP_QSTR_NATIVE, (const byte*)"\x04\x8e\x06" "NATIVE") ++QDEF(MP_QSTR_None, (const byte*)"\x6f\xd1\x04" "None") ++QDEF(MP_QSTR_NotImplemented, (const byte*)"\x3e\xc6\x0e" "NotImplemented") ++QDEF(MP_QSTR_OrderedDict, (const byte*)"\xf0\x7e\x0b" "OrderedDict") ++QDEF(MP_QSTR_POLLERR, (const byte*)"\xdf\xc0\x07" "POLLERR") ++QDEF(MP_QSTR_POLLHUP, (const byte*)"\x77\x8a\x07" "POLLHUP") ++QDEF(MP_QSTR_POLLIN, (const byte*)"\x7d\x61\x06" "POLLIN") ++QDEF(MP_QSTR_POLLOUT, (const byte*)"\x74\x85\x07" "POLLOUT") ++QDEF(MP_QSTR_PTR, (const byte*)"\xb3\x0c\x03" "PTR") ++QDEF(MP_QSTR_PinBase, (const byte*)"\x47\x43\x07" "PinBase") ++QDEF(MP_QSTR_SHORT, (const byte*)"\xf7\x1b\x05" "SHORT") ++QDEF(MP_QSTR_SOCK_DGRAM, (const byte*)"\xb3\x14\x0a" "SOCK_DGRAM") ++QDEF(MP_QSTR_SOCK_RAW, (const byte*)"\xca\x96\x08" "SOCK_RAW") ++QDEF(MP_QSTR_SOCK_STREAM, (const byte*)"\x32\xbe\x0b" "SOCK_STREAM") ++QDEF(MP_QSTR_SOL_SOCKET, (const byte*)"\x0f\xdf\x0a" "SOL_SOCKET") ++QDEF(MP_QSTR_SO_BROADCAST, (const byte*)"\xf9\xc6\x0c" "SO_BROADCAST") ++QDEF(MP_QSTR_SO_ERROR, (const byte*)"\x3e\x2a\x08" "SO_ERROR") ++QDEF(MP_QSTR_SO_KEEPALIVE, (const byte*)"\x2a\xa3\x0c" "SO_KEEPALIVE") ++QDEF(MP_QSTR_SO_LINGER, (const byte*)"\xfd\x90\x09" "SO_LINGER") ++QDEF(MP_QSTR_SO_REUSEADDR, (const byte*)"\x21\x53\x0c" "SO_REUSEADDR") ++QDEF(MP_QSTR_Signal, (const byte*)"\x9b\xe4\x06" "Signal") ++QDEF(MP_QSTR_StopAsyncIteration, (const byte*)"\xec\xf0\x12" "StopAsyncIteration") ++QDEF(MP_QSTR_StringIO, (const byte*)"\x76\x76\x08" "StringIO") ++QDEF(MP_QSTR_TCSANOW, (const byte*)"\x56\x25\x07" "TCSANOW") ++QDEF(MP_QSTR_TextIOWrapper, (const byte*)"\xad\x8d\x0d" "TextIOWrapper") ++QDEF(MP_QSTR_UINT, (const byte*)"\x23\x3d\x04" "UINT") ++QDEF(MP_QSTR_UINT16, (const byte*)"\xc4\x17\x06" "UINT16") ++QDEF(MP_QSTR_UINT32, (const byte*)"\x82\x17\x06" "UINT32") ++QDEF(MP_QSTR_UINT64, (const byte*)"\x61\x18\x06" "UINT64") ++QDEF(MP_QSTR_UINT8, (const byte*)"\xbb\xe1\x05" "UINT8") ++QDEF(MP_QSTR_ULONG, (const byte*)"\x7a\x8d\x05" "ULONG") ++QDEF(MP_QSTR_ULONGLONG, (const byte*)"\x70\xc6\x09" "ULONGLONG") ++QDEF(MP_QSTR_USHORT, (const byte*)"\xa2\xf4\x06" "USHORT") ++QDEF(MP_QSTR_UnicodeError, (const byte*)"\x22\xd1\x0c" "UnicodeError") ++QDEF(MP_QSTR_VOID, (const byte*)"\x31\xf2\x04" "VOID") ++QDEF(MP_QSTR_ViperTypeError, (const byte*)"\xdd\x05\x0e" "ViperTypeError") ++QDEF(MP_QSTR__thread, (const byte*)"\xd4\x02\x07" "_thread") ++QDEF(MP_QSTR_a2b_base64, (const byte*)"\x3c\x0b\x0a" "a2b_base64") ++QDEF(MP_QSTR_abs_tol, (const byte*)"\x7d\x6d\x07" "abs_tol") ++QDEF(MP_QSTR_accept, (const byte*)"\x85\x89\x06" "accept") ++QDEF(MP_QSTR_acos, (const byte*)"\x1b\xa0\x04" "acos") ++QDEF(MP_QSTR_acosh, (const byte*)"\x13\xa3\x05" "acosh") ++QDEF(MP_QSTR_acquire, (const byte*)"\x1d\xd3\x07" "acquire") ++QDEF(MP_QSTR_add, (const byte*)"\x44\x32\x03" "add") ++QDEF(MP_QSTR_addr, (const byte*)"\xb6\x7a\x04" "addr") ++QDEF(MP_QSTR_addressof, (const byte*)"\x5a\xf9\x09" "addressof") ++QDEF(MP_QSTR_aes, (const byte*)"\x32\x32\x03" "aes") ++QDEF(MP_QSTR_allocate_lock, (const byte*)"\xec\xed\x0d" "allocate_lock") ++QDEF(MP_QSTR_argv, (const byte*)"\xc7\xc6\x04" "argv") ++QDEF(MP_QSTR_array, (const byte*)"\x7c\x72\x05" "array") ++QDEF(MP_QSTR_as_bytearray, (const byte*)"\x1b\x19\x0c" "as_bytearray") ++QDEF(MP_QSTR_asin, (const byte*)"\x50\xe5\x04" "asin") ++QDEF(MP_QSTR_asinh, (const byte*)"\x38\x8f\x05" "asinh") ++QDEF(MP_QSTR_atan, (const byte*)"\x1f\xbe\x04" "atan") ++QDEF(MP_QSTR_atan2, (const byte*)"\xcd\x81\x05" "atan2") ++QDEF(MP_QSTR_atanh, (const byte*)"\x97\x81\x05" "atanh") ++QDEF(MP_QSTR_atexit, (const byte*)"\xb0\x98\x06" "atexit") ++QDEF(MP_QSTR_b2a_base64, (const byte*)"\x3c\x8f\x0a" "b2a_base64") ++QDEF(MP_QSTR_bin, (const byte*)"\xe0\x48\x03" "bin") ++QDEF(MP_QSTR_bind, (const byte*)"\x84\x64\x04" "bind") ++QDEF(MP_QSTR_bound_method, (const byte*)"\x97\xa2\x0c" "bound_method") ++QDEF(MP_QSTR_btree, (const byte*)"\xe1\x91\x05" "btree") ++QDEF(MP_QSTR_buffering, (const byte*)"\x25\xdb\x09" "buffering") ++QDEF(MP_QSTR_bytearray_at, (const byte*)"\x9c\x5c\x0c" "bytearray_at") ++QDEF(MP_QSTR_byteorder, (const byte*)"\x61\x99\x09" "byteorder") ++QDEF(MP_QSTR_bytes_at, (const byte*)"\xb6\x5d\x08" "bytes_at") ++QDEF(MP_QSTR_cachesize, (const byte*)"\xcc\x78\x09" "cachesize") ++QDEF(MP_QSTR_calcsize, (const byte*)"\x4d\x38\x08" "calcsize") ++QDEF(MP_QSTR_callback, (const byte*)"\x4c\xf0\x08" "callback") ++QDEF(MP_QSTR_ceil, (const byte*)"\x06\xb0\x04" "ceil") ++QDEF(MP_QSTR_center, (const byte*)"\x4e\xbf\x06" "center") ++QDEF(MP_QSTR_cert, (const byte*)"\x25\xb1\x04" "cert") ++QDEF(MP_QSTR_clock, (const byte*)"\x2d\x65\x05" "clock") ++QDEF(MP_QSTR_closure, (const byte*)"\x74\xca\x07" "closure") ++QDEF(MP_QSTR_cmath, (const byte*)"\xb6\xf4\x05" "cmath") ++QDEF(MP_QSTR_code, (const byte*)"\x68\xda\x04" "code") ++QDEF(MP_QSTR_collect, (const byte*)"\x9b\x65\x07" "collect") ++QDEF(MP_QSTR_compile, (const byte*)"\xf4\xc9\x07" "compile") ++QDEF(MP_QSTR_complex, (const byte*)"\xc5\x9d\x07" "complex") ++QDEF(MP_QSTR_connect, (const byte*)"\xdb\x3d\x07" "connect") ++QDEF(MP_QSTR_copysign, (const byte*)"\x33\x14\x08" "copysign") ++QDEF(MP_QSTR_cos, (const byte*)"\x7a\x4c\x03" "cos") ++QDEF(MP_QSTR_cosh, (const byte*)"\xd2\xdb\x04" "cosh") ++QDEF(MP_QSTR_crc32, (const byte*)"\x76\xe8\x05" "crc32") ++QDEF(MP_QSTR_decode, (const byte*)"\xa9\x59\x06" "decode") ++QDEF(MP_QSTR_decompress, (const byte*)"\x62\xfb\x0a" "decompress") ++QDEF(MP_QSTR_decrypt, (const byte*)"\xa8\x72\x07" "decrypt") ++QDEF(MP_QSTR_default, (const byte*)"\xce\x7d\x07" "default") ++QDEF(MP_QSTR_degrees, (const byte*)"\x02\x41\x07" "degrees") ++QDEF(MP_QSTR_delattr, (const byte*)"\xdb\xc8\x07" "delattr") ++QDEF(MP_QSTR_deleter, (const byte*)"\x6e\xdb\x07" "deleter") ++QDEF(MP_QSTR_deque, (const byte*)"\x05\x99\x05" "deque") ++QDEF(MP_QSTR_dict_view, (const byte*)"\x2d\xa9\x09" "dict_view") ++QDEF(MP_QSTR_difference, (const byte*)"\x72\x24\x0a" "difference") ++QDEF(MP_QSTR_difference_update, (const byte*)"\x9c\xfa\x11" "difference_update") ++QDEF(MP_QSTR_digest, (const byte*)"\xcd\xc4\x06" "digest") ++QDEF(MP_QSTR_disable, (const byte*)"\x91\x76\x07" "disable") ++QDEF(MP_QSTR_discard, (const byte*)"\x0f\x71\x07" "discard") ++QDEF(MP_QSTR_do_handshake, (const byte*)"\x86\x7f\x0c" "do_handshake") ++QDEF(MP_QSTR_doc, (const byte*)"\x2d\x1f\x03" "doc") ++QDEF(MP_QSTR_dump, (const byte*)"\xe9\x2f\x04" "dump") ++QDEF(MP_QSTR_dumps, (const byte*)"\x7a\x2d\x05" "dumps") ++QDEF(MP_QSTR_e, (const byte*)"\xc0\xb5\x01" "e") ++QDEF(MP_QSTR_enable, (const byte*)"\x04\xde\x06" "enable") ++QDEF(MP_QSTR_encode, (const byte*)"\x43\xca\x06" "encode") ++QDEF(MP_QSTR_encoding, (const byte*)"\x06\x9c\x08" "encoding") ++QDEF(MP_QSTR_encrypt, (const byte*)"\xc2\x78\x07" "encrypt") ++QDEF(MP_QSTR_enumerate, (const byte*)"\x71\xba\x09" "enumerate") ++QDEF(MP_QSTR_erf, (const byte*)"\x94\x23\x03" "erf") ++QDEF(MP_QSTR_erfc, (const byte*)"\x77\x96\x04" "erfc") ++QDEF(MP_QSTR_errno, (const byte*)"\xc1\x11\x05" "errno") ++QDEF(MP_QSTR_errorcode, (const byte*)"\x10\xdd\x09" "errorcode") ++QDEF(MP_QSTR_exc_info, (const byte*)"\x0a\xff\x08" "exc_info") ++QDEF(MP_QSTR_exit, (const byte*)"\x85\xbe\x04" "exit") ++QDEF(MP_QSTR_exp, (const byte*)"\xc8\x24\x03" "exp") ++QDEF(MP_QSTR_expm1, (const byte*)"\x74\x72\x05" "expm1") ++QDEF(MP_QSTR_fabs, (const byte*)"\x93\x12\x04" "fabs") ++QDEF(MP_QSTR_ffi, (const byte*)"\x8c\x36\x03" "ffi") ++QDEF(MP_QSTR_fficallback, (const byte*)"\xc5\x5e\x0b" "fficallback") ++QDEF(MP_QSTR_ffifunc, (const byte*)"\x92\x0b\x07" "ffifunc") ++QDEF(MP_QSTR_ffimod, (const byte*)"\xca\xb2\x06" "ffimod") ++QDEF(MP_QSTR_ffivar, (const byte*)"\x49\x13\x06" "ffivar") ++QDEF(MP_QSTR_file, (const byte*)"\xc3\x34\x04" "file") ++QDEF(MP_QSTR_fileno, (const byte*)"\x82\x76\x06" "fileno") ++QDEF(MP_QSTR_filter, (const byte*)"\x25\xbe\x06" "filter") ++QDEF(MP_QSTR_flags, (const byte*)"\xfa\x8f\x05" "flags") ++QDEF(MP_QSTR_float, (const byte*)"\x35\x44\x05" "float") ++QDEF(MP_QSTR_floor, (const byte*)"\x7d\x46\x05" "floor") ++QDEF(MP_QSTR_flush, (const byte*)"\x61\xc1\x05" "flush") ++QDEF(MP_QSTR_fmod, (const byte*)"\xe5\x44\x04" "fmod") ++QDEF(MP_QSTR_frexp, (const byte*)"\x1c\x98\x05" "frexp") ++QDEF(MP_QSTR_fromkeys, (const byte*)"\x37\xbd\x08" "fromkeys") ++QDEF(MP_QSTR_frozenset, (const byte*)"\xed\x9c\x09" "frozenset") ++QDEF(MP_QSTR_func, (const byte*)"\x1b\x68\x04" "func") ++QDEF(MP_QSTR_function, (const byte*)"\x27\x02\x08" "function") ++QDEF(MP_QSTR_gamma, (const byte*)"\x02\x90\x05" "gamma") ++QDEF(MP_QSTR_gc, (const byte*)"\x61\x6e\x02" "gc") ++QDEF(MP_QSTR_generator, (const byte*)"\x96\xc3\x09" "generator") ++QDEF(MP_QSTR_get_ident, (const byte*)"\xfe\xb1\x09" "get_ident") ++QDEF(MP_QSTR_getaddrinfo, (const byte*)"\x6e\x18\x0b" "getaddrinfo") ++QDEF(MP_QSTR_getenv, (const byte*)"\xae\xfb\x06" "getenv") ++QDEF(MP_QSTR_getrandbits, (const byte*)"\x66\x7d\x0b" "getrandbits") ++QDEF(MP_QSTR_getter, (const byte*)"\x90\xb2\x06" "getter") ++QDEF(MP_QSTR_getvalue, (const byte*)"\x78\xac\x08" "getvalue") ++QDEF(MP_QSTR_gmtime, (const byte*)"\x5a\x8e\x06" "gmtime") ++QDEF(MP_QSTR_group, (const byte*)"\xba\xb0\x05" "group") ++QDEF(MP_QSTR_heap_lock, (const byte*)"\xad\x8c\x09" "heap_lock") ++QDEF(MP_QSTR_heap_unlock, (const byte*)"\x56\x2d\x0b" "heap_unlock") ++QDEF(MP_QSTR_heapify, (const byte*)"\xaf\x2d\x07" "heapify") ++QDEF(MP_QSTR_heappop, (const byte*)"\xd6\x27\x07" "heappop") ++QDEF(MP_QSTR_heappush, (const byte*)"\x87\x6b\x08" "heappush") ++QDEF(MP_QSTR_hex, (const byte*)"\x70\x50\x03" "hex") ++QDEF(MP_QSTR_hexlify, (const byte*)"\x2a\x7f\x07" "hexlify") ++QDEF(MP_QSTR_idle, (const byte*)"\xa1\xdc\x04" "idle") ++QDEF(MP_QSTR_ilistdir, (const byte*)"\x71\x6a\x08" "ilistdir") ++QDEF(MP_QSTR_imag, (const byte*)"\x47\xb7\x04" "imag") ++QDEF(MP_QSTR_implementation, (const byte*)"\x17\x2d\x0e" "implementation") ++QDEF(MP_QSTR_indices, (const byte*)"\x5a\x48\x07" "indices") ++QDEF(MP_QSTR_inet_ntop, (const byte*)"\x89\x1d\x09" "inet_ntop") ++QDEF(MP_QSTR_inet_pton, (const byte*)"\xc9\x94\x09" "inet_pton") ++QDEF(MP_QSTR_input, (const byte*)"\x73\x5a\x05" "input") ++QDEF(MP_QSTR_intersection, (const byte*)"\x28\x2a\x0c" "intersection") ++QDEF(MP_QSTR_intersection_update, (const byte*)"\x06\xdd\x13" "intersection_update") ++QDEF(MP_QSTR_invert, (const byte*)"\xb7\x00\x06" "invert") ++QDEF(MP_QSTR_ioctl, (const byte*)"\x78\xc2\x05" "ioctl") ++QDEF(MP_QSTR_ipoll, (const byte*)"\x53\x5d\x05" "ipoll") ++QDEF(MP_QSTR_isclose, (const byte*)"\x49\x4e\x07" "isclose") ++QDEF(MP_QSTR_isdisjoint, (const byte*)"\xf7\x68\x0a" "isdisjoint") ++QDEF(MP_QSTR_isenabled, (const byte*)"\x9a\xe5\x09" "isenabled") ++QDEF(MP_QSTR_isfinite, (const byte*)"\xa6\xab\x08" "isfinite") ++QDEF(MP_QSTR_isinf, (const byte*)"\x3e\x11\x05" "isinf") ++QDEF(MP_QSTR_isnan, (const byte*)"\x9e\x03\x05" "isnan") ++QDEF(MP_QSTR_issubset, (const byte*)"\xb9\xc1\x08" "issubset") ++QDEF(MP_QSTR_issuperset, (const byte*)"\xfc\xec\x0a" "issuperset") ++QDEF(MP_QSTR_iterable, (const byte*)"\x25\x92\x08" "iterable") ++QDEF(MP_QSTR_iterator, (const byte*)"\x47\xbe\x08" "iterator") ++QDEF(MP_QSTR_kbd_intr, (const byte*)"\xf6\x13\x08" "kbd_intr") ++QDEF(MP_QSTR_keepends, (const byte*)"\x62\x8b\x08" "keepends") ++QDEF(MP_QSTR_ldexp, (const byte*)"\x40\x6f\x05" "ldexp") ++QDEF(MP_QSTR_lgamma, (const byte*)"\xce\x6c\x06" "lgamma") ++QDEF(MP_QSTR_listen, (const byte*)"\xcc\x0e\x06" "listen") ++QDEF(MP_QSTR_load, (const byte*)"\x63\x24\x04" "load") ++QDEF(MP_QSTR_loads, (const byte*)"\xb0\xb0\x05" "loads") ++QDEF(MP_QSTR_localtime, (const byte*)"\x7d\x46\x09" "localtime") ++QDEF(MP_QSTR_lock, (const byte*)"\xae\x23\x04" "lock") ++QDEF(MP_QSTR_locked, (const byte*)"\x0f\xba\x06" "locked") ++QDEF(MP_QSTR_log, (const byte*)"\x21\x3f\x03" "log") ++QDEF(MP_QSTR_log10, (const byte*)"\x40\x91\x05" "log10") ++QDEF(MP_QSTR_log2, (const byte*)"\x73\x23\x04" "log2") ++QDEF(MP_QSTR_makefile, (const byte*)"\xc1\xd5\x08" "makefile") ++QDEF(MP_QSTR_match, (const byte*)"\x96\x22\x05" "match") ++QDEF(MP_QSTR_math, (const byte*)"\x35\xbb\x04" "math") ++QDEF(MP_QSTR_max, (const byte*)"\xb1\x43\x03" "max") ++QDEF(MP_QSTR_maxsize, (const byte*)"\xd4\x70\x07" "maxsize") ++QDEF(MP_QSTR_md5, (const byte*)"\x19\x44\x03" "md5") ++QDEF(MP_QSTR_mem, (const byte*)"\x20\x44\x03" "mem") ++QDEF(MP_QSTR_mem16, (const byte*)"\x07\xca\x05" "mem16") ++QDEF(MP_QSTR_mem32, (const byte*)"\x41\xca\x05" "mem32") ++QDEF(MP_QSTR_mem8, (const byte*)"\x18\xc8\x04" "mem8") ++QDEF(MP_QSTR_mem_alloc, (const byte*)"\x52\x2b\x09" "mem_alloc") ++QDEF(MP_QSTR_mem_current, (const byte*)"\x16\xba\x0b" "mem_current") ++QDEF(MP_QSTR_mem_free, (const byte*)"\xcb\x62\x08" "mem_free") ++QDEF(MP_QSTR_mem_info, (const byte*)"\xd1\xf1\x08" "mem_info") ++QDEF(MP_QSTR_mem_peak, (const byte*)"\x40\x25\x08" "mem_peak") ++QDEF(MP_QSTR_mem_total, (const byte*)"\xfd\x6a\x09" "mem_total") ++QDEF(MP_QSTR_memoryview, (const byte*)"\x69\x44\x0a" "memoryview") ++QDEF(MP_QSTR_min, (const byte*)"\xaf\x42\x03" "min") ++QDEF(MP_QSTR_minkeypage, (const byte*)"\xab\x6f\x0a" "minkeypage") ++QDEF(MP_QSTR_mkdir, (const byte*)"\x9c\xb5\x05" "mkdir") ++QDEF(MP_QSTR_mktime, (const byte*)"\x96\x2b\x06" "mktime") ++QDEF(MP_QSTR_mode, (const byte*)"\x26\xc0\x04" "mode") ++QDEF(MP_QSTR_modf, (const byte*)"\x25\xc0\x04" "modf") ++QDEF(MP_QSTR_modify, (const byte*)"\xf5\x66\x06" "modify") ++QDEF(MP_QSTR_module, (const byte*)"\xbf\x99\x06" "module") ++QDEF(MP_QSTR_modules, (const byte*)"\xec\xd1\x07" "modules") ++QDEF(MP_QSTR_mpy, (const byte*)"\xc1\x45\x03" "mpy") ++QDEF(MP_QSTR_name, (const byte*)"\xa2\x75\x04" "name") ++QDEF(MP_QSTR_namedtuple, (const byte*)"\x1e\x16\x0a" "namedtuple") ++QDEF(MP_QSTR_native, (const byte*)"\x84\x0b\x06" "native") ++QDEF(MP_QSTR_oct, (const byte*)"\xfd\x5c\x03" "oct") ++QDEF(MP_QSTR_off, (const byte*)"\x8a\x5c\x03" "off") ++QDEF(MP_QSTR_on, (const byte*)"\x64\x6f\x02" "on") ++QDEF(MP_QSTR_opt_level, (const byte*)"\x87\x67\x09" "opt_level") ++QDEF(MP_QSTR_pack, (const byte*)"\xbc\xd1\x04" "pack") ++QDEF(MP_QSTR_pack_into, (const byte*)"\x1f\xa9\x09" "pack_into") ++QDEF(MP_QSTR_pagesize, (const byte*)"\x13\x28\x08" "pagesize") ++QDEF(MP_QSTR_partition, (const byte*)"\x87\xe5\x09" "partition") ++QDEF(MP_QSTR_path, (const byte*)"\x88\xce\x04" "path") ++QDEF(MP_QSTR_peektime, (const byte*)"\x8b\x5c\x08" "peektime") ++QDEF(MP_QSTR_pend_throw, (const byte*)"\xf3\x74\x0a" "pend_throw") ++QDEF(MP_QSTR_phase, (const byte*)"\x6a\xd5\x05" "phase") ++QDEF(MP_QSTR_pi, (const byte*)"\x1c\x70\x02" "pi") ++QDEF(MP_QSTR_platform, (const byte*)"\x3a\x19\x08" "platform") ++QDEF(MP_QSTR_polar, (const byte*)"\x05\x0c\x05" "polar") ++QDEF(MP_QSTR_poll, (const byte*)"\x9a\xd9\x04" "poll") ++QDEF(MP_QSTR_popleft, (const byte*)"\x71\x9a\x07" "popleft") ++QDEF(MP_QSTR_print_exception, (const byte*)"\x1c\x22\x0f" "print_exception") ++QDEF(MP_QSTR_property, (const byte*)"\xc2\x29\x08" "property") ++QDEF(MP_QSTR_ptr, (const byte*)"\x53\x70\x03" "ptr") ++QDEF(MP_QSTR_ptr16, (const byte*)"\xf4\xca\x05" "ptr16") ++QDEF(MP_QSTR_ptr32, (const byte*)"\xb2\xca\x05" "ptr32") ++QDEF(MP_QSTR_ptr8, (const byte*)"\x8b\x7a\x04" "ptr8") ++QDEF(MP_QSTR_push, (const byte*)"\xbb\x7e\x04" "push") ++QDEF(MP_QSTR_put, (const byte*)"\x74\x70\x03" "put") ++QDEF(MP_QSTR_putenv, (const byte*)"\xc9\x6c\x06" "putenv") ++QDEF(MP_QSTR_qstr_info, (const byte*)"\xb0\x81\x09" "qstr_info") ++QDEF(MP_QSTR_r, (const byte*)"\xd7\xb5\x01" "r") ++QDEF(MP_QSTR_radians, (const byte*)"\x87\x3f\x07" "radians") ++QDEF(MP_QSTR_readlines, (const byte*)"\x6a\x59\x09" "readlines") ++QDEF(MP_QSTR_real, (const byte*)"\xbf\xf9\x04" "real") ++QDEF(MP_QSTR_rect, (const byte*)"\xe5\xf9\x04" "rect") ++QDEF(MP_QSTR_recv, (const byte*)"\xe7\xf9\x04" "recv") ++QDEF(MP_QSTR_recvfrom, (const byte*)"\x91\x90\x08" "recvfrom") ++QDEF(MP_QSTR_register, (const byte*)"\xac\xa1\x08" "register") ++QDEF(MP_QSTR_rel_tol, (const byte*)"\x56\x46\x07" "rel_tol") ++QDEF(MP_QSTR_release, (const byte*)"\xec\x8f\x07" "release") ++QDEF(MP_QSTR_rename, (const byte*)"\x35\x18\x06" "rename") ++QDEF(MP_QSTR_reversed, (const byte*)"\xa1\x6e\x08" "reversed") ++QDEF(MP_QSTR_rmdir, (const byte*)"\x45\xa7\x05" "rmdir") ++QDEF(MP_QSTR_rpartition, (const byte*)"\x15\xd0\x0a" "rpartition") ++QDEF(MP_QSTR_search, (const byte*)"\xab\xc1\x06" "search") ++QDEF(MP_QSTR_seed, (const byte*)"\x92\x75\x04" "seed") ++QDEF(MP_QSTR_seek, (const byte*)"\x9d\x75\x04" "seek") ++QDEF(MP_QSTR_sendto, (const byte*)"\x22\x03\x06" "sendto") ++QDEF(MP_QSTR_seq, (const byte*)"\x22\x8f\x03" "seq") ++QDEF(MP_QSTR_server_hostname, (const byte*)"\x58\xef\x0f" "server_hostname") ++QDEF(MP_QSTR_server_side, (const byte*)"\x64\xef\x0b" "server_side") ++QDEF(MP_QSTR_setblocking, (const byte*)"\x6e\x18\x0b" "setblocking") ++QDEF(MP_QSTR_setraw, (const byte*)"\x83\x71\x06" "setraw") ++QDEF(MP_QSTR_setsockopt, (const byte*)"\x38\xe8\x0a" "setsockopt") ++QDEF(MP_QSTR_setter, (const byte*)"\x04\x59\x06" "setter") ++QDEF(MP_QSTR_settimeout, (const byte*)"\xdc\x8a\x0a" "settimeout") ++QDEF(MP_QSTR_sha1, (const byte*)"\x8e\xac\x04" "sha1") ++QDEF(MP_QSTR_sha256, (const byte*)"\x2e\x01\x06" "sha256") ++QDEF(MP_QSTR_sin, (const byte*)"\xb1\x90\x03" "sin") ++QDEF(MP_QSTR_single, (const byte*)"\x3f\x20\x06" "single") ++QDEF(MP_QSTR_sinh, (const byte*)"\xb9\xa6\x04" "sinh") ++QDEF(MP_QSTR_sizeof, (const byte*)"\x49\x73\x06" "sizeof") ++QDEF(MP_QSTR_sleep, (const byte*)"\xea\x27\x05" "sleep") ++QDEF(MP_QSTR_sleep_ms, (const byte*)"\x0b\x63\x08" "sleep_ms") ++QDEF(MP_QSTR_sleep_us, (const byte*)"\x13\x60\x08" "sleep_us") ++QDEF(MP_QSTR_slice, (const byte*)"\xb5\xf4\x05" "slice") ++QDEF(MP_QSTR_sockaddr, (const byte*)"\x62\x8c\x08" "sockaddr") ++QDEF(MP_QSTR_socket, (const byte*)"\x60\xcc\x06" "socket") ++QDEF(MP_QSTR_splitlines, (const byte*)"\x6a\xd3\x0a" "splitlines") ++QDEF(MP_QSTR_sqrt, (const byte*)"\x21\x44\x04" "sqrt") ++QDEF(MP_QSTR_stack_size, (const byte*)"\x31\x3b\x0a" "stack_size") ++QDEF(MP_QSTR_stack_use, (const byte*)"\x97\xf7\x09" "stack_use") ++QDEF(MP_QSTR_start_new_thread, (const byte*)"\xd7\x25\x10" "start_new_thread") ++QDEF(MP_QSTR_stat, (const byte*)"\xd7\x35\x04" "stat") ++QDEF(MP_QSTR_statvfs, (const byte*)"\x14\x19\x07" "statvfs") ++QDEF(MP_QSTR_stderr, (const byte*)"\xa3\x58\x06" "stderr") ++QDEF(MP_QSTR_stdin, (const byte*)"\x21\x04\x05" "stdin") ++QDEF(MP_QSTR_stdout, (const byte*)"\x08\x83\x06" "stdout") ++QDEF(MP_QSTR_struct, (const byte*)"\x12\x90\x06" "struct") ++QDEF(MP_QSTR_symmetric_difference, (const byte*)"\xce\x67\x14" "symmetric_difference") ++QDEF(MP_QSTR_symmetric_difference_update, (const byte*)"\x60\xf8\x1b" "symmetric_difference_update") ++QDEF(MP_QSTR_sys, (const byte*)"\xbc\x8e\x03" "sys") ++QDEF(MP_QSTR_system, (const byte*)"\xa0\x14\x06" "system") ++QDEF(MP_QSTR_tan, (const byte*)"\xfe\x61\x03" "tan") ++QDEF(MP_QSTR_tanh, (const byte*)"\xd6\xa1\x04" "tanh") ++QDEF(MP_QSTR_tcgetattr, (const byte*)"\xb7\xc5\x09" "tcgetattr") ++QDEF(MP_QSTR_tcsetattr, (const byte*)"\xa3\x34\x09" "tcsetattr") ++QDEF(MP_QSTR_tell, (const byte*)"\x14\xb1\x04" "tell") ++QDEF(MP_QSTR_termios, (const byte*)"\x7e\xdf\x07" "termios") ++QDEF(MP_QSTR_threshold, (const byte*)"\xf2\x2f\x09" "threshold") ++QDEF(MP_QSTR_ticks_add, (const byte*)"\x9d\xae\x09" "ticks_add") ++QDEF(MP_QSTR_ticks_cpu, (const byte*)"\x1a\xa5\x09" "ticks_cpu") ++QDEF(MP_QSTR_ticks_diff, (const byte*)"\xb1\xe0\x0a" "ticks_diff") ++QDEF(MP_QSTR_ticks_ms, (const byte*)"\x42\x32\x08" "ticks_ms") ++QDEF(MP_QSTR_ticks_us, (const byte*)"\x5a\x31\x08" "ticks_us") ++QDEF(MP_QSTR_time, (const byte*)"\xf0\xc1\x04" "time") ++QDEF(MP_QSTR_time_ns, (const byte*)"\x72\xb2\x07" "time_ns") ++QDEF(MP_QSTR_time_pulse_us, (const byte*)"\x89\x0c\x0d" "time_pulse_us") ++QDEF(MP_QSTR_trunc, (const byte*)"\x5b\x99\x05" "trunc") ++QDEF(MP_QSTR_uarray, (const byte*)"\x89\x86\x06" "uarray") ++QDEF(MP_QSTR_ubinascii, (const byte*)"\xc4\x88\x09" "ubinascii") ++QDEF(MP_QSTR_ucollections, (const byte*)"\x15\x9a\x0c" "ucollections") ++QDEF(MP_QSTR_ucryptolib, (const byte*)"\x34\xda\x0a" "ucryptolib") ++QDEF(MP_QSTR_uctypes, (const byte*)"\xf8\x71\x07" "uctypes") ++QDEF(MP_QSTR_uerrno, (const byte*)"\xb4\xe9\x06" "uerrno") ++QDEF(MP_QSTR_uhashlib, (const byte*)"\x65\x9d\x08" "uhashlib") ++QDEF(MP_QSTR_uheapq, (const byte*)"\x1d\x43\x06" "uheapq") ++QDEF(MP_QSTR_uint, (const byte*)"\xe3\x3d\x04" "uint") ++QDEF(MP_QSTR_uio, (const byte*)"\xb6\x66\x03" "uio") ++QDEF(MP_QSTR_ujson, (const byte*)"\xe8\x30\x05" "ujson") ++QDEF(MP_QSTR_umachine, (const byte*)"\x95\x7f\x08" "umachine") ++QDEF(MP_QSTR_unhexlify, (const byte*)"\xb1\xb9\x09" "unhexlify") ++QDEF(MP_QSTR_union, (const byte*)"\xf6\x7c\x05" "union") ++QDEF(MP_QSTR_unpack, (const byte*)"\x07\x3c\x06" "unpack") ++QDEF(MP_QSTR_unpack_from, (const byte*)"\x0e\x6d\x0b" "unpack_from") ++QDEF(MP_QSTR_unregister, (const byte*)"\x17\xd4\x0a" "unregister") ++QDEF(MP_QSTR_unsetenv, (const byte*)"\x81\x46\x08" "unsetenv") ++QDEF(MP_QSTR_uos, (const byte*)"\xec\x67\x03" "uos") ++QDEF(MP_QSTR_urandom, (const byte*)"\xab\xae\x07" "urandom") ++QDEF(MP_QSTR_ure, (const byte*)"\x87\x63\x03" "ure") ++QDEF(MP_QSTR_uselect, (const byte*)"\x58\x8e\x07" "uselect") ++QDEF(MP_QSTR_usocket, (const byte*)"\x75\x00\x07" "usocket") ++QDEF(MP_QSTR_ussl, (const byte*)"\x1c\xf2\x04" "ussl") ++QDEF(MP_QSTR_ustruct, (const byte*)"\x47\x08\x07" "ustruct") ++QDEF(MP_QSTR_usys, (const byte*)"\xc9\xf3\x04" "usys") ++QDEF(MP_QSTR_utime, (const byte*)"\xe5\x9d\x05" "utime") ++QDEF(MP_QSTR_utimeq, (const byte*)"\xf4\x5a\x06" "utimeq") ++QDEF(MP_QSTR_uwebsocket, (const byte*)"\xe5\x33\x0a" "uwebsocket") ++QDEF(MP_QSTR_uzlib, (const byte*)"\x6d\x9b\x05" "uzlib") ++QDEF(MP_QSTR_var, (const byte*)"\xe0\x7a\x03" "var") ++QDEF(MP_QSTR_version, (const byte*)"\xbf\xd3\x07" "version") ++QDEF(MP_QSTR_version_info, (const byte*)"\x6e\x0a\x0c" "version_info") ++QDEF(MP_QSTR_viper, (const byte*)"\x5d\x23\x05" "viper") ++QDEF(MP_QSTR_websocket, (const byte*)"\x90\x8d\x09" "websocket") ++QDEF(MP_QSTR_wrap_socket, (const byte*)"\xcb\xf3\x0b" "wrap_socket") +diff -Nur a/micropython-1.16/ports/unix/main.c b/micropython-1.16/ports/unix/main.c +--- a/micropython-1.16/ports/unix/main.c 2021-06-18 14:38:06.000000000 +0800 ++++ b/micropython-1.16/ports/unix/main.c 2021-07-29 15:24:42.782450868 +0800 +@@ -59,7 +59,11 @@ + #if MICROPY_ENABLE_GC + // Heap size of GC heap (if enabled) + // Make it larger on a 64 bit machine, because pointers are larger. +-long heap_size = 1024 * 1024 * (sizeof(mp_uint_t) / 4); ++#ifdef LOSCFG_MICROPYTHON_HEAD_SIZE ++long heap_size = LOSCFG_MICROPYTHON_HEAD_SIZE; ++#else ++long heap_size = 4 * 1024 * (sizeof(mp_uint_t) / 4); ++#endif + #endif + + STATIC void stderr_print_strn(void *env, const char *str, size_t len) { +@@ -423,7 +427,7 @@ + + MP_NOINLINE int main_(int argc, char **argv); + +-int main(int argc, char **argv) { ++int python_main(int argc, char **argv) { + #if MICROPY_PY_THREAD + mp_thread_init(); + #endif +@@ -650,7 +654,7 @@ + } + } else { + char *pathbuf = malloc(PATH_MAX); +- char *basedir = realpath(argv[a], pathbuf); ++ char *basedir = argv[a]; // realpath(argv[a], pathbuf); + if (basedir == NULL) { + mp_printf(&mp_stderr_print, "%s: can't open file '%s': [Errno %d] %s\n", argv[0], argv[a], errno, strerror(errno)); + // CPython exits with 2 in such case +diff -Nur a/micropython-1.16/ports/unix/modos.c b/micropython-1.16/ports/unix/modos.c +--- a/micropython-1.16/ports/unix/modos.c 2021-06-18 14:38:06.000000000 +0800 ++++ b/micropython-1.16/ports/unix/modos.c 2021-07-29 15:24:42.782450868 +0800 +@@ -187,7 +187,8 @@ + #if _WIN32 + ret = _putenv_s(key, value); + #else +- ret = setenv(key, value, 1); ++ ret = 0; // setenv(key, value, 1); ++ PRINT_ERR("Not support setenv"); + #endif + + if (ret == -1) { +@@ -204,7 +205,8 @@ + #if _WIN32 + ret = _putenv_s(key, ""); + #else +- ret = unsetenv(key); ++ ret = 0; // unsetenv(key); ++ PRINT_ERR("Not support unsetenv"); + #endif + + if (ret == -1) { +diff -Nur a/micropython-1.16/ports/unix/mpconfigport.h b/micropython-1.16/ports/unix/mpconfigport.h +--- a/micropython-1.16/ports/unix/mpconfigport.h 2021-06-18 14:38:06.000000000 +0800 ++++ b/micropython-1.16/ports/unix/mpconfigport.h 2021-07-29 15:24:42.782450868 +0800 +@@ -137,11 +137,11 @@ + #define MICROPY_STACKLESS_STRICT (0) + #endif + +-#define MICROPY_PY_OS_STATVFS (1) +-#define MICROPY_PY_UTIME (1) ++#define MICROPY_PY_OS_STATVFS (0) ++#define MICROPY_PY_UTIME (0) + #define MICROPY_PY_UTIME_MP_HAL (1) + #define MICROPY_PY_UERRNO (1) +-#define MICROPY_PY_UCTYPES (1) ++#define MICROPY_PY_UCTYPES (0) + #define MICROPY_PY_UZLIB (1) + #define MICROPY_PY_UJSON (1) + #define MICROPY_PY_URE (1) +@@ -157,7 +157,7 @@ + #define MICROPY_PY_UBINASCII_CRC32 (1) + #define MICROPY_PY_URANDOM (1) + #ifndef MICROPY_PY_USELECT_POSIX +-#define MICROPY_PY_USELECT_POSIX (1) ++#define MICROPY_PY_USELECT_POSIX (0) + #endif + #define MICROPY_PY_UWEBSOCKET (1) + #define MICROPY_PY_MACHINE (1) +@@ -190,7 +190,7 @@ + #define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1) + #define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (256) + #define MICROPY_KBD_EXCEPTION (1) +-#define MICROPY_ASYNC_KBD_INTR (1) ++#define MICROPY_ASYNC_KBD_INTR (0) + + #define mp_type_fileio mp_type_vfs_posix_fileio + #define mp_type_textio mp_type_vfs_posix_textio +@@ -279,8 +279,8 @@ + void mp_unix_alloc_exec(size_t min_size, void **ptr, size_t *size); + void mp_unix_free_exec(void *ptr, size_t size); + void mp_unix_mark_exec(void); +-#define MP_PLAT_ALLOC_EXEC(min_size, ptr, size) mp_unix_alloc_exec(min_size, ptr, size) +-#define MP_PLAT_FREE_EXEC(ptr, size) mp_unix_free_exec(ptr, size) ++// #define MP_PLAT_ALLOC_EXEC(min_size, ptr, size) mp_unix_alloc_exec(min_size, ptr, size) ++// #define MP_PLAT_FREE_EXEC(ptr, size) mp_unix_free_exec(ptr, size) + #ifndef MICROPY_FORCE_PLAT_ALLOC_EXEC + // Use MP_PLAT_ALLOC_EXEC for any executable memory allocation, including for FFI + // (overriding libffi own implementation) +diff -Nur a/micropython-1.16/ports/unix/unix_mphal.c b/micropython-1.16/ports/unix/unix_mphal.c +--- a/micropython-1.16/ports/unix/unix_mphal.c 2021-06-18 14:38:06.000000000 +0800 ++++ b/micropython-1.16/ports/unix/unix_mphal.c 2021-07-29 15:24:42.782450868 +0800 +@@ -69,21 +69,25 @@ + if (c == CHAR_CTRL_C) { + #ifndef _WIN32 + // enable signal handler ++ #ifndef __LITEOS__ + struct sigaction sa; + sa.sa_flags = 0; + sa.sa_handler = sighandler; + sigemptyset(&sa.sa_mask); + sigaction(SIGINT, &sa, NULL); + #endif ++ #endif + } else { + #ifndef _WIN32 + // disable signal handler ++ #ifndef __LITEOS__ + struct sigaction sa; + sa.sa_flags = 0; + sa.sa_handler = SIG_DFL; + sigemptyset(&sa.sa_mask); + sigaction(SIGINT, &sa, NULL); + #endif ++ #endif + } + } + diff --git a/components/language/micropython/patch.sha256 b/components/language/micropython/patch.sha256 new file mode 100644 index 0000000000000000000000000000000000000000..7dedfe773d34aeaf4ce989766c64f5f909e44a8e --- /dev/null +++ b/components/language/micropython/patch.sha256 @@ -0,0 +1 @@ +34a12fc29365d2ddc4a9f125de0112b71a706f0874c426e89f44d18752f31914 origin.patch diff --git a/components/language/micropython/src.sha256 b/components/language/micropython/src.sha256 new file mode 100644 index 0000000000000000000000000000000000000000..867e1fc36da395d5f1b956da14bd9b64637d3a4c --- /dev/null +++ b/components/language/micropython/src.sha256 @@ -0,0 +1 @@ +af99c8c61bddbb01fbc05f584026d92c46721972db12049c63208a4a9d3c4f36 micropython-1.16.zip