summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--minimal/Makefile5
-rw-r--r--minimal/frozentest.mpybin0 -> 255 bytes
-rw-r--r--minimal/frozentest.py7
-rw-r--r--minimal/mpconfigport.h3
4 files changed, 14 insertions, 1 deletions
diff --git a/minimal/Makefile b/minimal/Makefile
index 3206a21214..457d63e31e 100644
--- a/minimal/Makefile
+++ b/minimal/Makefile
@@ -50,6 +50,7 @@ SRC_C = \
lib/utils/pyexec.c \
lib/libc/string0.c \
lib/mp-readline/readline.c \
+ $(BUILD)/_frozen_mpy.c \
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
@@ -59,6 +60,10 @@ else
all: $(BUILD)/firmware.elf
endif
+$(BUILD)/_frozen_mpy.c: frozentest.mpy
+ $(ECHO) "MISC freezing bytecode"
+ $(Q)../tools/mpy-tool.py -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=none $^ > $@
+
$(BUILD)/firmware.elf: $(OBJ)
$(ECHO) "LINK $@"
$(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
diff --git a/minimal/frozentest.mpy b/minimal/frozentest.mpy
new file mode 100644
index 0000000000..c8345b1910
--- /dev/null
+++ b/minimal/frozentest.mpy
Binary files differ
diff --git a/minimal/frozentest.py b/minimal/frozentest.py
new file mode 100644
index 0000000000..0f99b74297
--- /dev/null
+++ b/minimal/frozentest.py
@@ -0,0 +1,7 @@
+print('uPy')
+print('a long string that is not interned')
+print('a string that has unicode αβγ chars')
+print(b'bytes 1234\x01')
+print(123456789)
+for i in range(4):
+ print(i)
diff --git a/minimal/mpconfigport.h b/minimal/mpconfigport.h
index 95e216b129..c8f9838650 100644
--- a/minimal/mpconfigport.h
+++ b/minimal/mpconfigport.h
@@ -3,6 +3,7 @@
// options to control how Micro Python is built
#define MICROPY_QSTR_BYTES_IN_HASH (1)
+#define MICROPY_QSTR_EXTRA_POOL mp_qstr_frozen_const_pool
#define MICROPY_ALLOC_PATH_MAX (256)
#define MICROPY_ALLOC_PARSE_CHUNK_INIT (16)
#define MICROPY_EMIT_X64 (0)
@@ -43,7 +44,7 @@
#define MICROPY_PY_IO (0)
#define MICROPY_PY_STRUCT (0)
#define MICROPY_PY_SYS (0)
-#define MICROPY_MODULE_FROZEN (0)
+#define MICROPY_MODULE_FROZEN_MPY (1)
#define MICROPY_CPYTHON_COMPAT (0)
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE)
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE)