circuitpython/py
Scott Shawcroft de5a9d72dc
Compress all translated strings with Huffman coding.
This saves code space in builds which use link-time optimization.
The optimization drops the untranslated strings and replaces them
with a compressed_string_t struct. It can then be decompressed to
a c string.

Builds without LTO work as well but include both untranslated
strings and compressed strings.

This work could be expanded to include QSTRs and loaded strings if
a compress method is added to C. Its tracked in #531.
2018-08-16 17:40:57 -07:00
..
argcheck.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
asmarm.c py/asm*.c: Remove unnecessary check for num_locals<0 in asm entry func. 2018-02-24 23:10:20 +11:00
asmarm.h continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
asmbase.c py/asmbase: Revert removal of clearing of label offsets for native emit. 2017-12-08 19:07:00 +11:00
asmbase.h py/asm: Remove need for dummy_data when doing initial assembler passes. 2016-12-09 22:50:58 +11:00
asmthumb.c py/asm*.c: Remove unnecessary check for num_locals<0 in asm entry func. 2018-02-24 23:10:20 +11:00
asmthumb.h continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
asmx64.c py/asm*.c: Remove unnecessary check for num_locals<0 in asm entry func. 2018-02-24 23:10:20 +11:00
asmx64.h continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
asmx86.c py/asm*.c: Remove unnecessary check for num_locals<0 in asm entry func. 2018-02-24 23:10:20 +11:00
asmx86.h WIP: complete manual inspection of all significant changes 2018-07-23 21:34:25 -04:00
asmxtensa.c py/asm: Remove need for dummy_data when doing initial assembler passes. 2016-12-09 22:50:58 +11:00
asmxtensa.h continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
bc0.h py: Clean up unary and binary enum list to keep groups together. 2017-10-05 10:49:44 +11:00
bc.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
bc.h all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
binary.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
binary.h py/binary: Change internal bytearray typecode from 0 to 1. 2017-08-17 16:19:35 +10:00
builtin.h py/builtinhelp: Change signature of help text var from pointer to array. 2017-09-12 16:03:52 +10:00
builtinevex.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
builtinhelp.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
builtinimport.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
compile.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
compile.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
emit.h py/emit: Combine setup with/except/finally into one emit function. 2018-05-23 00:35:16 +10:00
emitbc.c py/emit: Combine setup with/except/finally into one emit function. 2018-05-23 00:35:16 +10:00
emitcommon.c py/emit: Combine name and global into one func for load/store/delete. 2018-05-23 00:22:47 +10:00
emitglue.c py/emitglue: When assigning bytecode only pass bytecode len if needed. 2018-02-14 18:41:17 +11:00
emitglue.h py/emitglue: When assigning bytecode only pass bytecode len if needed. 2018-02-14 18:41:17 +11:00
emitinlinethumb.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
emitinlinextensa.c py/emitinline: Move common code for end of final pass to compiler. 2016-12-09 21:23:17 +11:00
emitnarm.c py: Refactor how native emitter code is compiled with a file per arch. 2018-04-10 15:06:47 +10:00
emitnative.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
emitnthumb.c py: Refactor how native emitter code is compiled with a file per arch. 2018-04-10 15:06:47 +10:00
emitnx64.c py: Refactor how native emitter code is compiled with a file per arch. 2018-04-10 15:06:47 +10:00
emitnx86.c py/emitnx86: Fix 32-bit x86 native emitter build by including header. 2018-05-04 20:39:16 +10:00
emitnxtensa.c py: Refactor how native emitter code is compiled with a file per arch. 2018-04-10 15:06:47 +10:00
formatfloat.c py/formatfloat: Fix case where floats could render with negative digits. 2018-03-01 17:00:02 +11:00
formatfloat.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
frozenmod.c merge finished 2018-07-28 13:29:47 -04:00
frozenmod.h Fix issue #207, esp8266 file operations problems (#222) 2017-09-01 16:12:26 -04:00
gc_long_lived.c Merge remote-tracking branch 'adafruit/3.x' into import_merge 2018-07-25 11:49:18 -07:00
gc_long_lived.h Introduce a long lived section of the heap. 2018-01-24 10:33:46 -08:00
gc.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
gc.h WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
grammar.h py/compile: Combine expr, xor_expr and and_expr into one function. 2018-06-22 17:00:29 +10:00
ioctl.h Initial merge of micropython v1.9.2 into circuitpython 2.0.0 (in development) master. 2017-08-25 22:17:07 -04:00
lexer.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
lexer.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
makeqstrdata.py Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
makeqstrdefs.py Update filter and handle nested quotes 2018-08-09 14:16:28 -07:00
makeversionhdr.py Support internationalisation. 2018-08-07 14:58:57 -07:00
malloc.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
map.c py/map: Don't include ordered-dict mutating code when not needed. 2017-12-19 13:37:15 +11:00
misc.h WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
mkenv.mk Rework escaping and fix ESP build. 2018-08-09 15:58:45 -07:00
mkrules.mk Rework escaping and fix ESP build. 2018-08-09 15:58:45 -07:00
modarray.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
modbuiltins.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
modcmath.c py: Change obsolete "///" comment formatting to normal comments. 2017-08-30 21:02:00 +10:00
modcollections.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
modgc.c py: Change obsolete "///" comment formatting to normal comments. 2017-08-30 21:02:00 +10:00
modio.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
modmath.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
modmicropython.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
modstruct.c Support internationalisation. 2018-08-07 14:58:57 -07:00
modsys.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
modthread.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
moduerrno.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
mpconfig.h compiles and runs; hangs on import storage;storage.VfsFat.<tab> 2018-07-13 22:51:10 -04:00
mperrno.h Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
mphal.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpprint.c py/mpprint: Fix "%x" vs "%X" regression introduced in previous commit. 2017-12-07 10:31:14 +02:00
mpprint.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpstate.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpstate.h compiles and runs; hangs on import storage;storage.VfsFat.<tab> 2018-07-13 22:51:10 -04:00
mpthread.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
mpz.c py/mpz: Avoid undefined behavior at integer overflow in mpz_hash. 2018-05-21 12:48:26 +10:00
mpz.h py/mpz: Simplify handling of borrow and quo adjustment in mpn_div. 2017-12-29 14:05:48 +11:00
nativeglue.c py/emit: Merge build set/slice into existing build emit function. 2018-05-23 00:23:36 +10:00
nlr.c continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
nlr.h continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
nlrsetjmp.c py/nlr: Factor out common NLR code to macro and generic funcs in nlr.c. 2017-12-28 16:46:30 +11:00
nlrthumb.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
nlrx64.c continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
nlrx86.c continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
nlrxtensa.c continued WIP: almost compiling 2018-07-12 14:13:51 -04:00
obj.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
obj.h Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
objarray.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objarray.h py/objarray: Replace 0x80 with new MP_OBJ_ARRAY_TYPECODE_FLAG_RW macro. 2018-06-18 13:40:53 +10:00
objattrtuple.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objbool.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objboundmeth.c py: Convert all uses of alloca() to use new scoped allocation API. 2017-12-11 13:49:09 +11:00
objcell.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objclosure.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objcomplex.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objdeque.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objdict.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objenumerate.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objexcept.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
objexcept.h py/objexcept: Make MP_DEFINE_EXCEPTION public so ports can define excs. 2018-03-17 00:31:40 +11:00
objfilter.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objfloat.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objfun.c py/objfun: Fix variable name in DECODE_CODESTATE_SIZE() macro. 2018-05-17 11:20:06 +10:00
objfun.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objgenerator.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objgenerator.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objgetitemiter.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objint_longlong.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objint_mpz.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objint.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objint.h py/modbuiltins: Implement abs() by dispatching to MP_UNARY_OP_ABS. 2017-09-18 00:06:43 +03:00
objlist.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objlist.h py/obj.h: Move declaration of mp_obj_list_init to objlist.h. 2018-03-13 14:03:15 +11:00
objmap.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objmodule.c compiles and runs; hangs on import storage;storage.VfsFat.<tab> 2018-07-13 22:51:10 -04:00
objmodule.h py/objmodule: Factor common code for calling __init__ on builtin module. 2018-02-20 17:56:58 +11:00
objnamedtuple.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objnamedtuple.h merge finished 2018-07-28 13:29:47 -04:00
objnone.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objobject.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objpolyiter.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objproperty.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objproperty.h Initial merge of micropython v1.9.2 into circuitpython 2.0.0 (in development) master. 2017-08-25 22:17:07 -04:00
objrange.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objreversed.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objset.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objsingleton.c all: Remove inclusion of internal py header files. 2017-10-04 12:37:50 +11:00
objslice.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objstr.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objstr.h py/objstr: Make mp_obj_new_str_of_type check for existing interned qstr. 2017-11-16 13:53:04 +11:00
objstringio.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objstringio.h py/objstringio: If created from immutable object, follow copy on write policy. 2017-06-09 17:33:01 +03:00
objstrunicode.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objtuple.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objtuple.h WIP: works with just keyboard but not complex report descriptor 2018-03-30 23:24:00 -04:00
objtype.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
objtype.h py/objtype: Don't expose mp_obj_instance_attr(). 2018-06-08 11:48:25 +10:00
objzip.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
opmethods.c py/runtime: Add MP_BINARY_OP_CONTAINS as reverse of MP_BINARY_OP_IN. 2017-11-24 14:48:23 +11:00
parse.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
parse.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
parsenum.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
parsenum.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
parsenumbase.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
parsenumbase.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
persistentcode.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
persistentcode.h py: Factor out persistent-code reader into separate files. 2016-11-16 18:13:50 +11:00
py.mk Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
pystack.c py/pystack: Use "pystack exhausted" as error msg for out of pystack mem. 2018-02-19 00:26:14 +11:00
pystack.h py: Introduce a Python stack for scoped allocation. 2017-12-11 13:49:09 +11:00
qstr.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
qstr.h Support internationalisation. 2018-08-07 14:58:57 -07:00
qstrdefs.h py/pystack: Use "pystack exhausted" as error msg for out of pystack mem. 2018-02-19 00:26:14 +11:00
reader.c py/reader: Allow MICROPY_VFS_POSIX to work with MICROPY_READER_POSIX. 2018-06-06 14:28:23 +10:00
reader.h py: Allow lexer to raise exceptions during construction. 2017-03-14 11:52:05 +11:00
reload.c move reload exception to reload.c 2018-05-14 17:41:17 -04:00
reload.h move reload exception to reload.c 2018-05-14 17:41:17 -04:00
repl.c py/repl: Fix handling of unmatched brackets and unfinished quotes. 2018-05-18 15:23:02 +10:00
repl.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
ringbuf.h Initial merge of micropython v1.9.2 into circuitpython 2.0.0 (in development) master. 2017-08-25 22:17:07 -04:00
runtime0.h WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
runtime_utils.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
runtime.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
runtime.h Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
scheduler.c py: Add micropython.schedule() function and associated runtime code. 2017-03-20 15:20:26 +11:00
scope.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
scope.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
sequence.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
showbc.c py: Clean up unary and binary enum list to keep groups together. 2017-10-05 10:49:44 +11:00
smallint.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
smallint.h py: Extend nan-boxing config to have 47-bit small integers. 2017-12-11 22:39:12 +11:00
stackctrl.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
stackctrl.h Initial merge of micropython v1.9.2 into circuitpython 2.0.0 (in development) master. 2017-08-25 22:17:07 -04:00
stream.c Two fixes and translate more strings. 2018-08-09 13:29:30 -07:00
stream.h py/stream: Introduce and use efficient mp_get_stream to access stream_p. 2018-06-18 12:35:56 +10:00
unicode.c py/unicode: Clean up utf8 funcs and provide non-utf8 inline versions. 2018-02-14 18:19:22 +11:00
unicode.h py/objstr: Add check for valid UTF-8 when making a str from bytes. 2017-09-06 16:43:09 +10:00
vm.c Compress all translated strings with Huffman coding. 2018-08-16 17:40:57 -07:00
vmentrytable.h py: Clean up unary and binary enum list to keep groups together. 2017-10-05 10:49:44 +11:00
vstr.c py/vstr: Raise a RuntimeError if fixed vstr buffer overflows. 2017-09-21 20:29:41 +10:00
warning.c py: Add config option to print warnings/errors to stderr. 2017-09-26 11:59:11 +10:00