The OpenNET Project / Index page

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



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

Оглавление

Первый стабильный выпуск Arti, официальной реализации Tor на языке Rust , opennews (?), 03-Сен-22, (0) [смотреть все]

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


4. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +13 +/
Сообщение от Аноним (4), 03-Сен-22, 10:41 
Вообще-то нет. На OCaml. Но потом заселфхостили и переписали на расте.
Ответить | Правка | Наверх | Cообщить модератору

13. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (13), 03-Сен-22, 11:23 
вообще-то да, ocalm написан на си, как и llvm
Ответить | Правка | Наверх | Cообщить модератору

27. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +10 +/
Сообщение от Аноним (27), 03-Сен-22, 11:44 
Логическая ошибка. Раст написан на раст. Чтобы прийти к утверждению, что "раст  раньше был написан на ocaml, который написан на С, поэтому раст сейчас написан на С" нужно очень сильно удариться головой.

Если бы у рыбы была шерсть, то в ней бы водились блохи, ага.

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

39. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  –4 +/
Сообщение от Аноним (13), 03-Сен-22, 11:55 
рад, что ты признал свою неправоту и то, что раст написан на си
Ответить | Правка | Наверх | Cообщить модератору

48. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +1 +/
Сообщение от Аноним (48), 03-Сен-22, 12:04 
Ну скинь код раста, написанный на С, поржом. Сумеешь отличить?)
Ответить | Правка | Наверх | Cообщить модератору

127. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  –4 +/
Сообщение от Аноним (127), 03-Сен-22, 17:26 
https://github.com/thepowersgang/mrustc
Ответить | Правка | Наверх | Cообщить модератору

190. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +2 +/
Сообщение от pincher2012 (ok), 04-Сен-22, 00:31 
Странно, а в описании написано что он на C++
Ответить | Правка | Наверх | Cообщить модератору

150. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  –2 +/
Сообщение от Аноним (-), 03-Сен-22, 21:00 
> Логическая ошибка. Раст написан на раст.

Особенно вон тот LLVMный кодогенератор к нему, без которого он бесполезен чуть более чем полностью.

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

152. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (-), 03-Сен-22, 21:07 
>> Логическая ошибка. Раст написан на раст.
> Особенно вон тот LLVMный кодогенератор *пуууук-пуук-пук*

https://github.com/bjorn3/rustc_codegen_cranelift
> Cranelift codegen backend for rust
>  Rust 97.2%  Shell 2.8%

Попробуй еще раз, громче


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

272. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  –2 +/
Сообщение от Аноним (-), 04-Сен-22, 21:04 
> https://github.com/bjorn3/rustc_codegen_cranelift

Это судя по урле какой-то посторонний проект на левом ресурсе от стороннего хрена. Нюанс в том что это не дефолтное состояние дел и нельзя сказать что оригинал хруста написан на хрусте, когда там пдюсатый супер-либ на 60 мегов кодогенератором.

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

324. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (-), 05-Сен-22, 22:47 
https://hacks.mozilla.org/2020/10/a-new-backend-for-cranelif.../
>> So what is Cranelift?
>> The project is a compiler framework written in Rust that is designed especially (but not exclusively) for just-in-time compilation
>> We recently flipped the switch to turn on Cranelift-based WebAssembly support in nightly Firefox on ARM64 (AArch64) machines,
> Это судя по урле какой-то посторонний проект на левом ресурсе от стороннего хрена. Нюанс в том что это не дефолтное состояние дел

/0

>> Rust 97.2%  Shell 2.8%
>> // Similarly, copy `llvm-dwp` into libdir for Split DWARF. Only copy it when the LLVM
>> // backend is used to avoid unnecessarily building LLVM and because LLVM is not checked
>> // out by default when the LLVM backend is not enabled.
> и нельзя сказать что оригинал хруста написан на хрусте, когда там
> *Пу-у-к*.

Eще раз, громче.

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

333. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (-), 06-Сен-22, 01:06 
А таки референсный хруст генерит код плюсовым LLVM. Хоть там как тасуй, а факты штука упрямая.
Ответить | Правка | Наверх | Cообщить модератору

50. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (50), 03-Сен-22, 12:06 
OCaml не написан на си, звиняй.
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

56. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +1 +/
Сообщение от funny.falcon (?), 03-Сен-22, 12:31 
А на чём?

Ну, с одной стороны ты прав: большая часть компилятора на Ocaml.

С другой - нет: большая часть рантайма и байт-код интерпретатор на C.

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

111. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от n00by (ok), 03-Сен-22, 15:13 
А я бы посмотрел, как интерпретатор перепишут на безопасном языке. В текущей реализации читается файл байт-кода, для каждого опкода вычисляется адрес машинной команды соответствующей метки case и переписывается поверх опкода. При исполнении выполняется нестандартный для Си goto *ptr. Ну или оптимизация switch не производится, тогда работает медленнее.
Ответить | Правка | Наверх | Cообщить модератору

151. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (-), 03-Сен-22, 21:01 
Переписать можно хоть на брейнфаке, другой вопрос кому это будет потом нужно.
Ответить | Правка | Наверх | Cообщить модератору

215. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от n00by (ok), 04-Сен-22, 07:50 
Я переписал на ассемблере AMD64, сравнил производительность с оригиналом, теперь могу говорить предметно о паре аспектов, а не только теоретизировать и разводить демагогию на отвлечённые темы, как некоторые.
Ответить | Правка | Наверх | Cообщить модератору

273. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (273), 04-Сен-22, 21:12 
> Я переписал на ассемблере AMD64, сравнил производительность с оригиналом, теперь могу говорить
> предметно о паре аспектов, а не только теоретизировать и разводить демагогию
> на отвлечённые темы, как некоторые.

Про производительность никто и не говорил. Технически, даже питонист позорный может интерпретатор накорябать. То что это тормозное УГ нафиг не вперлось вопрос номер два. Впрочем, кмк, ассемблерная версия будет не сильно популярнее. А раз так найдите 10 отличий. Чем dead code отличается от dead code?

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

300. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от n00by (ok), 05-Сен-22, 13:26 
Так в производительности ВМ вся соль. Не понятно, как на Rust без unsafe добиться сравнимой с Си. Боюсь, что никак. Сама ВМ не такая и объёмная, но это не тот код, который пишется быстрее чем обдумывается. Как там Rust ускорит разработку, не понятно.
Ответить | Правка | Наверх | Cообщить модератору

325. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (325), 05-Сен-22, 23:36 
> Так в производительности ВМ вся соль.

Лучшая VM - ее отсутствие. Хрустики это поняли, как и сишники.

> Не понятно, как на Rust без unsafe добиться сравнимой с Си.

А в чем собственно проблема? Он не VM, это такой агрессивный compile-time чекинг и статический анализ по сути. Даже на сях можно макросней некое очень ограниченное подобие сделать, но весьма базово. Скажем в gcc оптимизер довольно много чего знает и допустим может выпилить проверки целиком, доказав что они никогда не вызываются с данным кодом. К сожалению, наружу это не вывешено и поэтому "static assert" на такую шляпу сделать - да вот сейчас. Хрустики пошли по этой дорожке несколько дальше с их borrow checker'ом.

> Боюсь, что никак.

Если в хрусте и есть что-то интересное, то вот как раз то что они частично все же наели. Чуда, конечно, не случилось и вон там в дебажном билде "как ubsan" со всеми теми же прелестями, зато больше левых потуг ловит, а в обычном... таки далеко не все способы прострела пяток ловятся, эти господари, таки, как я понимаю, несколько лукавят. В том плане что некоторые вещи оно тоже только в рантайм ловить может с соотв malus. Но это ожидаемо, в идеале bound checker должен быть в проце, когда при операции с памятью указывается top и bottom и потуги что-то делать вне этой зоны ведут к хардварному эксепшну. Вот так будет быстро и эффективно. Но процы такие какие есть. И их инструменты на самом деле не позволяют "эффективно отловить нарушения 50 регионов по 10-30 байтов каждый". При сильном желании, ЭТО можно сделать MMU/MPU однако есть нюансы: это хтонически неэффективно по оверхеду потребления памяти если у нас кучка мелких структур а не пара огроменных регионов. Интел пытался что-то более разумное делать, но вы же понимаете как програмеры смотрят на идею работать на только интеловских процах, и только совсем новых? Оно народу и не зашло. Это тот случай когда надо было сделать всеобщую халяву и к тому же 20 лет назад, чтобы сейчас насладиться плодами этого (и то не везде).

> Сама ВМ не такая и объёмная, но это не тот код, который пишется быстрее
> чем обдумывается.

У хруста никаких вм в рантайме вроде как нет. Просто некоторые формы bound checking и integer ops checking оно только в дебажном билде делает, кажись.

А, да, кидать хардварное исключение при overflow/underflow математики большая часть процов тоже не умеет. А флаг в регистре состояний - это прекрасно, только его проверка дополнительные инструкции требует, и вооон там в продвинутых алго типа крипто и мультимедии, где нас это больше всего колышет, скорость поделится на N. А оно такое надо?!

> Как там Rust ускорит разработку, не понятно.

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

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

335. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от n00by (ok), 06-Сен-22, 09:43 
>> Так в производительности ВМ вся соль.
> Лучшая VM - ее отсутствие. Хрустики это поняли, как и сишники.

Тут ветка про OCaml. Там есть и компилятор в машинный код, но и интерпретатор оставили.

>> Не понятно, как на Rust без unsafe добиться сравнимой с Си.
> А в чем собственно проблема?

Я описал выше в №111, что представляет из себя реализация ВМ OCaml на Си. Наверное, недостаточно понятно это сделал. В ответ предложили переписать на Брайнфаке - и так понятно, что отстанет по скорости.

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

142. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +1 +/
Сообщение от Аноним (-), 03-Сен-22, 20:31 
> вообще-то да, ocalm написан на си, как и llvm

Вообще-то, раст написан на питоне. Пруф:
https://github.com/ShivamSarodia/ShivyC
> C compiler created in Python.

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

274. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (273), 04-Сен-22, 21:13 
В названии опечаточка, там ShittyC конечно же должно быть.
Ответить | Правка | Наверх | Cообщить модератору

214. "Первый стабильный выпуск Arti, официальной реализации Tor на..."  +/
Сообщение от Аноним (214), 04-Сен-22, 06:27 
Это называется "забутстрапили".
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

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

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




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

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