From 282ca09f8e386f24e1e87acd3de93954b6a8035c Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 7 Apr 2015 00:16:51 +0300 Subject: [PATCH] py: Add MICROPY_PY_BUILTINS_REVERSED, disable for minimal ports. --- minimal/mpconfigport.h | 1 + py/modbuiltins.c | 2 ++ py/mpconfig.h | 5 +++++ py/objreversed.c | 4 ++++ unix/mpconfigport_minimal.h | 1 + 5 files changed, 13 insertions(+) diff --git a/minimal/mpconfigport.h b/minimal/mpconfigport.h index e7eaa34eb0..02ad5bd627 100644 --- a/minimal/mpconfigport.h +++ b/minimal/mpconfigport.h @@ -23,6 +23,7 @@ #define MICROPY_PY_BUILTINS_MEMORYVIEW (0) #define MICROPY_PY_BUILTINS_ENUMERATE (0) #define MICROPY_PY_BUILTINS_FROZENSET (0) +#define MICROPY_PY_BUILTINS_REVERSED (0) #define MICROPY_PY_BUILTINS_SET (0) #define MICROPY_PY_BUILTINS_SLICE (0) #define MICROPY_PY_BUILTINS_PROPERTY (0) diff --git a/py/modbuiltins.c b/py/modbuiltins.c index da97cb9b13..0985e25bf4 100644 --- a/py/modbuiltins.c +++ b/py/modbuiltins.c @@ -615,7 +615,9 @@ STATIC const mp_map_elem_t mp_module_builtins_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_property), (mp_obj_t)&mp_type_property }, #endif { MP_OBJ_NEW_QSTR(MP_QSTR_range), (mp_obj_t)&mp_type_range }, + #if MICROPY_PY_BUILTINS_REVERSED { MP_OBJ_NEW_QSTR(MP_QSTR_reversed), (mp_obj_t)&mp_type_reversed }, + #endif #if MICROPY_PY_BUILTINS_SET { MP_OBJ_NEW_QSTR(MP_QSTR_set), (mp_obj_t)&mp_type_set }, #endif diff --git a/py/mpconfig.h b/py/mpconfig.h index 4065c68665..824ef76fe1 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -469,6 +469,11 @@ typedef double mp_float_t; #define MICROPY_PY_BUILTINS_EXECFILE (0) #endif +// Whether to support reversed function(type) +#ifndef MICROPY_PY_BUILTINS_REVERSED +#define MICROPY_PY_BUILTINS_REVERSED (1) +#endif + // Whether to set __file__ for imported modules #ifndef MICROPY_PY___FILE__ #define MICROPY_PY___FILE__ (1) diff --git a/py/objreversed.c b/py/objreversed.c index 0d5332d002..7ad0f89edc 100644 --- a/py/objreversed.c +++ b/py/objreversed.c @@ -30,6 +30,8 @@ #include "py/nlr.h" #include "py/runtime.h" +#if MICROPY_PY_BUILTINS_REVERSED + typedef struct _mp_obj_reversed_t { mp_obj_base_t base; mp_obj_t seq; // sequence object that we are reversing @@ -75,3 +77,5 @@ const mp_obj_type_t mp_type_reversed = { .getiter = mp_identity, .iternext = reversed_iternext, }; + +#endif // MICROPY_PY_BUILTINS_REVERSED diff --git a/unix/mpconfigport_minimal.h b/unix/mpconfigport_minimal.h index 5019eaa39d..078f5a1d1b 100644 --- a/unix/mpconfigport_minimal.h +++ b/unix/mpconfigport_minimal.h @@ -50,6 +50,7 @@ #define MICROPY_PY_BUILTINS_COMPILE (0) #define MICROPY_PY_BUILTINS_ENUMERATE (0) #define MICROPY_PY_BUILTINS_FROZENSET (0) +#define MICROPY_PY_BUILTINS_REVERSED (0) #define MICROPY_PY_BUILTINS_SET (0) #define MICROPY_PY_BUILTINS_SLICE (0) #define MICROPY_PY_BUILTINS_STR_UNICODE (0)