micropython/tools
Jim Mussared 7ea503929a py/qstr: Add support for MICROPY_QSTR_BYTES_IN_HASH=0.
This disables using qstr hashes altogether, which saves RAM and flash
(two bytes per interned string on a typical build) as well as code size.
On PYBV11 this is worth over 3k flash.

qstr comparison will now be done just by length then data. This affects
qstr_find_strn although this has a negligible performance impact as, for a
given comparison, the length and first character will ~usually be
different anyway.

String hashing (e.g. builtin `hash()` and map.c) now need to compute the
hash dynamically, and for the map case this does come at a performance
cost.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2024-01-25 16:38:17 +11:00
..
autobuild all: Switch to new preview build versioning scheme. 2023-10-06 12:10:14 +11:00
mpremote tools/mpremote: Reduce dependency on importlib_metadata. 2024-01-17 11:27:47 +11:00
.gitattributes
.gitignore
boardgen.py stm32/boards/make-pins.py: Update to use tools/boardgen.py. 2023-11-03 14:16:49 +11:00
cc1
ci.sh tests: Move port-specific test directories into tests/ports/ directory. 2024-01-22 11:48:27 +11:00
codeformat.py all: Replace "black" with "ruff format". 2023-11-03 13:30:38 +11:00
codestats.sh
dfu.py
file2h.py
gen-changelog.sh tools/gen-changelog.sh: Exclude "-preview" tags from generated log. 2024-01-05 15:06:14 +11:00
gen-cpydiff.py docs: Add note about position-only arguments in CPython vs MicroPython. 2024-01-25 11:56:38 +11:00
hci_trace_to_pcap.py extmod/modbluetooth: Make all HCI transports trace in the same format. 2023-04-26 11:37:20 +10:00
insert-usb-ids.py all: Fix strings with backslash by using raw string literals. 2023-05-02 11:55:02 +10:00
makemanifest.py tools/makemanifest.py: Fix printing of mpy_cross.CrossCompileError. 2022-11-02 14:06:18 +11:00
manifestfile.py tools/manifestfile.py: Add support for external libraries. 2023-12-21 15:28:32 +11:00
metrics.py tools/metrics.py: Fix esp32 and esp8266 board names after renaming. 2023-10-04 15:44:25 +11:00
mpy-tool.py py/qstr: Add support for MICROPY_QSTR_BYTES_IN_HASH=0. 2024-01-25 16:38:17 +11:00
mpy_bin2res.py
mpy_cross_all.py
mpy_ld.py py/persistentcode: Bump .mpy sub-version. 2023-10-16 11:25:31 +11:00
pyboard.py all: Update Python formatting to ruff-format. 2023-11-03 13:30:41 +11:00
pydfu.py all: Fix various spelling mistakes found by codespell 2.2.6. 2023-10-03 11:24:50 +11:00
tinytest-codegen.py tools/tinytest-codegen.py: Externalise tests list. 2023-11-07 15:53:27 +11:00
uf2conv.py all: Fix strings with backslash by using raw string literals. 2023-05-02 11:55:02 +10:00
uf2families.json
uncrustify.cfg all: Fix spelling mistakes based on codespell check. 2023-04-27 18:03:06 +10:00
verifygitlog.py CODECONVENTIONS: Require that commits be signed-off by the author. 2023-05-08 12:20:56 +10:00