diff --git a/py/modsys.c b/py/modsys.c index 738758bdf4..a99db1b7f8 100644 --- a/py/modsys.c +++ b/py/modsys.c @@ -51,6 +51,9 @@ mp_obj_list_t mp_sys_argv_obj; STATIC const mp_obj_tuple_t mp_sys_version_info_obj = {{&mp_type_tuple}, 3, {I(3), I(4), I(0)}}; #undef I STATIC const MP_DEFINE_STR_OBJ(version_obj, "3.4.0"); +#ifdef MICROPY_PY_SYS_PLATFORM +STATIC const MP_DEFINE_STR_OBJ(platform_obj, MICROPY_PY_SYS_PLATFORM); +#endif STATIC const mp_map_elem_t mp_module_sys_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_sys) }, @@ -59,6 +62,9 @@ STATIC const mp_map_elem_t mp_module_sys_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_argv), (mp_obj_t)&mp_sys_argv_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_version), (mp_obj_t)&version_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_version_info), (mp_obj_t)&mp_sys_version_info_obj }, +#ifdef MICROPY_PY_SYS_PLATFORM + { MP_OBJ_NEW_QSTR(MP_QSTR_platform), (mp_obj_t)&platform_obj }, +#endif #if MP_ENDIANNESS_LITTLE { MP_OBJ_NEW_QSTR(MP_QSTR_byteorder), MP_OBJ_NEW_QSTR(MP_QSTR_little) }, #else diff --git a/py/objtype.c b/py/objtype.c index dfe5eaa8f0..0d6674c33d 100644 --- a/py/objtype.c +++ b/py/objtype.c @@ -336,9 +336,9 @@ STATIC const qstr binary_op_method_name[] = { MP_BINARY_OP_INPLACE_FLOOR_DIVIDE, MP_BINARY_OP_INPLACE_TRUE_DIVIDE, MP_BINARY_OP_INPLACE_MODULO, - MP_BINARY_OP_INPLACE_POWER, - MP_BINARY_OP_LESS, - MP_BINARY_OP_MORE, + MP_BINARY_OP_INPLACE_POWER,*/ + [MP_BINARY_OP_LESS] = MP_QSTR___lt__, + /*MP_BINARY_OP_MORE, MP_BINARY_OP_EQUAL, MP_BINARY_OP_LESS_EQUAL, MP_BINARY_OP_MORE_EQUAL, diff --git a/py/qstrdefs.h b/py/qstrdefs.h index 69182f2809..521d4399a5 100644 --- a/py/qstrdefs.h +++ b/py/qstrdefs.h @@ -60,6 +60,7 @@ Q(__str__) Q(__getattr__) Q(__del__) Q(__call__) +Q(__lt__) Q(micropython) Q(bytecode) @@ -343,6 +344,9 @@ Q(byteorder) Q(big) Q(exit) Q(little) +#ifdef MICROPY_PY_SYS_PLATFORM +Q(platform) +#endif Q(stdin) Q(stdout) Q(stderr) diff --git a/py/runtime.c b/py/runtime.c index cdbf99d4a5..179b48d327 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -1150,6 +1150,10 @@ void *m_malloc_fail(int num_bytes) { nlr_raise((mp_obj_t)&mp_const_MemoryError_obj); } +NORETURN void mp_not_implemented(const char *msg) { + nlr_raise(mp_obj_new_exception_msg(&mp_type_NotImplementedError, msg)); +} + // these must correspond to the respective enum void *const mp_fun_table[MP_F_NUMBER_OF] = { mp_load_const_int, diff --git a/py/runtime.h b/py/runtime.h index dbd413180b..fb61c01dd1 100644 --- a/py/runtime.h +++ b/py/runtime.h @@ -112,6 +112,9 @@ mp_obj_t mp_import_name(qstr name, mp_obj_t fromlist, mp_obj_t level); mp_obj_t mp_import_from(mp_obj_t module, qstr name); void mp_import_all(mp_obj_t module); +// Raise NotImplementedError with given message +NORETURN void mp_not_implemented(const char *msg); + extern struct _mp_obj_list_t mp_sys_path_obj; extern struct _mp_obj_list_t mp_sys_argv_obj; #define mp_sys_path ((mp_obj_t)&mp_sys_path_obj) diff --git a/unix/mpconfigport.h b/unix/mpconfigport.h index ace7a419b4..bf2cf73efd 100644 --- a/unix/mpconfigport.h +++ b/unix/mpconfigport.h @@ -43,6 +43,7 @@ #define MICROPY_OPT_COMPUTED_GOTO (1) #define MICROPY_PY_BUILTINS_FROZENSET (1) #define MICROPY_PY_SYS_EXIT (1) +#define MICROPY_PY_SYS_PLATFORM "linux" #define MICROPY_PY_SYS_STDFILES (1) #define MICROPY_PY_CMATH (1) #define MICROPY_PY_IO_FILEIO (1)