Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

В компиляторе Nimony для будущего Nim 3.0 реализованы самокомпиляция и JavaScript-бэкенд

17.10.2026 09:56 (MSK)

Андреас Румпф (Andreas Rumpf, Araq), автор языка программирования Nim, опубликовал серию отчётов о прогрессе разработки компилятора Nimony, создаваемого как основа для будущего релиза Nim 3.0. На данный момент уже доступен восьмой отчёт. Ключевое достижение последнего времени - переход к самокомпиляции: весь стек инструментов, включая фронтенд, прослойку (middle-end), оптимизатор и бэкенд, теперь может быть собран самим Nimony. Дополнительно реализованы JavaScript-бэкенд, поддержка всех четырёх актуальных режимов управления памятью и работа на платформе FreeBSD. Код проекта написан на Nim и распространяется под лицензией MIT.

Nimony - новая реализация языка Nim, практически не использующая кодовую базу существующего компилятора: с нуля написаны семантический анализ, обобщённые процедуры, разворачивание шаблонов, управление памятью и генерация кода. Цели проекта - инкрементальная перекомпиляция, полностью параллельные сборки, отказ от обязательных предварительных объявлений процедур и типов, типобезопасные дженерики и единая модель конкурентности на основе продолжений (continuations). Этапы компиляции обмениваются данными через текстовый формат NIF, а вместо исполнения макросов в виртуальной машине применяются плагины, компилируемые в нативные исполняемые файлы.

Основные изменения за прошедшие месяцы:

  • Самокомпиляция и бэкенды
    • Бэкенд nativenif портирован и собирается при помощи Nimony. Вся цепочка инструментов, от фронтенда до генератора нативного кода, компилируется самим Nimony.
    • Архитектура перестроена вокруг промежуточного представления NJ ("No Jumps"), не содержащего операции break, continue и goto. NJ развивается для использования во фронтендах Nimony и Nim 2.x (текущей версии) и обеспечивает генерацию кода для C/C++, JavaScript и нативных бэкендов x86-64 и ARM64.
    • Добавлен JavaScript-бэкенд, включаемый подкомандой j (nimony j file.nim).
    • NIFC переименован в Leng для устранения постоянной путаницы между NIF и NIFC.
    • Обеспечена сборка DLL, позволяющая разрабатывать части программ на Nimony и подключать их к проектам на Nim 2.x,
    • Добавлена поддержка FreeBSD.
  • Управление памятью
    • В дополнение к имевшимся режимам управления памятью ARC и atomicArc портированы ORC и YRC. Доступна возможность подключения собственных реализаций через переключатель mm:<путь>.
    • По умолчанию задействованы типы ref и ptr, не допускающие значения nil. Для совместимости со старым кодом предназначена прагма {.feature: "lenientnils".}.
    • Среда выполнения доработана для устойчивости к нехватке памяти (OOM - out-of-memory).
  • Языковые возможности и стандартная библиотека
    • Реализованы суммарные типы (sum types) и сопоставление с образцом (pattern matching), на основе которых в стандартную библиотеку добавлены типы Opt[T] и Result[T, E] для поддержки функциональной парадигмы программирования.
    • Проверка диапазонов выполняется полностью на этапе компиляции: если корректность неявного преобразования не удаётся доказать, компиляция завершается ошибкой.
    • Семантика break и block приведена к поведению Nim 3 (RFC 576).
    • Реализованы явные циклические зависимости между модулями.
    • Решено допустить классические исключения в виде ref object с подтипами (heap-based exceptions) для совместимости с Nim 2.
    • Сохранена работоспособность макросов: std/macros отображается на систему плагинов Nimony, что позволяет использовать существующий код метапрограммирования без переписывания.
    • Добавлена параллельная форма цикла for ("for i in 0 || 1"), реализованная в виде плагина, интегрированного с пулом потоков и циклом событий. Корректность доступа к результатам проверяется статически:
      
       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]
      
    • В стандартную библиотеку добавлены модули httpclient с собственной реализацией TLS, complex, base64 и heapqueue, а также sort. Блокировки переведены на вызовы, не зависящие от libc.
  • Инженерные улучшения
    • Кодовая база компилятора переведена на nifcore, очередную итерацию API для работы с NIF, что снизило потребление памяти.
    • Для повышения безопасности работы с памятью во внутренних структурах NIF задействован подсчёт ссылок и режим copy-on-write.
    • Реализована проверка плагинов перед выполнением. Для проверки во время разработки плагинов поставляется линтер.
    • Реализованы совместимые с Nim прагмы .compile, .link, .intdefine, .booldefine и .strdefine. Прагма .build сделана независимой от инструментария сборки, а новая прагма .bundle позволяет подключать собственные бэкенды, работающие поверх Leng.

