Kurumi (2026-02-01)

Message encoder using compiler warnings

Synopsis:

   ./kurumi "some message\n" "another message\n" > output.c
   gcc output.c -o decode

   gcc output.c -o /dev/null 2>&1 | ./decode
   clang output.c -o /dev/null 2>&1 | ./decode

   ruby output.c | ./decode
   perl output.c | ./decode

Kurumi generates C code that encodes messages via compiler warnings.
OUtput code is the decoder.  To recover the original messages, feed
the compiler warnings from GCC or Clang back to the output program to
decode.  Note that you can encode up to two distinct messages because
compiler warnings for GCC and Clang are subtly different (note that
GCC 10.5 shares the same behavior as Clang, but GCC 11.1 and later
behaves differently).

For compatibility, and for people who are missing either GCC or Clang,
Running the output code with Ruby or Perl will generate text that
sufficiently resembles GCC or Clang warning messages, and feeding that
output through the output decoder will allow the original messages to
be recovered.

Layout is based on Kurumi from "Lycoris Recoil".

Kurumi won the "INABIAF award" in IOCCC 2025.

--
omoikane@uguu.org - https://uguu.org/
