The OpenNET Project / Index page

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

Прогресс в разработке транслятора из Rust в код на Cи и .NET IR

12.04.2025 13:08

Разработчики бэкенда к компилятору rustc, позволяющему транслировать код с языка Rust в представление на языке Си, объявили об успешном прохождении 95.9% тестов. Два месяца назад уровень прохождения тестов оценивался в 92%. Отмечается, что остаются непройденными 64 тестов, все из которых связаны с решением типовых проблем, в устранении которых не возникнут сложности. Код бэкенда распространяется под лицензией Apache 2.0.

Помимо языка Си бэкенд также поддерживает трансляцию с Rust в промежуточное представление CIL для платформы .NET. Идея проекта в предоставлении возможности создания классов .NET на основе кода, написанного на Rust, а также использования существующих Rust-библиотек в проектах на базе платформы .NET. В классах для платформы .NET, написанных на языке Rust, можно обращаться к API и библиотекам .NET. Уровень прохождения базовых тестов для .NET оценён в 96.3%.

  1. Главная ссылка к новости (https://fractalfir.github.io/g...)
  2. OpenNews: Microsoft опубликовал открытую платформу .NET 9.0
  3. OpenNews: Браузер Chrome переведён на шрифтовой движок Skrifa, написанный на Rust
  4. OpenNews: В GCC-фронтэнде с компилятором Rust реализован Borrow checker
  5. OpenNews: Разработчики GRUB2 рассматривают возможность использования языка Rust
  6. OpenNews: Выпуск Rust 1.86. Подготовка официальной спецификации языка Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63060-rust
Ключевые слова: rust, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (65) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, penetrator (?), 13:19, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    что такое .NET IR?
     
     
  • 2.3, Аноним (3), 13:22, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Байткод, в который компилируется C#, F#, и даже Visual Basic .NET
     
  • 2.6, Аноним (6), 13:26, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Intermediate Representation?
     
     
  • 3.45, penetrator (?), 18:06, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    скорее всего, в терминологии и документации дотнета нет таких обозначений

    а репы с растом есть A Rust compiler backend targeting CIL(.NET IR) and C.

     
  • 2.39, Аноним (-), 17:55, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А где вы это нашли? Может я не внимательно смотрю, но в статье такого нет
     
     
  • 3.47, penetrator (?), 18:07, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    заголовок
     
     
  • 4.57, Аноним (-), 20:21, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Эпик фейл, спасибо
     

  • 1.5, Alladin (?), 13:23, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    зачем из rust в си/.net, если нужно из си/.net в rust
     
     
  • 2.7, Аноним (6), 13:29, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Чтобы модули ядра преобразовывать в канонический сишный вид.

    PS Наверное же, где надо, автоматически будут добавлены проверки границ массивов в выходной сишный код.

     
     
  • 3.12, Аноним (-), 13:45, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Чтобы модули ядра преобразовывать в канонический сишный вид.

    А смысл? Исходный код все равно будет не на си и для внесения изменений нужно будет в него лезть. Плюс на баги в коде могут наложиться баги в трансляторе.

    > PS Наверное же, где надо, автоматически будут добавлены проверки
    > границ массивов в выходной сишный код.

    Так же не только проверки границ. Вообще интересно с каким оверхедом они будут эмулировать нативные типы вроде енамов.

     
     
  • 4.14, Аноним (14), 14:02, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В ядре "код для ознакомления"?
    Можно сразу из Rust в бинарник, а публике для ознакомления вариант на Си?
    Править в виде Си нельзя - нарушится безопасность.
    Совпадают бинарники: Rust->bin VS Rust->C->bin?  
     
     
  • 5.22, freehck (ok), 15:19, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Совпадают бинарники: Rust->bin VS Rust->C->bin?

    Конечно же не совпадают. С чего вы вообще взяли, что этот вопрос имеет смысл?

     
  • 5.53, Аноним (14), 19:21, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для тех, кто задают вопрос о смыслах и запрещают отвечать на поставленный вопрос Анонимам:
    Смысл в том что можно создать бинарник из Rust-исходника. В проект на Си выложить транслированный в Си код (и еще вопрос как в этом случае выполняется безопасность Rust) и сохранить гордую надпись "Код первоначально написан на безопасном языке Rust". На вопрос идентичности отвечать: "Конечно же нет"
     
     
  • 6.55, an2 (?), 19:59, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > можно создать бинарник из Rust-исходника

    Можно только LLVM IR создать. А бинарник будет уже LLVM создавать. Т.е. компилятор раста в любом случае только на какие-то промежуточные представления способен.

     
  • 4.17, Аноним (6), 14:39, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смысл в сборке ядра чисто с помощью GCC, пока gccrs всё ещё не готов. А кто захочет внести изменения, внесёт в полученный сишный код.
     
     
  • 5.25, Аноним (25), 15:40, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это что за цель такая собирать только gcc? Для кого это вообще важно, кроме 1.5 упоротых гентушника?
     
     
  • 6.42, Аноним (6), 18:02, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну давайте устроим перепись "населения" что-ли, кому это важно. Думаю, найдётся немало и негентушников, кому важно. Есть даже пользователи пакетных дистров, которые собирают ядро сами кастомно. А вот дистров, собранных полностью исключительно вашим любимым Шлангом, я знаю только два, всего лищь: Magea и ещё (забыл название).
     
  • 5.71, Аноним (71), 01:30, 13/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Смысл в сборке ядра чисто с помощью GCC, пока gccrs всё ещё не готов.

    на раст ещё нет модулей и ядро собирается чисто gcc, вас кто-то обманул

     
  • 4.18, Аноним (6), 14:41, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В C11 есть enum.
     
     
  • 5.27, Аноним (-), 15:46, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В C11 есть enum.

    Только это убогий инт. И все.
    А в расте enum это почти все что угодно + есть associated values.

     
     
  • 6.74, Аноним (71), 01:55, 13/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А в расте enum это почти все что угодно + есть associated values.

    enum в расте это то же что в C просто "всё что угодно" надо дописывать вручную. У раста больше готовых абстракций но расплата за это - читающему надо парсер в голове долго тренировать.

     
  • 2.8, Илья (??), 13:33, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >  зачем из rust в си/.net

    Майки в ядро решили модули на дотнете вносить

     
     
  • 3.9, Аноним (6), 13:38, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так добавить в ядро интерпретатор байткода дотНета и нет проблем (ну кроме производительности, разве что). Можно сразу модули на любых языках из него писать. Да хоть на F#.
     
     
  • 4.38, Аноним (38), 17:39, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не вижу принципиальной проблемы с этим. В ядро FreeBSD интерпретатор lua добавили, и ничего, даже небо на землю не упало.
     
     
  • 5.43, _ (??), 18:05, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылку? Или как обычно? :)
     
  • 5.44, Аноним (6), 18:06, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вроде, в NetBSD. И мнго кода для ядра на Lua пишут?
     
  • 2.40, Аноним (-), 17:58, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Идея проекта в предоставлении возможности создания классов .NET на основе кода, написанного на Rust, а также использования существующих Rust-библиотек в проектах на базе платформы .NET. В классах для платформы .NET, написанных на языке Rust, можно обращаться к API и библиотекам .NET

    В статье не так много слов. Можно было бы почитать и понять суть написанного

     
     
  • 3.58, Аноним (-), 20:24, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Продолжу, раз ответ никто не дал кратко - .net перепишут на rust. Только это длинно и заумно написано. Все весьма прозаично - язык считается безопасным, значит позиционировать его будут также, потеснят жабу.
     
  • 2.67, Grand (?), 22:48, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы потом собрать на национальном и патриотическом процессоре Эль-брус на котором не то что Rust,фортрановского компиллятора толком нет.
     

  • 1.10, Аноним (10), 13:43, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Ахах теперь у больших корпов встала проблема как переписать эту неподдерживаемую Раст лапшу обратно на нормальный язык.
     
     
  • 2.13, Аноним (-), 13:47, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > у больших корпов

    Ну конечно у больших корпов :)

    "Young programmer from Poland, interested in writing compilers, and procedural generation."
    github.com/FractalFir

     
     
  • 3.16, Аноним (14), 14:10, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если справляется один, то зачем больше?
    Кроме того за этим именем, может стоять коллектив (в том числе и теневой).
     
     
  • 4.21, Аноним (-), 15:14, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Кроме того за этим именем, может стоять коллектив (в том числе и теневой).

    Ого! Так у нас еще и теория заговора!

    Давай тогда поднимем уровень абсурда: сам код пишется на расте (Rust 99.6% в репе rustc_codegen_clr). Это явно не просто так! Наверняка это потому что обычный сишник™ не в состоянии осилить раст...  Значит туда напихают бэкдоры! О как!

     
     
  • 5.29, Аноним (29), 16:09, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Никаких теорий, это частая практика.
     
  • 5.64, Аноним (64), 22:09, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я обычный сишник и не в состоянии осилить Раст. Ну точнее прямо сейчас не вхожу в данное состояние. Моя Стейт машина делает перерыв. Было дело как-то осилил
     
  • 2.19, НяшМяш (ok), 14:46, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зато у кекспертов-онанимов проблема, чего бы ещё такого глупого придумать про раст, никуда и не исчезала.
     
     
  • 3.20, Аноним (6), 14:51, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Дайте Вискаса этому коту, а то у него лишь бы чего мявкнуть.
     
  • 2.56, an2 (?), 20:19, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Новость порадовала: это, наверное, самый полезный проект на расте.
     

  • 1.15, Аноним (15), 14:09, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >все из которых связаны с решением типовых проблем, в устранении которых не возникнут сложности

    Вот и сообщали бы тогда, когда решены 100% проблем. Ведь никаких сложностей с этим не возникнет!

     
     
  • 2.23, Анименим (-), 15:25, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    имееш что то против уведомления о прогрессе разработки? предпочитаешь, чтобы везде как с андроидом было: толпа индуса пыхтит за кулисами полгода, а потом просто очередную версию выкатывают с нескучными обоями?
     
     
  • 3.36, Аноним (36), 17:10, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Подписанным на репозиторий уведомления и так приходят. А правило 20-80 как раз говорит, что оставшаяся часть будет самая трудная. Не потому что какое-то там правило 20-80, а потому что искусственный отбор: самые лёгкие в решении проблемы им устраняются. А самые тяжёлые - сидишь и пыхтишь. Одно лечишь - другое калечишь. Репу чешешь. Эти "легкорешаемые проблемы" на десятилетия растянуться могут.
     

  • 1.24, Медведь (ok), 15:28, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Выглядит как толстый намек на перспективы раста...
     
  • 1.28, YetAnotherOnanym (ok), 15:51, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Бред какой-то... Уходили от Си - и снова пришли к Си.
     
     
  • 2.31, Аноним (31), 16:44, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    О да! Корпы якобы впендюрили Раст в ядро, чтобы потом его выкинуть! Якобы раст - туфта. Молодец, парень! Знатно ему ibm проплатила! А сишники как писали use-after-free, так и пишут же, и будут писать! И гордятся тем, что не Раст.
     
     
  • 3.34, Аноним (34), 17:06, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А растовики пути нормально обрабатывать не умеют. И софт писать не умеют. Так что единственный способ получать результат это вернуться в родную гавань. На си.
     
  • 2.51, Аноним (51), 18:25, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Rust, передовой язык.
    Компилятор на C.
     
     
  • 3.52, Ivan_83 (ok), 18:30, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Скоре фриковый для фриков, которые в жизни боятся всего.
     

  • 1.30, Аноним (30), 16:33, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Осталось всего-ничего всю шляпу вроде rsvg, firefox, nouveau транслировать обратно в Си. Либо целиком сразу, либо созданием отдельных репозиториев.
     
     
  • 2.32, Аноним (31), 16:45, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какой молодец! Начинай транслировать это всё обратно всё в Си!
     
     
  • 3.35, Аноним (34), 17:07, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я уже закончил. Сказать то чего хотел?
     
     
  • 4.50, Аноним (51), 18:24, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А WinRar купил?
     

  • 1.37, Аноним (37), 17:30, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    опять все попутали, DARPA ведь говорила об обратном :)

    https://www.darpa.mil/research/programs/translating-all-c-to-rust

     
     
  • 2.48, Ivan_83 (ok), 18:20, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    DARPA это про исследования, там далеко не всё потом живое-юзабельное получается.
     
     
  • 3.63, Аноним (37), 21:50, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    аааа, ну тогда ясно почему не в брейнфак они транслируют.
     
  • 2.54, Аноним (54), 19:27, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    с адой у них тоже ничо не вышло
     
     
  • 3.59, Аноним (-), 20:35, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не стоит их недооценивать - с вебом и развалом СССР все у них вышло. Я предполагаю что и Раст пропихнут - все пока выглядит к лучшему и что все от этого выиграют, только история показывает реальные результаты. Они то точно от этого выиграют. Все что от неудачи они получат - выводы и опыт. А кто вообще ничего не делает вообще ничего не получит
     
     
  • 4.72, Аноним (64), 01:48, 13/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А с развалом твоего брака это тоже они?
     
  • 3.61, Аноним (37), 21:46, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а шо язык должен разрешать людские логические проблемы? Думаете раст разрешает? Это компилятор (программа) раста разрешает, а не сам язык.
     
     
  • 4.73, Аноним (64), 01:50, 13/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Может и нафек его тогда рас он ниче не решает
     

  • 1.49, Аноним (51), 18:23, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Теперь будут переписывать ядро с Ryst, на C.
     
  • 1.65, Аноним (64), 22:26, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > I am a young(19 year old) student from Poland, obsessed with compilers and procedural generation - code is my artform. For the past 1.5 years, I have been working on compiling Rust for some obscure targets.

    А молодец, нормально похакал для 19 лет. Щас ещё сишку для себя откроет после этих компаний попрет

     
  • 1.68, Grand (?), 22:49, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вообще правильно. Нормальный язык должен иметь несколько реализаций компиллятора ...
     
     
  • 2.69, Аноним (37), 23:01, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    особенно если на этом языке пишут крипту всякую.

    https://blog.cr.yp.to/20240803-clang.html

     

  • 1.70, Аноним (70), 00:59, 13/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ничего вы не понимаете Это предохранительный клапан от черезмерного давления в ... большой текст свёрнут, показать
     
  • 1.75, Аноним (75), 02:41, 13/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что с рантаймом? Тоже скомпилируют в C?
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру