Commit eea2eb1b authored by Damien George's avatar Damien George
Browse files

Merge pull request #180 from pfalcon/examples-improve

Improve compatibility of examples with CPython (+ interp compatibility too)
parents a671f891 dcac8809
......@@ -34,10 +34,11 @@ def conway_go(num_frames):
for i in range(num_frames):
conway_step() # do 1 iteration
lcd.show() # update the LCD
pyb.delay(300)
# PC testing
import lcd
import pyb
lcd = lcd.LCD(128, 32)
conway_rand()
conway_go(100)
conway_go(1000)
try:
import micropython
except:
pass
def mandelbrot():
# returns True if c, complex, is in the Mandelbrot set
@micropython.native
......
# micropython module placeholder for CPython
# Dummy function decorators
def nodecor(x):
return x
byte_code = native = viper = nodecor
# pyboard testing functions for PC
# pyboard testing functions for CPython
import time
def delay(n):
pass
time.sleep(float(n) / 1000)
rand_seed = 1
def rand():
......
......@@ -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 */
......
......@@ -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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment