crypt of decay - ах, да, к чему я опять про схему [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

ах, да, к чему я опять про схему [May. 8th, 2010|05:10 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]

всё к тому, что понадобился мне (не поверите, трезвый как стекло для дела) мелкий скриптовый язычок в софтину. «мелкий» — это кил на 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, конечно же.

зыж понятно, что это всё нахуй никому не надо, скорее всего, но вдруг да пригодится? если бы я нарыл в сетке подобное и под нормальной лицензией, то своё бы не ваял, например..
Linkmeow!