В процессе разработки версии 3.0 языка программирования Nim ведётся работа над обновлённым компилятором, использующим промежуточный формат NIF (Nim Intermediate Format). В новом компиляторе будет решено несколько технических задач, среди которых улучшение инкрементальной компиляции и упрощение управления зависимостями между модулями. Дата релиза Nim 3.0 пока не определена. Согласно спецификации NIF, опубликованной в репозитории проекта, новый формат позволяет хранить код в виде абстрактного синтаксического дерева (AST), разделяя пространства имён для встроенных конструкций и пользовательских имён. Это обеспечивает гибкость при добавлении новых ключевых слов и упрощает интеграцию с инструментами разработки. Компилятор Nim 3.0 будет разделён на несколько этапов:
Источник: https://www.opennet.ru/opennews/art.shtml?num=63031
Source: https://www.opennet.ru/opennews/art.shtml?num=63031
- Nifler - преобразование исходного кода Nim в NIF с учётом конфигурационных файлов. Nimony - семантический анализ, включая проверку типов и разрешение макросов. Hexer - оптимизация кода, включая инлайнинг итераторов и поддержку управления памятью (ARC/ORC). NIFC - генерация кода для C/C++ с учётом особенностей целевой платформы.
- Инкрементальную сборку, ускоряющую компиляцию при частичных изменениях кода. Отказ от необходимости предварительного объявления процедур и типов. Поддержку циклических зависимостей между модулями. Проверку типов для дженериков на этапе компиляции. Исправление ошибок фаз компиляции, таких как некорректный вызов деструкторов.
Источник: https://www.opennet.ru/opennews/art.shtml?num=63031
Source: https://www.opennet.ru/opennews/art.shtml?num=63031