Андреас Румпф (Andreas Rumpf, Araq), автор языка программирования Nim, опубликовал серию отчётов о прогрессе разработки компилятора Nimony, создаваемого как основа для будущего релиза Nim 3.0. На данный момент уже доступен восьмой отчёт. Ключевое достижение последнего времени - переход к самокомпиляции: весь стек инструментов, включая фронтенд, прослойку (middle-end), оптимизатор и бэкенд, теперь может быть собран самим Nimony. Дополнительно реализованы JavaScript-бэкенд, поддержка всех четырёх актуальных режимов управления памятью и работа на платформе FreeBSD. Код проекта написан на Nim и распространяется под лицензией MIT.
Андреас Румпф (Andreas Rumpf, Araq), автор языка программирования Nim, опубликовал серию отчётов о прогрессе разработки компилятора Nimony, создаваемого как основа для будущего релиза Nim 3.0. На данный момент уже доступен восьмой отчёт. Ключевое достижение последнего времени - переход к самокомпиляции: весь стек инструментов, включая фронтенд, прослойку (middle-end), оптимизатор и бэкенд, теперь может быть собран самим Nimony. Дополнительно реализованы JavaScript-бэкенд, поддержка всех четырёх актуальных режимов управления памятью и работа на платформе FreeBSD. Код проекта написан на Nim и распространяется под лицензией MIT.
Nimony - новая реализация языка Nim, практически не использующая кодовую базу существующего компилятора: с нуля написаны семантический анализ, обобщённые процедуры, разворачивание шаблонов, управление памятью и генерация кода. Цели проекта - инкрементальная перекомпиляция, полностью параллельные сборки, отказ от обязательных предварительных объявлений процедур и типов, типобезопасные дженерики и единая модель конкурентности на основе продолжений (continuations). Этапы компиляции обмениваются данными через текстовый формат NIF, а вместо исполнения макросов в виртуальной машине применяются плагины, компилируемые в нативные исполняемые файлы.
Основные изменения за прошедшие месяцы:
import std / [parfor, syncio]
proc pfib(n: int): int =
if n { 2:
return n
var r = [0, 0]
for i in 0 || 1: # итерации выполняются параллельно
r[i] = pfib(n - 1 - i)
result = r[0] + r[1]
При тестировании потребления памяти на системе с чипом Apple M1 самый требовательный к памяти процесс фронтенда занимает 45 МиБ, бэкенда - 111 МиБ, а суммарное потребление при восьми одновременно работающих процессах достигает 171 МиБ. Сборка тех же компонентов компилятором Nim 2 требует примерно в пять раз больше памяти, что в значительной мере обусловлено применением clang.
Целью на текущий год в README проекта названа готовность компилятора к промышленному использованию для проектов, укладывающихся в задокументированный набор возможностей. В начале года темп разработки снизился из-за параллельной работы над системой инкрементальной компиляции в Nim 2. Модуль httpclient с собственной реализацией TLS создан для отработки применения Nim в роли встроенного ассемблера.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Открыт код компилятора для языка программирования Mojo | 0 | 8.47 | 18-08-2026 |
| 2 | Проект nginx опубликовал JavaScript-модуль njs 1.0.0 | 0 | 7 | 24-06-2026 |
| 3 | Открыт код интегрированной среды разработки Rune | 0 | 8.92 | 15-09-2026 |
| 4 | Релиз набора компиляторов LLVM 23 | 0 | 13.61 | 27-08-2026 |
| 5 | Выпуск музыкального проигрывателя Rhythmbox 3.5 | 0 | 14.26 | 04-08-2026 |
| 6 | Выпуск оптимизатора энергопотребления и производительности auto-cpufreq 3.1 | 0 | 10.34 | 29-07-2026 |
| 7 | Релиз серверной JavaScript-платформы Bun 1.4, переписанной с Zig на Rust | 0 | 13.1 | 21-08-2026 |
| 8 | Выпуск дистрибутива openKylin 3.0, развиваемого крупнейшими китайскими компаниями | 0 | 19.98 | 29-08-2026 |
| 9 | Выпуск среды рабочего стола COSMIC 1.3.0 | 0 | 7 | 15-07-2026 |