From e2d44e30c77360789d6e7c1211b222f93b92e0df Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 6 Apr 2015 23:50:37 +0300 Subject: [PATCH] py: Add MICROPY_PY_BUILTINS_ENUMERATE, disable for minimal ports. --- minimal/mpconfigport.h | 1 + py/modbuiltins.c | 2 ++ py/mpconfig.h | 5 +++++ py/objenumerate.c | 4 ++++ unix/mpconfigport_minimal.h | 1 + 5 files changed, 13 insertions(+) diff --git a/minimal/mpconfigport.h b/minimal/mpconfigport.h index 188a009582..e7eaa34eb0 100644 --- a/minimal/mpconfigport.h +++ b/minimal/mpconfigport.h @@ -21,6 +21,7 @@ #define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_TERSE) #define MICROPY_PY_BUILTINS_BYTEARRAY (0) #define MICROPY_PY_BUILTINS_MEMORYVIEW (0) +#define MICROPY_PY_BUILTINS_ENUMERATE (0) #define MICROPY_PY_BUILTINS_FROZENSET (0) #define MICROPY_PY_BUILTINS_SET (0) #define MICROPY_PY_BUILTINS_SLICE (0) diff --git a/py/modbuiltins.c b/py/modbuiltins.c index 3ab522c3f4..da97cb9b13 100644 --- a/py/modbuiltins.c +++ b/py/modbuiltins.c @@ -594,7 +594,9 @@ STATIC const mp_map_elem_t mp_module_builtins_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_complex), (mp_obj_t)&mp_type_complex }, #endif { MP_OBJ_NEW_QSTR(MP_QSTR_dict), (mp_obj_t)&mp_type_dict }, + #if MICROPY_PY_BUILTINS_ENUMERATE { MP_OBJ_NEW_QSTR(MP_QSTR_enumerate), (mp_obj_t)&mp_type_enumerate }, + #endif { MP_OBJ_NEW_QSTR(MP_QSTR_filter), (mp_obj_t)&mp_type_filter }, #if MICROPY_PY_BUILTINS_FLOAT { MP_OBJ_NEW_QSTR(MP_QSTR_float), (mp_obj_t)&mp_type_float }, diff --git a/py/mpconfig.h b/py/mpconfig.h index b2f37e99c7..4065c68665 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -459,6 +459,11 @@ typedef double mp_float_t; #define MICROPY_PY_BUILTINS_COMPILE (0) #endif +// Whether to support enumerate function(type) +#ifndef MICROPY_PY_BUILTINS_ENUMERATE +#define MICROPY_PY_BUILTINS_ENUMERATE (1) +#endif + // Whether to support the Python 2 execfile function #ifndef MICROPY_PY_BUILTINS_EXECFILE #define MICROPY_PY_BUILTINS_EXECFILE (0) diff --git a/py/objenumerate.c b/py/objenumerate.c index ab1153844d..36f72083b8 100644 --- a/py/objenumerate.c +++ b/py/objenumerate.c @@ -29,6 +29,8 @@ #include "py/runtime.h" +#if MICROPY_PY_BUILTINS_ENUMERATE + typedef struct _mp_obj_enumerate_t { mp_obj_base_t base; mp_obj_t iter; @@ -83,3 +85,5 @@ STATIC mp_obj_t enumerate_iternext(mp_obj_t self_in) { return mp_obj_new_tuple(2, items); } } + +#endif // MICROPY_PY_BUILTINS_ENUMERATE diff --git a/unix/mpconfigport_minimal.h b/unix/mpconfigport_minimal.h index fe9dbd8d7a..5019eaa39d 100644 --- a/unix/mpconfigport_minimal.h +++ b/unix/mpconfigport_minimal.h @@ -48,6 +48,7 @@ #define MICROPY_PY_BUILTINS_BYTEARRAY (0) #define MICROPY_PY_BUILTINS_MEMORYVIEW (0) #define MICROPY_PY_BUILTINS_COMPILE (0) +#define MICROPY_PY_BUILTINS_ENUMERATE (0) #define MICROPY_PY_BUILTINS_FROZENSET (0) #define MICROPY_PY_BUILTINS_SET (0) #define MICROPY_PY_BUILTINS_SLICE (0)