400 Bytes gespart: Wie wir Lua-Strings für ComputerCraft optimiert haben

Optimizing Lua string literals to save 400 bytes

In einem Gastbeitrag erklärt Yuki, wie sie und ihr Partner ihre Lua-Programme für CC: Tweaked komprimieren, um sie auf Disketten mit nur 125 KB Speicherplatz zu bringen. Nachdem sie bereits bzip2 angepasst haben, geht es nun um die Optimierung von String-Literalen. Das Problem: Rohstrings ([[...]]) können keine Zeilenumbrüche oder Sonderzeichen wie CR enthalten, und die Ersetzung durch gsub kostet Platz. Yuki zeigt einen cleveren Trick, um CRs mit einer Bitmaske außerhalb des Strings zu kodieren, wodurch der Overhead fast halbiert wird. Der Beitrag enthält konkrete Codebeispiele und einen Bonus-Abschnitt aus Rust-Perspektive.

Cobalt faltet Zeilenumbruch-Sequenzen (CRLF, LFCR, einzelnes CR, einzelnes LF) zu einem einzelnen LF in Rohstrings zusammen, was wie das Ausführen von dos2unix auf Ihrer PNG-Datei ist und erwarten, dass sie danach nicht beschädigt wird.

Mehr von diesem Tag

2026-07-16