crypt of decay - lisp engine [entries|archive|friends|userinfo]
ketmar

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

lisp engine [Jun. 18th, 2017|02:35 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
оно не такое простое, как может показаться. жёсткое self-imposed ограничение — весь движок должен быть доступен, всегда. то есть, лиспокод должен иметь возможность собирать себя по кускам не только даже из других списков, но и из текста, и из помеси этой фигни. и разбирать назад. и собирать снова. что нахуй ненужно, но очень забавно.

без этого ограничения я мог бы просто прекомпилировать всё в байткод и дальше особо не напрягаться. но так неинтересно.

хотя возможность прозрачной компиляции в байткод я ещё не полностью откинул: возможно, так оно и будет потом. хоть и жаль красивый вычислитель выкидывать (хотя это, по-сути, jit-байткод такой, гыг).

также запись/загрузка состояния VM должна быть не сложнее, чем: «ебанули на диск пул ячеек и несколько других массивов тупо блоком, потом тупо так же блоком загрузили», плюс небольшой фиксинг номеров примитивов. то есть, никаких нигде указателей. в идеале даже рабочее состояние машины должно жить в пуле (пока нет, но будет, наверное).

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

и бесплатные слайсы массивов: это важно. то есть, совсем бесплатные, они не используют пул ячеек вообще.

нет, это всё низачем не надо. просто дрочерство, как и любое искусство.
Linkmeow!