Merge branch 'version-11' into HEAD

This commit is contained in:
Émilie Feral
2019-04-29 18:00:17 +02:00
121 changed files with 868 additions and 344 deletions

View File

@@ -42,3 +42,7 @@ bool micropython_port_interrupt_if_needed() {
}
return false;
}
int micropython_port_random() {
return Ion::random();
}

View File

@@ -12,6 +12,7 @@ extern "C" {
bool micropython_port_vm_hook_loop();
bool micropython_port_interruptible_msleep(uint32_t delay);
bool micropython_port_interrupt_if_needed();
int micropython_port_random();
#ifdef __cplusplus
}

View File

@@ -83,12 +83,15 @@
// Whether to provide "sys" module
#define MICROPY_PY_SYS (0)
// Wether to provide the "urandom" module
// Whether to provide the "urandom" module
#define MICROPY_PY_URANDOM (1)
// Whether to include: randrange, randint, choice, random, uniform
#define MICROPY_PY_URANDOM_EXTRA_FUNCS (1)
// Function to seed URANDOM with on init
#define MICROPY_PY_URANDOM_SEED_INIT_FUNC micropython_port_random()
// Make a pointer to RAM callable (eg set lower bit for Thumb code)
// (This scheme won't work if we want to mix Thumb and normal ARM code.)
#define MICROPY_MAKE_POINTER_CALLABLE(p) (p)

View File

@@ -200,8 +200,20 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_urandom_uniform_obj, mod_urandom_uniform);
#endif // MICROPY_PY_URANDOM_EXTRA_FUNCS
#ifdef MICROPY_PY_URANDOM_SEED_INIT_FUNC
STATIC mp_obj_t mod_urandom___init__() {
mod_urandom_seed(MP_OBJ_NEW_SMALL_INT(MICROPY_PY_URANDOM_SEED_INIT_FUNC));
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_urandom___init___obj, mod_urandom___init__);
#endif
STATIC const mp_rom_map_elem_t mp_module_urandom_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_urandom) },
#ifdef MICROPY_PY_URANDOM_SEED_INIT_FUNC
{ MP_ROM_QSTR(MP_QSTR___init__), MP_ROM_PTR(&mod_urandom___init___obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_getrandbits), MP_ROM_PTR(&mod_urandom_getrandbits_obj) },
{ MP_ROM_QSTR(MP_QSTR_seed), MP_ROM_PTR(&mod_urandom_seed_obj) },
#if MICROPY_PY_URANDOM_EXTRA_FUNCS