Tolk v1.5: break/continue в циклах 💻
Вышла версия Tolk v1.5, в которой снят ряд небольших ограничений языка. Главное — поддержка break и continue во всех циклах, включая вложенные, с корректным отслеживанием control-flow и раскладки стека. Continue реализован через тот же алгоритм, что и инлайнинг функций с ранними и множественными возвратами: такие
@inline-функции теперь инлайнятся, а функции с несколькими возвратами поддерживаются. Также добавлены type aliases как направленные подтипы, переработана концепция purity и удаление мёртвого кода, а ошибки компиляции указывают сразу несколько мест, содержат пояснения и подсветку. Баг-хантеры прислали более 200 тикетов, которые оказались не-проблемами. Подробности — в PR on GitHub.
Большая часть изменений — внутренняя работа, не влияющая на то, как Tolk используется сегодня. Она готовит ядро к Tolk v2.0: новый бэкенд полностью заменит старый FunC-кернел и устранит необходимость в Fift, а также появятся новый ассемблер и прямая генерация байткода. Работа над этим начинается сейчас.
Подписаться | Чат | Источник