всё к тому, что понадобился мне (не поверите, трезвый как стекло для дела) мелкий скриптовый язычок в софтину. «мелкий» — это кил на 30 бинарника чтобы, но одновременно нормальный. подумал, я, конечно, о Схеме, поискал в интернетах — ну или оооочень ёбнутые, или большие. в итоге за пару дней написал и успешно встроил.
но, как известно, творческая мысль шило в жопе — это ужасно. в итоге — можете смотреть на гиториусе, PicoScheme. практически полная R4RS (нет типа char — его целое заменяет пока; не уверен, может так и оставлю). для адских числодробилок не пойдёт, но сама по себе не такой уж дикий тормоз. порты i/o внутре есть, нет только примитивов для их создания — сами допилите. местами даже раскиданы комментарии, иногда верные. но вообще — читайте исходник, он маленький. доки от R4RS пойдут, надо только помнить, что макросы — a-la CommonLisp, char и fixnum — почти одно и то же, а #f — то же самое, что '() и что ().
также встроено моё любимое автоцитирование: список, начинающийся не с пары и не с символа, автоцитируется. векторы, заданые через #(…) — тоже автоцитированы (в отличие от стандартов).
размер бинаря с gcc -Os -s сейчас примерно 60 kb. на x64 не проверялось.
valgrind'ом прошёлся.
компилябельность на не-gcc не гарантирую, но старался gcc-фишки не использовать, где надо — оборачивать ifdef'ами.
в принципе, в наборе есть пример REPL, он же — пример расширения ядра. там лежат полезные вещи типа LOAD и утилитных функций.
ах, чуть не забыл: лицензия. WTFPL, конечно же.
зыж понятно, что это всё нахуй никому не надо, скорее всего, но вдруг да пригодится? если бы я нарыл в сетке подобное и под нормальной лицензией, то своё бы не ваял, например..