Выложил очередной релиз Яра, «разочаровывающий». Дело идёт к заморозке проекта, работаю над ним до 1 февраля, а потом хлеб насущный буду зарабатывать. Найти спонсора за два года не удалось. Видимо, дело в недостаточной вере в успех, т.е. в отсутствии ощущения зрелости проекта, при которой можно называть сроки и нести за них ответственность.
Из последних конвульсий: теперь clcon поддерживает также CCL, а не только SBCL. Ну и Яр, соответственно, собирается и запускается под CCL под Linux и Windows. Зато я что-то сломал и образ SBCL под линуксом не сохраняется. С точностью до системы знаю. Впрочем, не суть важно.
Правы были те, кто говорил, что не нужно пытаться менять CL. Он хорошо защищён от изменений частоколом из грабель: если делаешь не совсем общепринятые вещи даже в рамках стандарта, например, свою readtable, проблем огребёшь по полной, и я их огрёб, и на них был истрачен ценный трудовой ресурс. А без всяких улучшений он слишком скучен для меня.
Если вдруг кому интересно, за последние месяцы немного поразбирался в SBCL, и пришёл к тому выводу, что можно наляпать много нового и интересного, но поскольку там всё внутри черт-те в каком состоянии, причём хронически, то по сути дела работать ничего не будет. Красивую показуху сделать можно. Я сделал черновик иммутабельных хеш-таблиц и струтур с рассуждениями о типах в них, а также сильно улучшил пошаговую отладку. После этого я пообщался с одним из разработчиков и, оказывается, они тоже мечтают про отладчик а-ля Visual Basic, но сделать его быстро не могут, т.к. примитивы, на которых он должен быть построен, низкокачественные. Сейчас, судя по коммитам, они их начали исправлять. Дай Бог, чтобы у них получилось. Однако я не вижу причины, по которой не может существовать инструментирующий отладчик для CL. Более того, он уже существует и называется lispdebug-0.92 - жаль, что лицензия подкачала.
Также отчасти разобрался в работе вывода типов. Там есть два механизма - собственно type inference и constraint propagation. Если о первом я имею кое-какое представление, то второй - вообще тёмный лес. Потому и захотел отладчик, чтобы лазить туда не с голыми руками, а вооружившись удобным инструментом. Но - не склалось у меня с SBCL.
В итоге теперь у Яра нет отладчика и не на что опереться в плане вывода типов. Может быть, попробую сделать «Яр на базе Typescript», хотя при отсутствии материальных ресурсов думается на эту тему тяжело - ясно, что создать серьёзный ЯП с инфраструктурой - это достаточно трудоёмко. Более трудоёмко, чем казалось сначала по факту написание за две недели транслятора с 1С 7.7 в CL.
Тем не менее, задел есть, можно продолжать потихоньку в хоббийном режиме. Правда, нафиг оно нужно, не совсем ясно, когда рядом ходят монстры типа JetBrains со своими Kotlin-ами.
Просто по темпам развития понятно, что они меня съедят в любом случае. Ну и честно говоря, я ожидал, что меня будут смешивать с говном на форумах за идею русскоязычного языка программирования. Но то, что к этой идее окажутся холодны Росатом, ФПИ, Касперский, 1С и фонд «Русский Мир» - к этому я был морально несколько не готов. Такое чувство, что никто не догоняет, что за вытеснением из обихода «неэффективного» русского языка может произойти и вытеснение с территории и самого населения, говорящего на «неэффективном» языке. Вроде как и Казахстан уже на латиницу переходит, и на Украине черт-те что. Нет, Россия спит. Впрочем, в одном месте мне указали на соседний вход и сказали, что нужно обязательно писать заявку на грант, но почему-то моральных сил пока нет. Может быть, через некоторое время появятся.
Попробую за оставшиеся 10 дней сделать для CCL инструментирующий пошаговый отладчик - тредов не будет, уж извините.