Обновления в компиляторе Nimony: самокомпиляция и поддержка JavaScript

Андреас Румпф, автор языка Nim, поделился восьмым отчетом о разработке компилятора Nimony, который станет основой для Nim 3.0

Обновления в компиляторе Nimony: самокомпиляция и поддержка JavaScript

Одним из ключевых достижений является реализация самокомпиляции: теперь весь стек инструментов, включая фронтенд, middle-end и бэкенд, может собираться самим Nimony. Также добавлен JavaScript-бэкенд, который можно активировать с помощью подкоманды j (nimony j file.nim). Это расширение позволяет разработчикам использовать Nimony для создания веб-приложений.

Кроме того, архитектура компилятора была перестроена вокруг нового промежуточного представления NJ (No Jumps), что исключает операции break, continue и goto. Это нововведение обеспечит более эффективную генерацию кода для различных платформ, включая C/C++, JavaScript и нативные бэкенды x86-64 и ARM64. Важным моментом является также добавление поддержки FreeBSD, что расширяет возможности использования Nimony на различных операционных системах.

В области управления памятью теперь доступны четыре режима: ARC, atomicArc, ORC и YRC, с возможностью подключения собственных реализаций. Это дает разработчикам больше гибкости в управлении памятью, что особенно важно для производительных приложений. Также реализованы новые языковые возможности, такие как суммарные типы и сопоставление с образцом, что улучшает поддержку функциональных парадигм программирования.