The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проект по созданию реализации zlib на языке Rust, opennews (??), 11-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


69. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Аноним (217), 11-Апр-24, 11:01 
> Но ведь код на расте компилируется компилятором, написанным на C++

Код на расте давным-давно компилируется компилятором, написанным на расте. С таким же успехом ты мог бы сказать что код, написанный на сишке (включая ++) компилируется компилятором, написанным на паскале (первая версия gcc была именно на нём написана, https://www.gnu.org/bulletins/bull1.txt пруфом, цитирую:

Although I have a portable C and Pascal compiler, it has a serious drawback: it is a very large program, and intrinsically cannot be made smaller. It is also very hard to bootstrap.

The problem is that most of the compiler is written in Pastel, a super-hairy extended Pascal, and it is also the sole compiler for that language.  To make it smaller, we must eliminate the hair needed to compile Pastel; then we will not be able to compile Pastel, so it must all be rewritten into C.)

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

79. "Проект по созданию реализации zlib на языке Rust"  +3 +/
Сообщение от ferris (?), 11-Апр-24, 11:17 
Эти утверждения можно было бы засчитать, если бы rustc на выходе генерировал машинный код, а не LLVM-IR. Но пока что для сборки нужен LLVM, а оно, внезапно, написано на плюсах.
Ответить | Правка | Наверх | Cообщить модератору

117. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от Cykooz (ok), 11-Апр-24, 12:41 
Из таких соображений можно сказать, что все компиляторы, кроме C, написаны на С, т.к. они используют системные вызовы ядра операционной системы, которая написана на С.

Компилятор раста написан на расте, а не на LLVM-IR или C++. Имея в наличии только LLVM у вас не получится собрать этот компилятор. Значит ваш вывод не верен. Что бы собрать современный компилятор раста, надо иметь уже собранный компилятор раста. Вероятно более старой версии, но тут проблема "яйца и курицы", которая есть у всех языков и каждый решает её как может.

От того, что компилятор генерирует машинный код для виртуальной платформы LLVM, он не перестаёт быть полноценным компилятором. Даже наоборот, он отлично вписывается в Unix-Way. Делает только свою работ - компилировать программы на Rust. А вот что бы эти программы работали на разных аппаратных платформах, то пускай этим занимается LLVM, который специально для этого и сделан.

Ответить | Правка | Наверх | Cообщить модератору

140. "Проект по созданию реализации zlib на языке Rust"  –1 +/
Сообщение от Аноним (217), 11-Апр-24, 13:25 
> Вероятно более старой версии, но тут проблема "яйца и курицы", которая есть у всех языков и каждый решает её как может.

И в самом начале цепочки увидим Ocaml, а не дыряшечку.

Ответить | Правка | Наверх | Cообщить модератору

144. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Cykooz (ok), 11-Апр-24, 13:44 
> И в самом начале цепочки увидим Ocaml, а не дыряшечку.

Я бы скорее всего оптимизировал это тем, что положил в репу уже собранный бинарник со старой версией компилятора (под одну или несколько платформ). Ну и потом периодически обновлял эти бинарники, что бы не надо было делать 10 промежуточных сборок старых компиляторов, для того что бы самый новый собрался.

И написал бы в readme, что вначале было "ничего", а потом бог создал бинарник с компилятором раста.

Ответить | Правка | Наверх | Cообщить модератору

156. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от n00by (ok), 11-Апр-24, 14:45 
> Из таких соображений можно сказать, что все компиляторы, кроме C, написаны на
> С, т.к. они используют системные вызовы ядра операционной системы, которая написана
> на С.

Довольно опасное заявление. Трансляция - это перевод  исходного текста в целевой машинный код. Для чего достаточно двух областей памяти - входной и выходной буфера. Если где-то там ещё вызываются mmap() или read()/write() - это такая мелочь, о которой странно упоминать.

Ответить | Правка | К родителю #117 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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