diff options
author | Damien George <damien.p.george@gmail.com> | 2014-01-16 10:56:39 -0800 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-01-16 10:56:39 -0800 |
commit | eea2eb1bb74c59e80deb14872a0aa10d6a69a304 (patch) | |
tree | 77c4ec4cbede304afffe0f7a86f8e9886e8b900d /py | |
parent | a671f891ddb42496accb889e19a0eb14b50caba2 (diff) | |
parent | dcac88095b3a67e75204f6b245d62d481ce2d906 (diff) | |
download | micropython-eea2eb1bb74c59e80deb14872a0aa10d6a69a304.tar.gz micropython-eea2eb1bb74c59e80deb14872a0aa10d6a69a304.zip |
Merge pull request #180 from pfalcon/examples-improve
Improve compatibility of examples with CPython (+ interp compatibility too)
Diffstat (limited to 'py')
-rw-r--r-- | py/mpconfig.h | 8 | ||||
-rw-r--r-- | py/runtime.c | 7 |
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; |