01:03 am - новости из-за забора мой компилятор оберона научился в инлайнинг. хак, но работает. заодно погонялся с XDS (оптимизирующий компилятор от Excelsior, куча народу делала). мой, сляпаный на коленке за три месяца, медленней XDS примерно в 1.7 раз (любимый всеми тест LINPACK — линейные вычисления). в смысле — сгенерированый код получается медленней, скорость компиляции замерять нет смысла, она у обоих какие-то десятки миллисекунд.
на самом деле мой надо переделать, он станет проще, компилировать будет быстрее, и сгенерёный код тоже станет шустрей. просто мой родился из тестов кодогена, и изначально я не планировал его выращивать до полноценной системы. поэтому там лапша. у меня, к сожалению, сейчас нет сил его переписать нормально, но планы есть. тащемта, на то, чтобы не особо напрягаясь достигнуть уровня XDS (а то и превзойти) — надо месяцев пять-шесть. в одно моё рыло, натурально. с учётом того, что у меня оверхэд на вызовы процедур выше: во-первых, из-за precise GC, во-вторых, из-за автоматического зануления всех локалов, в третьих — потому что у меня в коде ещё и проверки индексов массивов и переполнения целых сидят, я их не отключал (в XDS на этом бенчмарке отключены).
компилятор у меня вполне боевой, я его активно использую для написания всего: от простейших утилит до видеоигорев. как полагается — есть полная Meta, и динамическая загрузка модулей с компиляцией на лету из исходников. около 600 кб исходнокого кода компилирует чуть меньше чем за двести миллисекунд, на старой коре2дуба, в один поток. так что я даже не делал сохранение скомпиленого кода на диск: какой смысл?
01:47 pm - новости из зазеркального мира я потихоньку переделываю компилятор оберона. начальная цель — не-совсем-SSA, который сейчас. конечная цель — Sea of Nodes. идеальная цель — выкинуть всё лишнее, использовать как промежуточное представление только и исключительно Sea of Nodes. потому что на самом деле больше ничего и не надо, фаза с AST не нужна.
07:53 am - теперь у меня тоже есть! поскольку мне надо тестировать мою новонаписаную Схему на чём-то, то запилил клон Boulder Dash. как можно тупее, чтобы генерировал как можно больше мусора, и GC сильно напрягался. по дороге немного увлёкся, сделал почти все объекты из GDash (больше полутора сотен, только несколько осталось нереализованых), парзер BDCFF, звуконий, скроллоний, и перекрашивание тайлов. получилась вполне себе играбельная штука. и, кстати, спокойно держит 60 FPS, так что GC ускорять не надо.
. на котором нихера не понятно, что это мой клон, но это он. скроллинг на самом деле плавный, это на записи фпс херовый. и звуки есть. примерно 300 кб схемокода.
03:35 am - краткая сводка из секретных подвалов если чо — мы там запилили self-hosting форт на x86, компилирующий в оптимизированый машинный код. на нём оптимизирующий двухпроходный кросс-компилятор форта на Z80. ещё мы там сделали компилятор Оберона (тоже в натив, конечно), с житером — так что он может грузить обероновские модули прямо из исходников. щаз потихоньку пилим Scheme. по причине необходимости взлетания с чистым gcc — двигло схемы на сишечке. возможно, в будущем вм будет переписана на pre-scheme, и схема сама на себе. всё кроме схемы использовалось для написания реального софта. а схема пока что только началась, ей ещё и месяца от роду нет. но уже вполне работает, нет только call/cc (очень уж лениво их делать, хоть я и знаю как, чтобы не шибко тормозило).
12:37 pm - предупреждение если вы вдруг зачем-то ходили на мои фоссил-репы — больше не надо. потому что будете мгновенно забанены. пока что под санкциями только вавумчик, но скорее всего я весь сервер уведу в режим whitelisting. потому что дегенеративные уебанские «ai»-кравлеры заебали.
и да: если вы вдруг используете «аи» — можете поздравить себя с ачивкой: заблочено в том числе и благодаря вам. вы используете — они хуеют. вы поддерживаете — они хуеют. я надеюсь, вам понравится интернет, в котором всё будет по белым спискам, а открыто доступен только бред от бормоталок. это то будущее, которое вы приближаете.