py/modmicropython: Allow to have stack_use() func without mem_info().
The micropython.stack_use() function is useful to query the current C stack usage, and it's inclusion in the micropython module doesn't need to be tied to the inclusion of mem_info()/qstr_info() because it doesn't rely on any of the code from these functions. So this patch introduces the config option MICROPY_PY_MICROPYTHON_STACK_USE which can be used to independently control the inclusion of stack_use(). By default it is enabled if MICROPY_PY_MICROPYTHON_MEM_INFO is enabled (thus not changing any of the existing ports).
This commit is contained in:
parent
209936880d
commit
7e2a48858c
|
@ -103,15 +103,15 @@ STATIC mp_obj_t mp_micropython_qstr_info(size_t n_args, const mp_obj_t *args) {
|
|||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_micropython_qstr_info_obj, 0, 1, mp_micropython_qstr_info);
|
||||
|
||||
#if MICROPY_STACK_CHECK
|
||||
#endif // MICROPY_PY_MICROPYTHON_MEM_INFO
|
||||
|
||||
#if MICROPY_PY_MICROPYTHON_STACK_USE
|
||||
STATIC mp_obj_t mp_micropython_stack_use(void) {
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_stack_usage());
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_micropython_stack_use_obj, mp_micropython_stack_use);
|
||||
#endif
|
||||
|
||||
#endif // MICROPY_PY_MICROPYTHON_MEM_INFO
|
||||
|
||||
#if MICROPY_ENABLE_PYSTACK
|
||||
STATIC mp_obj_t mp_micropython_pystack_use(void) {
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_pystack_usage());
|
||||
|
@ -167,9 +167,9 @@ STATIC const mp_rom_map_elem_t mp_module_micropython_globals_table[] = {
|
|||
#endif
|
||||
{ MP_ROM_QSTR(MP_QSTR_mem_info), MP_ROM_PTR(&mp_micropython_mem_info_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_qstr_info), MP_ROM_PTR(&mp_micropython_qstr_info_obj) },
|
||||
#if MICROPY_STACK_CHECK
|
||||
{ MP_ROM_QSTR(MP_QSTR_stack_use), MP_ROM_PTR(&mp_micropython_stack_use_obj) },
|
||||
#endif
|
||||
#if MICROPY_PY_MICROPYTHON_STACK_USE
|
||||
{ MP_ROM_QSTR(MP_QSTR_stack_use), MP_ROM_PTR(&mp_micropython_stack_use_obj) },
|
||||
#endif
|
||||
#if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF && (MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE == 0)
|
||||
{ MP_ROM_QSTR(MP_QSTR_alloc_emergency_exception_buf), MP_ROM_PTR(&mp_alloc_emergency_exception_buf_obj) },
|
||||
|
|
|
@ -907,6 +907,11 @@ typedef double mp_float_t;
|
|||
#define MICROPY_PY_MICROPYTHON_MEM_INFO (0)
|
||||
#endif
|
||||
|
||||
// Whether to provide "micropython.stack_use" function
|
||||
#ifndef MICROPY_PY_MICROPYTHON_STACK_USE
|
||||
#define MICROPY_PY_MICROPYTHON_STACK_USE (MICROPY_PY_MICROPYTHON_MEM_INFO)
|
||||
#endif
|
||||
|
||||
// Whether to provide "array" module. Note that large chunk of the
|
||||
// underlying code is shared with "bytearray" builtin type, so to
|
||||
// get real savings, it should be disabled too.
|
||||
|
|
Loading…
Reference in New Issue