summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--minimal/mpconfigport.h1
-rw-r--r--py/modbuiltins.c2
-rw-r--r--py/mpconfig.h5
-rw-r--r--py/objfilter.c4
-rw-r--r--py/qstrdefs.h2
-rw-r--r--unix/mpconfigport_minimal.h1
6 files changed, 15 insertions, 0 deletions
diff --git a/minimal/mpconfigport.h b/minimal/mpconfigport.h
index f2c616732a..b9c97d2d34 100644
--- a/minimal/mpconfigport.h
+++ b/minimal/mpconfigport.h
@@ -24,6 +24,7 @@
#define MICROPY_PY_BUILTINS_BYTEARRAY (0)
#define MICROPY_PY_BUILTINS_MEMORYVIEW (0)
#define MICROPY_PY_BUILTINS_ENUMERATE (0)
+#define MICROPY_PY_BUILTINS_FILTER (0)
#define MICROPY_PY_BUILTINS_FROZENSET (0)
#define MICROPY_PY_BUILTINS_REVERSED (0)
#define MICROPY_PY_BUILTINS_SET (0)
diff --git a/py/modbuiltins.c b/py/modbuiltins.c
index d0c6130d5f..d9b9b496ef 100644
--- a/py/modbuiltins.c
+++ b/py/modbuiltins.c
@@ -563,7 +563,9 @@ STATIC const mp_map_elem_t mp_module_builtins_globals_table[] = {
#if MICROPY_PY_BUILTINS_ENUMERATE
{ MP_OBJ_NEW_QSTR(MP_QSTR_enumerate), (mp_obj_t)&mp_type_enumerate },
#endif
+ #if MICROPY_PY_BUILTINS_FILTER
{ MP_OBJ_NEW_QSTR(MP_QSTR_filter), (mp_obj_t)&mp_type_filter },
+ #endif
#if MICROPY_PY_BUILTINS_FLOAT
{ MP_OBJ_NEW_QSTR(MP_QSTR_float), (mp_obj_t)&mp_type_float },
#endif
diff --git a/py/mpconfig.h b/py/mpconfig.h
index bfa7a1f68d..ce6fa6ceae 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -500,6 +500,11 @@ typedef double mp_float_t;
#define MICROPY_PY_BUILTINS_EXECFILE (0)
#endif
+// Whether to support filter function(type)
+#ifndef MICROPY_PY_BUILTINS_FILTER
+#define MICROPY_PY_BUILTINS_FILTER (1)
+#endif
+
// Whether to support reversed function(type)
#ifndef MICROPY_PY_BUILTINS_REVERSED
#define MICROPY_PY_BUILTINS_REVERSED (1)
diff --git a/py/objfilter.c b/py/objfilter.c
index a97c9f554c..9ed37f5986 100644
--- a/py/objfilter.c
+++ b/py/objfilter.c
@@ -26,6 +26,8 @@
#include "py/runtime.h"
+#if MICROPY_PY_BUILTINS_FILTER
+
typedef struct _mp_obj_filter_t {
mp_obj_base_t base;
mp_obj_t fun;
@@ -66,3 +68,5 @@ const mp_obj_type_t mp_type_filter = {
.getiter = mp_identity,
.iternext = filter_iternext,
};
+
+#endif // MICROPY_PY_BUILTINS_FILTER
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index ea107f5f47..b95067bbf1 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -205,7 +205,9 @@ Q(exec)
#if MICROPY_PY_BUILTINS_EXECFILE
Q(execfile)
#endif
+#if MICROPY_PY_BUILTINS_FILTER
Q(filter)
+#endif
#if MICROPY_PY_BUILTINS_FLOAT
Q(float)
#endif
diff --git a/unix/mpconfigport_minimal.h b/unix/mpconfigport_minimal.h
index 770188a608..d7b908bc9a 100644
--- a/unix/mpconfigport_minimal.h
+++ b/unix/mpconfigport_minimal.h
@@ -50,6 +50,7 @@
#define MICROPY_PY_BUILTINS_MEMORYVIEW (0)
#define MICROPY_PY_BUILTINS_COMPILE (0)
#define MICROPY_PY_BUILTINS_ENUMERATE (0)
+#define MICROPY_PY_BUILTINS_FILTER (0)
#define MICROPY_PY_BUILTINS_FROZENSET (0)
#define MICROPY_PY_BUILTINS_REVERSED (0)
#define MICROPY_PY_BUILTINS_SET (0)