Size: a a a

Compiler Development

2020 February 12

МБ

Михаил Бахтерев in Compiler Development
λоλторт
1) Перед тем как ПО упадёт с сегфолтом, у тебя могут уже покораптиться данные, а злоумышленники украсть твои доллары.

2) обнаружить источник сегфолта намного сложнее
Да ладно!? Ну, ok. Прикладная мифология маркетинга Раста примерно понятна
источник

AN

Alex Naraito in Compiler Development
Так давайте сделаем вывод, что у каждого языка есть своя ниша, ок?
источник

AS

Aleksey Shipilev in Compiler Development
Не в первый раз встречаю мнение, что "ну случится сегфолт" (иногда приписывают "в самом плохом случае"). Однако сегфолт -- это не просто не самый плохой случай, а второй по удачности ("second best", как говорят). У нас: а) что-то сломалось; б) что-то эту поломку нашло; ц) что-то не дало программе дальше исполняться. Отсюда видно, что самый плохой вариант -- это (а) без (б) и (ц) -- ошибка есть, но она не детектирована и сеет разрушения.
источник

λ

λоλторт in Compiler Development
Alex Naraito
Так давайте сделаем вывод, что у каждого языка есть своя ниша, ок?
Такой себе вывод
источник

λ

λоλторт in Compiler Development
Ниш мало, языков много
источник

G

Gymmasssorla in Compiler Development
Alex Naraito
Так давайте сделаем вывод, что у каждого языка есть своя ниша, ок?
Дискуссия не об этом шла, а о применимости Rust к реальному миру
источник

G

Gymmasssorla in Compiler Development
λоλторт
Ниш мало, языков много
+
источник

G

Gymmasssorla in Compiler Development
Aleksey Shipilev
Не в первый раз встречаю мнение, что "ну случится сегфолт" (иногда приписывают "в самом плохом случае"). Однако сегфолт -- это не просто не самый плохой случай, а второй по удачности ("second best", как говорят). У нас: а) что-то сломалось; б) что-то эту поломку нашло; ц) что-то не дало программе дальше исполняться. Отсюда видно, что самый плохой вариант -- это (а) без (б) и (ц) -- ошибка есть, но она не детектирована и сеет разрушения.
Верно
источник

TS

Timur Safin in Compiler Development
Aleksey Shipilev
Не в первый раз встречаю мнение, что "ну случится сегфолт" (иногда приписывают "в самом плохом случае"). Однако сегфолт -- это не просто не самый плохой случай, а второй по удачности ("second best", как говорят). У нас: а) что-то сломалось; б) что-то эту поломку нашло; ц) что-то не дало программе дальше исполняться. Отсюда видно, что самый плохой вариант -- это (а) без (б) и (ц) -- ошибка есть, но она не детектирована и сеет разрушения.
вот да. Исключение - это самое лучшее/легкое что может случиться, причем прямо указывающее на багу в том месте, где это случилось.
источник

AS

Aleksey Shipilev in Compiler Development
Timur Safin
вот да. Исключение - это самое лучшее/легкое что может случиться, причем прямо указывающее на багу в том месте, где это случилось.
Разница, на мой вкус, здесь в том, что исключения -- это как правило результаты проверок на "том же уровне" (приложения), и состояние приложения может всё ещё быть определено. Сегфолт же -- это результат проверки с уровня ниже (ОСи), который нам как бэ говорит, "вы знаете, мне тут снизу не видно, что вы делаете, но мне очевидно, что у вас там творится какая-то хня". Нижний уровень не обязан за внутренностями верхних уровней следить, и нам надо ему похлопать по плечу, если он таки что-то удачно нашёл. :)
источник

M

MaxGraey in Compiler Development
Yuriy Syrovetskiy
в С вообще нет полиморфного Btree, особенно во стандартной библиотеке. с чем сравнивать?
Посмотри что такое интрусивный подход. В Си можно делать дженерик алгоритмы вот например avl
https://attractivechaos.wordpress.com/2018/04/19/a-single-header-generic-intrusive-avl-tree-in-ansi-c/
источник

M

MaxGraey in Compiler Development
Михаил Бахтерев
А зачем? Если можно взять язык со сборкой мусора, и не заморачиваться? Когда надо заморочиться за скорость и память, Rust вставляет препятствия, а когда не надо, на ЖабаСкрипте проще писать. И иногда быстрее. Мне не верите, вот другой usecase:

https://youtu.be/owcvg2YZ7Y8
Кстати был когда то давно такой челлендж переписать earcut (быстрый алгоритм триангуляции) написанный Агафонкиным для mapbox с JS на Rust (wasm) и AssemblyScript. Результаты вот: https://github.com/mapbox/mapbox-gl-js/issues/4835#issuecomment-415191951
Коротко - практически никаких преимуществ не дает, если код изначально нормально написан и оптимизирован)
источник

M

MaxGraey in Compiler Development
Я конечно уважаю Rust, но когда вижу очередную конференцию, где рассказывают как они переписали свою библиотеку / приложение с JS на Rust и получили ускорение в 30-50-100 раз реально удивляюсь. Это такой кликбейтише на самом деле. Потому что оказывается что они не просто переписали один-в-один, а тупо взяли другие библиотеки, с другими алгоритмами (а на Rust пишут программисты поопытнее все же чем JS программисты и хотя бы понимат немного в CS), потом добавили веб-воркеры, замеряли без прогрева js vm ну и конечно же получили буст в пиковой производительности=) но это еще далеко не значит, что это сильно вам поможет ускорить работу приложения в целом =)
источник

YS

Yuriy Syrovetskiy in Compiler Development
спасибо. выглядит страшно, но интересно
источник

M

MaxGraey in Compiler Development
Yuriy Syrovetskiy
спасибо. выглядит страшно, но интересно
то потому что
It avoids recursion, and doesn’t keep a pointer to the parent node – this saves space at the cost of code complexity.
источник

p

polunin.ai in Compiler Development
Михаил Бахтерев
Вы так пишете, будто на Rust не бывает багов :) Но... Ладно. Каждому - своё. Хорошо, что языков много и каждый волен выбирать себе мучение по предпочтениям :)
Такой баг точно невозможен
источник

ИЧ

Илья Чистяков in Compiler Development
почему девелоперы с крестов не переходят на раст? я вышел с этим вопросом в интернет, и тут один Ph.D пишет что это невозможно из-за несовместимости синтаксиса, он кстати и про фортран пишет, почему получилчось его победить

но вот по чатику не скажешь что всё так плохо, что думаете?
источник

А

Андрей in Compiler Development
потому что раст говно
источник

ИЧ

Илья Чистяков in Compiler Development
не, так-то всё говно, дело в чём-то другом
источник

YS

Yuriy Syrovetskiy in Compiler Development
Илья Чистяков
почему девелоперы с крестов не переходят на раст? я вышел с этим вопросом в интернет, и тут один Ph.D пишет что это невозможно из-за несовместимости синтаксиса, он кстати и про фортран пишет, почему получилчось его победить

но вот по чатику не скажешь что всё так плохо, что думаете?
несовместимость синтаксиса? чушь какая-то. таким доводом может отмахнуться только человек, знающий только 1 ЯП
источник