172 похожих чатов

Это rust-lang/rust... Вопрос, как компилятор раста написан на.... расте? x_x

11 ответов

21 просмотр

сначала был на окамле, потом, когда язык достаточно развился, компилятор переписали уже на раст. ну и новые версии собираются просто старыми бинарями обычно https://en.wikipedia.org/wiki/Bootstrapping_(compilers)

Как и шарп написан на шарпе, как и многие другие компиляторы написаны на языке который они компилируют. Работает примерно так: есть компилятор написанный на существующем языке (в случае раста — ocaml), компилятор переписывают на компилируемый язык (Rust), старым компилятором компилируют новый компилятор, и вот, у нас есть компилятор написанный на языке который он компилирует. Дальше мы пишем N+1-ю версию компилятора и компилируем её N-ой версий. Этот процесс называется бутстрапинг (bootstrap).

кроме старого компилятора на OCaml, есть ещё компилятор, из которого бутстрапят сейчас — mrustc. он реализует Rust 1.54 и написан на C++

Max Силинг
кроме старого компилятора на OCaml, есть ещё компи...

например, Guix честно бутстрапит Rust из mrustc (а вот Nix бутстрапит как все, просто из бинарников предыдущей версии)

Αλεχ Zhukovsky
тока он без борровчекера врод

да, но это неважно, т. к. он нужен для компиляции самого rustc, а rustc уже проборроучекан

Max Силинг
например, Guix честно бутстрапит Rust из mrustc (а...

(Guix вообще примечателен тем, что он бутстрапится почти с нуля, а в экспериментальных версиях бутстрапится из бинарника размером в 357 байт

там долгий путь сначала простой ассемблер, потом ассемблер посложнее, потом Mes (которые пара из Scheme и C, бутстрапящих друг друга; не помню, кто собирается первым), т. к. они бутстрапят друг друга, в этот момент проверяется воспроизводимость, и дальше через компилятор си уже понятно

Max Силинг
там долгий путь сначала простой ассемблер, потом а...

собирается tcc, потом glibc, binutils и древний GCC, дальше бутстрапим GCC до новых версий, и из GCC уже всё остальное

вафля'
Как и шарп написан на шарпе, как и многие другие к...

Я правильно понимаю, что если хочется полностью скомпилировать самостояльно с нуля (например, взяв философию Gentoo), то нужно каждую версию последовательно компилировать?

дima karaush 😶‍🌫️
Я правильно понимаю, что если хочется полностью ск...

Ну да, надо скомпилить каждую версию, начиная с бутстрап компилятора который вам нравится.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
17
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Карта сайта