summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/mpconfig.h8
-rw-r--r--py/runtime.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 5d8c57692e..505b1b2d18 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -85,6 +85,14 @@ typedef long long mp_longint_impl_t;
#define MICROPY_ENABLE_SLICE (1)
#endif
+// Enable features which improve CPython compatibility
+// but may lead to more code size/memory usage.
+// TODO: Originally intended as generic category to not
+// add bunch of once-off options. May need refactoring later
+#ifndef MICROPY_CPYTHON_COMPAT
+#define MICROPY_CPYTHON_COMPAT (1)
+#endif
+
/*****************************************************************************/
/* Miscellaneous settings */
diff --git a/py/runtime.c b/py/runtime.c
index e1e9e31cc7..0da3ced058 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -143,6 +143,13 @@ void rt_init(void) {
mp_map_add_qstr(&map_builtins, MP_QSTR_sum, (mp_obj_t)&mp_builtin_sum_obj);
mp_map_add_qstr(&map_builtins, MP_QSTR_str, (mp_obj_t)&mp_builtin_str_obj);
+#if MICROPY_CPYTHON_COMPAT
+ // Add (empty) micropython module, so it was possible to "import micropython",
+ // which can be a placeholder module on CPython.
+ mp_obj_t m = mp_obj_new_module(qstr_from_str_static("micropython"));
+ rt_store_name(qstr_from_str_static("micropython"), m);
+#endif
+
next_unique_code_id = 1; // 0 indicates "no code"
unique_codes_alloc = 0;
unique_codes = NULL;