При тестировании потребления памяти на системе с чипом Apple M1 самый требовательный к памяти процесс фронтенда занимает 45 МиБ, бэкенда - 111 МиБ, а суммарное потребление при восьми одновременно работающих процессах достигает 171 МиБ. Сборка тех же компонентов компилятором Nim 2 требует примерно в пять раз больше памяти, что в значительной мере обусловлено применением clang.

Целью на текущий год в README проекта названа готовность компилятора к промышленному использованию для проектов, укладывающихся в задокументированный набор возможностей. В начале года темп разработки снизился из-за параллельной работы над системой инкрементальной компиляции в Nim 2. Модуль httpclient с собственной реализацией TLS создан для отработки применения Nim в роли встроенного ассемблера.

  1. Главная ссылка к новости (https://forum.nim-lang.org/...)
  2. OpenNews: Релиз языка программирования Nim 2.2.12
  3. OpenNews: В языке Nim представлен YRC - потокобезопасный сборщик циклических ссылок
  4. OpenNews: Представлены принципы дизайна компилятора Nimony для будущего Nim 3.0
  5. OpenNews: Для Nim 3.0 развивается новый компиляторный бэкенд на основе формата NIF
  6. OpenNews: В openSUSE обеспечена полная поддержка языка программирования Nim
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66488-nim
Ключевые слова: nim, nimony
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (56) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:03, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/–
    К сожалению, Румпф не удержался, и уже почти год вайбкодит компилятор и всё остальное :( Очень ухудшилось качество изменений
     
     
  • 2.2, Аноним (2), 10:26, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/–
    Увы, но он слабый лидер, и его проект так и останется никому ненужной игрушкой. Имхо у того же Zig куда больше шансов преуспеть!
     
     
  • 3.3, Смузихеб забывший пароль (?), 11:21, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    шансов вроде бы больше, но что одно, что другое - дно, без перспективы применения на проде кем угодно кроме фанатиков
     
     
  • 4.10, разраб (?), 12:54, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    зиг выглядит профессионально
    это же швейцарский нож для сборки си и плюсов
     
     
  • 5.14, Аноним (14), 13:07, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Перечисли кто его профессионально использовал кроме форка ноды и какого то мутного терминала?
     
     
  • 6.16, Аноним (16), 13:16, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/–
    Bun не форк ноды, он с нуля написан, у них мало общего.
     
     
  • 7.28, Nimoy (?), 16:52, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Bun на Rust недавно переехал
     
  • 6.18, Аноним (18), 13:22, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    TigerBeetle
     
  • 6.24, Аноним (24), 15:17, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    У меня дисплейный менеджер на zig, ly :)
     
  • 6.49, Аноним (49), 21:24, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Насколько знаю, его используют в Uber и Vercel для сборки Си-проектов (/gcc/zig cc/i). Видимо сильно удобнее всяких *make
     
  • 6.58, User (??), 11:01, 20/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    "Форк ноды(ТМ) вычеркивай - они накушались
     
  • 4.33, Аноним (33), 19:28, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    На прод тащат всё, что у фанатиков плохо лежит, не глядя. Фанатики, всё-таки, умеют программировать в отличие от корпоративных щёkoнадувателей. Так что, у Zig-а есть все шансы победить в этой паралимпиаде. Но зачем?
     
  • 4.52, Аноним (52), 18:04, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Zig используется в Uber. Правда в качестве тулинга для c/c++.
     
  • 3.4, Аноним (4), 11:36, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Он видимо ищет смысл жизни через свой язык.
    Главное что ему хорошо.
    А я не люблю отступы и женерики.
    Смысл прост: спасибо Господи что ты сделал нужное простым, а сложное ненужным.
    Когда-нибудь и он это поймет. У каждого свой путь.
    Я планирую сходить с ума по другому - поверх Forth прикрутить простой синтаксис со скобками. Было бы интересно посмотреть как оно. Навайбкодьте кому не лень, а то я не знаю когда руки дойдут.
     
     
  • 4.43, Аноним (43), 08:58, 18/10/2026 Скрыто ботом-модератором     [к модератору]
  • –3 +/–
     
  • 2.9, Аноним (9), 12:42, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    > Сборка тех же компонентов компилятором Nim 2 требует примерно в пять раз больше памяти, что в значительной мере обусловлено применением clang.

    Настолько ухудшилось, что стало потреблять в пять раз меньше памяти? Ох уж, этот новояз.

     
  • 2.44, Axonic (ok), 09:33, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > Румпф не удержался, и уже почти год вайбкодит компилятор и всё остальное :( Очень ухудшилось качество изменений

    А до этого в течение 20 лет работал головой и руками. Сейчас больше работает головой, потому-что рутину переложил LLM.

    Что значит «ухудшилось качество изменений»? Сам-то понимаешь, о чём говоришь? Или просто поспешил что-нибудь написать?

     
  • 2.61, Axonic (ok), 22:35, 20/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Румпф не удержался, и уже почти год вайбкодит компилятор и всё остальное

    Профессионал со специальным образованием, занимающийся более 20 лет проектированием компиляторов, вкупе с возможностями LLM — адская машина. Не плачь. Он справится.

     

  • 1.7, Axonic (ok), 12:06, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Понятно, что любой язык программирования — лишь инструмент, и в руках хорошего инженера-программиста он будет использован эффективно. Однако Nim  даёт дополнительную возможность программировать с удовольствием. А результаты, как по скорости выполнения, так и по памяти, весьма впечатляют.

     
     
  • 2.23, Инопланетянин (?), 15:16, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > А результаты, как по скорости выполнения, так и по памяти, весьма впечатляют.

    А еще впечаталяют результаты по утечкам памяти и нежеланиям автор их исправлять годами https://github.com/nim-lang/Nim/issues?q=is%3Aissue+state%3Aopen+mem

     
     
  • 3.53, Axonic (ok), 20:46, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ссылка ведёт на поиск подстроки «mem» среди всех открытых issue, а это не список утечек. Под такой запрос попадают и memory, и member, и memcpy, и memfiles, и запросы на улучшения, и вопросы по отдельным платформам.

    Количество открытых тикетов в проекте с такой историей само по себе говорит о размере трекера, но не о качестве рантайма.

     
     
  • 4.54, Инопланетянин (?), 20:58, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Ссылка ведёт на поиск подстроки «mem» среди всех открытых issue, а это
    > не список утечек. Под такой запрос попадают и memory, и member,
    > и memcpy, и memfiles, и запросы на улучшения, и вопросы по
    > отдельным платформам.

    Нет, в запросе "memory+leak". Возможно у вас как-то ссылка обрезалась.

     

  • 1.12, разраб (?), 12:57, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    я тут чекнул привет мир на гоу ран и дотнет ран (запуск исходника) под виндой. оказалось что гоу в 4 раза медленней при первом запуске, и практически одинаково второй запуск.
    Так зачем страдать? думаю что IL-сборки все еще обладают огромным потенциалом перед нэйтивом
     
     
  • 2.45, Аноним (45), 10:45, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    а с echo hello world не сравнил? зачем страдать фигней?
     
  • 2.46, Аноним (46), 12:05, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > я тут чекнул привет мир на гоу ран и дотнет ран (запуск исходника) под виндой. оказалось что гоу в 4 раза медленней при первом запуске, и практически одинаково второй запуск.

    потому что при первом запуске исходник ВНЕЗАПНО компилируется

     

  • 1.13, аниме эксперт (-), 12:58, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Язык, где можно сбиться со счёта, сколько раз ломали совместимость (что в целом красная метка для такого проекта и его команды разрабов).
     
     
  • 2.40, Аноним (40), 02:57, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Так это же хорошо. Поскольку индустрия обожате плохие языки, то для того, чтобы это недоразумение не набрало популярность, написание кода на нём должно быть максимально неудобным.
     

  • 1.17, Alexey Torgashin (?), 13:18, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    > автор языка программирования Nim, опубликовал серию отчётов о прогрессе разработки компилятора Nimony, создаваемого как основа для будущего релиза Nim 3.0. На данный момент уже доступен восьмой отчёт.

    Ну не знаю..
    Что-то как-то Ним себя не зрекомендовал.
    Ну что на нем есть? ну есть конечно какие-то проги но я их не знаю.

    Вот FreePascal он "такой устаревший" но на нём есть.
    Есть проги. На нём.
    я его тоже юзаю.

    А Ним...

     
  • 1.20, Сергей Макаров (?), 13:38, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Я все жду появление языка программирования созданного ии для ИИ через самосовершенствование. Без необходимости понимания кода людьми.
     
     
  • 2.21, Аноним (-), 13:56, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Opus 5.5 уже проходит тесты на написание машинного кода без использования языков программирования. Правда пока только на 7%, но всего год назад это было немыслимо.
     
  • 2.29, Аноним (29), 17:37, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Проснись уже есть Jev.
     
  • 2.51, Аноним (51), 06:49, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    В целом подходят языки навроде TypeScript и Rust, где компилятор четко сообщает ошибки, что позволяет ИИ самостоятельно исправлять. Хотя возможно язык с еще более строгими ограничениями будет оптимальнее для ИИ
     

  • 1.22, Аноним (22), 14:09, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Похоже энергичный отличник автор запутался в выкладках. Потерял цель. Что-то теперь могу - тут же это делаю. Зачем? Не важно. Важно что могу. И энергия ксть. "Давно я так не раскидывал мозгами" - подумал профессор Плейшнер, выпрыгивая из окна. А ведь это мог бы быть просто Си (а еще лучше Паскаль) с синтаксисом Питона.
     
  • 1.25, DEF (?), 15:27, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    В чём смысл этого языка? Зачем он нужен? Как он собирается конкурировать с Python, Rust и TypeScript в соответствующих нишах?
     
     
  • 2.26, Аноним (26), 16:08, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    питон не компилируется никак, любой проект по компиляции птона разбивается о бдфл, функциональное программирование на нём же разбивается о юзербазу с её отвращением к слову lambda
    раст - решил переплюнуть c++ по переусложнённости
    тайпскрипт - это просто жс с навешанными аннотациями типов "мам, смотри, я тоже умею в C++"

    ним - это мультипарадигма (тут улетели раст с питоном) с действительно работающей типизацией (тут улетели питон и тайпскрипт) и макросами (опять питон, тайпскрипт и немного раст) с таргетами в браузер и машинный код (пока, питон и тс). в принципе, может быть использован для всего, лишь бы были батарейки (а для батареек мы используем макросы)

     
  • 2.30, Аноним (29), 17:38, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/–
    Представать что ты когда то прочитал книгу в двух томах как написать компилятор. И после прочтения с этим знанием нужно что-то сделать.
     
  • 2.60, Аноним (60), 14:28, 20/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > В чём смысл этого языка? Зачем он нужен?

    Доставлять удовольствоие своему автору процессом своей разработки.

    > Как он собирается конкурировать с Python, Rust и TypeScript в соответствующих нишах?

    Никак не собирается.

     

  • 1.27, DEF (?), 16:51, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/–
    В нише Web царствует TypescriptScript как full-stack язык, вытесняя PHP.
    В системной нише - Rust, вытесняя C и C++.
    В нише Data Science - Python.

    Мультипарадигма - это всегда бардак и треш. Чем Nim, Zig и прочие языки собираются побеждать, ничего принципиально нового они не дают, кроме подсахаренного синтаксиса.

     
     
  • 2.31, Аноним (31), 17:55, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Пора уже писать специальный язык адаптированный для удобства ИИ-агентов который ускорит генерацию на много процентов наплевав на людей, всё равно большую часть нейро(слоп)кода никто не ревювит а отлаживает с помощью других ИИ.
     
     
  • 3.38, Аноним (38), 02:47, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Уже есть такой — Rust же.
     
  • 2.32, Гуманоид (?), 18:25, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    По пунктам 1 и 2 смешно получилось.
     
  • 2.34, Аноним (33), 19:35, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/–
    > Чем Nim, Zig и прочие языки собираются побеждать

    Выразительностью. (Теперь) есть языки на которых хочется писать. А есть, на которых станешь писать только когда заставляют под угрозой насилия: Си, С++, Python, PHP и, прости г-ди, Typescript. Этих хоть сахаром посыпай, хоть перцем с солью, хоть земличкой присыпай, выразительнее они от этого не становятся. В следущий раз соглашайтесь на насилие, как более гуманный выбор.

     
     
  • 3.35, DEF (?), 20:14, 17/10/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/–
    >Выразительностью

    Выразительность - это субъективная ерунда, которую невозможно объективно измерить.

    >А есть, на которых станешь писать только когда заставляют под угрозой насилия: Си, С++, Python, PHP и, прости г-ди, Typescript

    Спокойно писал на C и PHP 8+, сейчас также спокойно пишу на Python и TypeScript.

    >В следущий раз соглашайтесь на насилие, как более гуманный выбор.

    Интересный у тебя жизненный опыт, но я пойду своим путём.

     
     
  • 4.37, Skala (??), 01:26, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Go is the best!
     
     
  • 5.42, Someone (??), 03:39, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    почему идти куда-то является лучшим?
     
     
  • 6.55, _ (??), 22:38, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Хе-хе ... потому что жизнь - это движение!(С) :)
     
  • 4.47, черпало (?), 13:09, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Спокойно писал на C

    где? в училище, сортировку пузырьком? ты тут распинался, какой смешной си, потому что ему библиотека для malloc/free нужна, это ж делирий. Шо ты там писал?

    > PHP 8+, сейчас также спокойно пишу на
    > Python и TypeScript.

    бггг, а я всегда говорил, что в ветках про раст (основная масса спецыалистов) или про дырчатость си громче всех кричат пхпшники и джсеры. И как так постоянно получается-то, а?

    одичавшие веб-синьоры

     
  • 3.59, Аноним (60), 14:26, 20/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    > Выразительностью. (Теперь) есть языки на которых хочется писать

    Да, такой же "выразительностью" что и у ruby с perl'ом. На словах написано сертифицированными лингвистами, на деле - одно неюзабельный бейсик, другой write once, но и на эти сорта находятся мухи, в итоге я языки взлетят только для них, а нормальные люди продолжат программировать на языках программирования - например, Rust. Которые для программистов, внезапно, более чем выразительны.

     

  • 1.36, Инопланетянин (?), 23:02, 17/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Добавлена параллельная форма цикла for ("for i in 0 || 1"), реализованная в виде плагина, интегрированного с пулом потоков и циклом событий.

    Зачем?

     
  • 1.39, Аноним (40), 02:54, 18/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >По умолчанию задействованы типы ref и ptr, не допускающие значения nil. Для совместимости со старым кодом предназначена прагма {.feature: "lenientnils".}.

    Это какой-то позор. Вместо того, чтобы унаследовать язык от StadardML, и реализовать ADT ещё во время POC, автор изобретает велосипед до сих пор.

     
     
  • 2.56, _ (??), 22:42, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > StadardML

    оно не взлетело, увы :(
    Оно конечно не мёртвое, что то там даже делается, но это так - tier 3 ...

     

  • 1.41, Аноним (38), 02:58, 18/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Архитектура перестроена вокруг промежуточного представления NJ ("No Jumps"), не содержащего операции break, continue и goto.

    Может кто–нибудь объяснить, какой профит от подобного извращения? Это терминальная стадия покусанности Дейкстрой или что? Под капотом у всех ветвлений всё равно джампы и фиксапы так и так придётся править на следующем проходе.

     
     
  • 2.48, Аноним (48), 19:48, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Было много багов. Автор языка решил, что из-за jump'ов. Решил избавиться, его право.
     
  • 2.50, Инопланетянин (?), 22:53, 18/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Может кто–нибудь объяснить, какой профит от подобного извращения?

    Я не компиляторщик, но так проще CFG анализировать.

    >  Под капотом у всех ветвлений всё равно джампы и фиксапы так и так придётся править на следующем проходе.

    Смысл IR, чтобы на более высоком уровне делать суждения о коде.

     
  • 2.57, _ (??), 22:45, 19/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Может кто–нибудь объяснить, какой профит от подобного извращения?

    Ну дык эта ... чтобы святой кЫш не сбрасывать и пайплайны тоже ...
    Нонешние процы - оне все такое сильно не любят :)

     
  • 2.62, Аноним (62), 13:32, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Это промежуточное представление, которое должно быть удобным для анализа и оптимизаций. Без джампов это, очевидно, делать проще.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: