Este artículo describe las técnicas de compresión de código Lua empleadas en un proyecto de software para CC: Tweaked, una extensión de Minecraft que permite programar dentro del juego. Los autores explican cómo adaptaron bzip2 para reducir el tamaño de sus programas, ya que la suma de todo el código y la documentación ronda los 440 KB, muy por encima de los 125 KB que caben en un disquete virtual y cercanos al límite de 1 MB por ordenador.
El reto principal consiste en fusionar datos y descompresor en un único archivo Lua autoextraíble, instalable con un solo wget. Para ello serializan los datos como literales de Lua. Mientras que serializar nil, booleanos, números y listas resulta trivial, las tablas y, sobre todo, las cadenas presentan complicaciones. Lua admite tres formas de escribir cadenas literales: comillas simples, comillas dobles y cadenas «raw» delimitadas por corchetes largos con niveles opcionales de signo igual.
El artículo desgrana los problemas específicos del entorno Cobalt, el runtime de Lua usado en CC: Tweaked. Cobalt normaliza los saltos de línea en cadenas raw, colapsando secuencias CRLF, LFCR, CR y LF en un único LF, lo que provoca corrupción en datos binarios como imágenes PNG. Además, si la cadena raw comienza con un salto de línea, ese primer carácter se descarta silenciosamente. Estos comportamientos obligan a recurrir a un carácter de escape y al uso de gsub.
Los autores detallan dos estrategias para codificar los retornos de carro y el carácter de escape: una sustitución directa que infla el tamaño alrededor de un 1 %, y un esquema basado en gsub con una función que lee un mapa de bits fuera de banda, reduciendo el coste de 16 a unos 9 bits por marca. Esta segunda técnica es la que permite ahorrar los aproximadamente 400 bytes que da título al artículo.
