From 282ca09f8e386f24e1e87acd3de93954b6a8035c Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
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 e7eaa34eb..02ad5bd62 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 da97cb9b1..0985e25bf 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 4065c6866..824ef76fe 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 0d5332d00..7ad0f89ed 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 5019eaa39..078f5a1d1 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)
-- 
GitLab