summaryrefslogtreecommitdiff
path: root/py/mpconfig.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-01-11 22:27:30 +0000
committerDamien George <damien.p.george@gmail.com>2015-01-11 22:27:30 +0000
commit95836f8439b9f1ca0b6ff20f56a03253aa9ba836 (patch)
treec9fa6b9d1c2aab8d9db9cf1884176a7b4b67c3d5 /py/mpconfig.h
parent6942f80a8feb521ff4dc2b457fa5cb3d039bee54 (diff)
py: Add MICROPY_QSTR_BYTES_IN_LEN config option, defaulting to 1.
This new config option sets how many fixed-number-of-bytes to use to store the length of each qstr. Previously this was hard coded to 2, but, as per issue #1056, this is considered overkill since no-one needs identifiers longer than 255 bytes. With this patch the number of bytes for the length is configurable, and defaults to 1 byte. The configuration option filters through to the makeqstrdata.py script. Code size savings going from 2 to 1 byte: - unix x64 down by 592 bytes - stmhal down by 1148 bytes - bare-arm down by 284 bytes Also has RAM savings, and will be slightly more efficient in execution.
Diffstat (limited to 'py/mpconfig.h')
-rw-r--r--py/mpconfig.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/py/mpconfig.h b/py/mpconfig.h
index dcc116daf..541f7c75a 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -112,6 +112,13 @@
#define MICROPY_MODULE_DICT_SIZE (1)
#endif
+// Number of bytes used to store qstr length
+// Dictates hard limit on maximum Python identifier length, but 1 byte
+// (limit of 255 bytes in an identifier) should be enough for everyone
+#ifndef MICROPY_QSTR_BYTES_IN_LEN
+#define MICROPY_QSTR_BYTES_IN_LEN (1)
+#endif
+
/*****************************************************************************/
/* Micro Python emitters */