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

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

11 ответов

54 просмотра

сначала был на окамле, потом, когда язык достаточно развился, компилятор переписали уже на раст. ну и новые версии собираются просто старыми бинарями обычно 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 😶‍🌫️
Я правильно понимаю, что если хочется полностью ск...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта