tgoop.com/logofalprog/222
Last Update:
И снова кудах-кудах.
Мой пет CrunchHouse, анонсированный в сентябре, ожидаемо встал на паузу. Но не потому, что я потерял интерес или идея сдохла. Нифига. Это по-прежнему мой основной долгострой, которым я собираюсь упарываться ещё многие годы. А потому что если уж упарываться, то делать это основательно. Как и было предсказано, руки зачесались делать его не на чём попало, а непременно на своём скриптовом языке. Так что по вечерам моя девушка всё чаще слышит от меня фразу, что мне надо немного «покуковать», то есть позаниматься ku-ku.
Напоминаю, что концепция ku-ku сформулирована как «typed lua meets intelligent json». Простой язык, как lua, заточенный под лёгкий модинг, но с типами и с 1st-class citizen сериализатором. Причём таким, что сериализует сразу в байткод виртуальной машины. А десериализация, соответственно, тупо сводится к исполнению этого кода. Такой подход позволит в теории писать всякие конфиги и префабы на сабсете языка, и всё это будет подсвечиваться, автокомплититься и рефакториться в IDE ровно так же, как и сам код (для этих целей у меня с самого начала разработки используется Language Server Protocol). Ну и сейвы со сценами заодно тем же механизмом будут сериализоваться.
За последнее время всё-таки сдвинулся с мёртвой точки и у меня наконец-то компилится код функций. Пока простые вещи с интами, локальными переменными, ифами и циклами. Ещё переделал инструкции со стековых на регистровые с простейшими оптимизациями. Плюс сделал их фиксированного размера (хотя, возможно, это зря; и я ещё рассмотрю откат обратно к плавающей длине инструкции).
На повестке дня сейчас вызов функций. Затем Debug Adapter Protocol, чтобы можно было подебажить выполнение скрипта в VS Code (ну или Emacs и Neovim). Это всё проблем вызывать не должно. Но затем надо будет вернуться к семантическому анализу и линковке. Это пока наиболее проблемная часть для меня. Так что смотрю в будущее с немного обосранными от ужаса глаза, но всё-таки делаю потихоньку.
BY Log of Alprog
Share with your friend now:
tgoop.com/logofalprog/222