Разработчики анонимной сети Tor сформировали первый стабильный выпуск (1.0.0) проекта Arti, развивающего Tor-клиент, написанный на языке Rust. Выпуск 1.0 отмечен как пригодный для использования обычными пользователями и обеспечивающий тот же уровень конфиденциальности, юзабилити и стабильности, что и основная реализация на языке Си. Стабилизирован также API, предлагаемый для использования функциональности Arti в других приложениях. Код распространяется под лицензиями Apache 2.0 и MIT...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57723
раст на си писали
Вообще-то нет. На OCaml. Но потом заселфхостили и переписали на расте.
вообще-то да, ocalm написан на си, как и llvm
Логическая ошибка. Раст написан на раст. Чтобы прийти к утверждению, что "раст раньше был написан на ocaml, который написан на С, поэтому раст сейчас написан на С" нужно очень сильно удариться головой.Если бы у рыбы была шерсть, то в ней бы водились блохи, ага.
рад, что ты признал свою неправоту и то, что раст написан на си
Ну скинь код раста, написанный на С, поржом. Сумеешь отличить?)
https://github.com/thepowersgang/mrustc
Странно, а в описании написано что он на C++
> Логическая ошибка. Раст написан на раст.Особенно вон тот LLVMный кодогенератор к нему, без которого он бесполезен чуть более чем полностью.
>> Логическая ошибка. Раст написан на раст.
> Особенно вон тот LLVMный кодогенератор *пуууук-пуук-пук*https://github.com/bjorn3/rustc_codegen_cranelift
> Cranelift codegen backend for rust
> Rust 97.2% Shell 2.8%Попробуй еще раз, громче
> https://github.com/bjorn3/rustc_codegen_craneliftЭто судя по урле какой-то посторонний проект на левом ресурсе от стороннего хрена. Нюанс в том что это не дефолтное состояние дел и нельзя сказать что оригинал хруста написан на хрусте, когда там пдюсатый супер-либ на 60 мегов кодогенератором.
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ще раз, громче.
А таки референсный хруст генерит код плюсовым LLVM. Хоть там как тасуй, а факты штука упрямая.
OCaml не написан на си, звиняй.
А на чём?Ну, с одной стороны ты прав: большая часть компилятора на Ocaml.
С другой - нет: большая часть рантайма и байт-код интерпретатор на C.
А я бы посмотрел, как интерпретатор перепишут на безопасном языке. В текущей реализации читается файл байт-кода, для каждого опкода вычисляется адрес машинной команды соответствующей метки case и переписывается поверх опкода. При исполнении выполняется нестандартный для Си goto *ptr. Ну или оптимизация switch не производится, тогда работает медленнее.
Переписать можно хоть на брейнфаке, другой вопрос кому это будет потом нужно.
Я переписал на ассемблере AMD64, сравнил производительность с оригиналом, теперь могу говорить предметно о паре аспектов, а не только теоретизировать и разводить демагогию на отвлечённые темы, как некоторые.
> Я переписал на ассемблере AMD64, сравнил производительность с оригиналом, теперь могу говорить
> предметно о паре аспектов, а не только теоретизировать и разводить демагогию
> на отвлечённые темы, как некоторые.Про производительность никто и не говорил. Технически, даже питонист позорный может интерпретатор накорябать. То что это тормозное УГ нафиг не вперлось вопрос номер два. Впрочем, кмк, ассемблерная версия будет не сильно популярнее. А раз так найдите 10 отличий. Чем dead code отличается от dead code?
Так в производительности ВМ вся соль. Не понятно, как на Rust без unsafe добиться сравнимой с Си. Боюсь, что никак. Сама ВМ не такая и объёмная, но это не тот код, который пишется быстрее чем обдумывается. Как там Rust ускорит разработку, не понятно.
> Так в производительности ВМ вся соль.Лучшая 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 ускорит разработку, не понятно.
Да как обычно, переросточным стдлибом, лавры жабы покоя людям не дают.
>> Так в производительности ВМ вся соль.
> Лучшая VM - ее отсутствие. Хрустики это поняли, как и сишники.Тут ветка про OCaml. Там есть и компилятор в машинный код, но и интерпретатор оставили.
>> Не понятно, как на Rust без unsafe добиться сравнимой с Си.
> А в чем собственно проблема?Я описал выше в №111, что представляет из себя реализация ВМ OCaml на Си. Наверное, недостаточно понятно это сделал. В ответ предложили переписать на Брайнфаке - и так понятно, что отстанет по скорости.
> вообще-то да, ocalm написан на си, как и llvmВообще-то, раст написан на питоне. Пруф:
https://github.com/ShivamSarodia/ShivyC
> C compiler created in Python.
В названии опечаточка, там ShittyC конечно же должно быть.
Это называется "забутстрапили".
Си не написан на си. Все три популярных компилятора (gcc, clang, msvc) написаны на C++.Где теперь твой бог?
Но есть и компиляторы, написанные на C. Как минимум, tcc. Да и старые версии gcc в принципе ещё можно использовать.А ещё есть компилятор, написанный на scheme. Его написали в паре с простым интерпретатором scheme на C, чтобы обеспечить бутстрап языка C не зависимый от «больших» реализаций.
> Да и старые версии gcc в принципе ещё можно использовать.А ещё можно плакать, страдать, но продолжать давиться кактусами, как те мышки. Но зачем?
Столлман написал первые версии gcc на Паскале.
> Но есть и компиляторы, написанные на C. Как минимум, tcc. Да и
> старые версии gcc в принципе ещё можно использовать.
> А ещё есть компилятор, написанный на scheme.Но почему-то почти все пользуются софтом, собранным gcc/clang/msvc, нэ?
В gcc большая часть кодовой базы, внезапно, си. Но вообще для сишника плюсы подучить так то логично было бы, чтобы сочетать высокоуровневые конструкции с мощью низкоуровневого доступа сей. Хрустики это тоже пытаются, но сказать что у них получилось менее коряво чем у плюсеров - да, пожалуй, спорно. Единственное что у них реально хорошо это borrow checker. Остальное смесь корпоративного булшита и грабель.
> В gcc большая часть кодовой базы, внезапно, си.И поэтому плюсовая часть "не считается", ясно понятно.
> Хрустики это тоже пытаются, но сказать что у них получилось менее коряво чем у плюсеров - да,
> пожалуй, спорно. Единственное что у них реально хорошо это borrow checker.
> Остальное смесь корпоративного булшита и грабель.Какой великолепный, эталонный опеннетный онализ, с подробным сравнением, перечислением и разбором конкретных недостатков </сарказм>
Есть некоторая разница между "плюсовой частью" и "написано на плюсах". Хотя так то удобно не заметить 90+% сей и выпятить кусочки плюсоты. Почему-то пытаясь троллить сишников этим фактом. Очень странная идея, на сях там больше чем на плюсах, сильно больше. Так что сказать что оно на плюсах было бы вообще некорректно. На смеси сей и плюсов.
GCС по сей день написан "в основном на си". А до 4.5, чтоли, там только си и был, потом плюсы разрешили юзать. Умеренно весьма.
Ну на самом деле изначально компиляторы писали на тумблерах, потом, машинные коды, потом ассемблер, потом кросс ассемблер, потом Си, потом кросс Си, и уже потом все остальное
*ворчит по дедовски
Причем никто никогда не писал компиляторов на fortran, algol, cobol, ada, ну разве что в качестве учебных вещей. Потому что это мертвеые языки как и java, python и многое другое
фига се мертвые - Python в научном сообществе стандарт, на Джаве андроиды размовляют...
При всей мегапопулярности Питона и Джавы нельзя не отметить, что эти два языка далеки от идеала и должны умереть, чем раньше, тем лучше. Первый - из-за тормознутости и убогости языковых средств (ни ООП, ни ФП нельзя считать сколь-либо адекватной реализацией в Питоне пока что, увы). Второй - из-за громоздкости рантайма. То, что Джава в ОС Андроид основной ЯП - это жирный минус для последней: там, где конкурент легко обходится 4 гигами ОЗУ, Андроиду подавай 8 или даже 12 при прочих равных. Хотя нет, ещё следует отметить плохую отзывчивость программ на Андроиде по сравнению с конкурентом (роликов на Ютьюбе на эту тему навалом).
У всех языков и технологий есть свои преимущества и недостатки в конкретных областях применения. Для того они и эволюционируют и появляются новые, которые заставляют догонять или отмирать со временем. Питон при своей торморзнутости достаточно быстр для очень большого числа задач. И очень часто просто оборачивает сишные/растовые вызовы, давая писать на оочень высоком уровне поддерживаемый код. И в этом пока у него нет конкурентов, поэтому он и в топе во всех синтетических рейтингах. ООП достаточно хорош, ФП по построеннию слабый чтобы сильно снизить кривую вхождения. Для ведра использования жабы было грамотным стратегическим ходом, без которого система скорее всего бы не взлетела. Был симбиан, но практика показала что на плюсах писать надежный софт очень долго и дорого(да и не умеет почти никто). Джава же была выбрана объективно чтобы бороться с фрагментацией девайсов. Я не спорю что очень много недостатков есть и там и там, но у них есть достаточно преимуществ чтобы занимать текущие позиции заслуженно.
>чтобы занимать текущие позиции заслуженноЯ бы назвал это от безысходности, а не заслуженно.
Как угодно но на питоне только лабораторные макеты и имеют смысл. Остальное на нем получается... ну вот как лабораторный макет, кишками наружу и без корпуса, зато за час свинтили из того что было под рукой.
Ну то, что на Ada не писали компиляторов, очень сомнительно. Да и на Algol тоже. В своё время, Algol был, вполне себе, универсальным ЯП.
https://en.wikipedia.org/wiki/List_of_compilers
как найешь что то коммерческое на ada или algol сообщи научной обществености, а то мужики то незнают
Ada жива и процветает в сферах, куда вам, говнокодерам, путь закрыт.
ГОСТ 27831-88, ISO 8652-87 и MIL-STD-1815 никто не отменял.
на чём взяли тебя?
товарищ, тут вон давеча уже объяснили, что ГОСТ - поповское^Wэфесбешное слово. а вы еще какими-то исо и мил-стандартами кидаетесь. может вы того, засланный? и цифры какие-то после ГОСТ, не удивлюсь, если вы тайно посещаете товарища майора.
На сях таки и под примерно вон то самое пишут. На хрусте - они бы хотели, наверное, но у них все слишком волатильно даже для рекомендаций как кодать используя их нечто не прострелив себе пятки.
когда-то все было дыркой на перфокарте.
Дрыка - это такая квазичастица, что бы уйти от отрицательного заряда электрона в расчётах. А в перфокартах - отверстия.
Слово дырка может иметь очень много различных значений. Я применил его в прямом значении. Ваш синоним в данном контексте сужает значение моего высказывания.
Отверстие делает человек, а дырки случаются сами собой. Это упрощенно, если не углубляться в детали с тем Аноном выше. =)
"дырки случаются сами собой" - наверно их создал Бог.
> Дрыка - это такая квазичастицаЭкие вы абстракционисты-эксгибиционисты затейники...
Дырка пробивается случайно. А на перфокарте -- отверстие.
толковый словарь Вам в помощь.
Девочки, узбагойтесь. Всё написано на ассемблере.
> раст на си писалиДаже если бы это было так: какая, извините, разница?
Во-первых компиляторы в основном бутстрапят сами себя. В любой теории компиляторов всегда выделается глава на метациклический интерпретатор, то есть на интерпретатор языка, написанный на самом этом языке.
Во-вторых нет такого жёсткого требования, чтобы эталонная реализация компилятора/интерпретатора языка была написана на этом же языке, ибо с чего бы вдруг. Вон bash написан на Си. Программы на bash не наследуют проблемы Си, так что вполне очевидно, что это действительно другой язык. Притом нет никакого смысла писать интерпретатор bash на bash.
Это новость об Arti или о Rust?Три абзаца про арти, четыре про раст.
В оригинале еще больше расписано.
Это новость о переписывании всего на раст. Есть такое хайповое движение, называется Rewrite everything in Rust.
Это не хайповое движение. Это жестокая необходимость, увы, в силу дырявости программ на морально устаревшем языке C, с которой ничего не могут поделать ни стилистика программирования, ни санитайзеры, ни линтеры, ни прочие ухищрения, придуманные люди. Как было 70% ошибок некорректной работы с памятью, так и остаётся эта печальная статистика для более-менее крупных проектов (понятно, что в программах уровня hello world тяжело напортачить).
FF пытались переписать - не получилось.
В мазилле распил бабла и сокращение разработчиков, им не до переписывания.
А кто и что простите на хрусте вообще смог? А, через сколько там лет камасутры, вот, написали сильно обкоцаный вариант тора, не умеющий практически ничего из того что нужно для реального применения, зато пафоса развели - на десять версий обычного тора хватит.
>> Arti 0.0.1 — 29 Oct 2021
> А, через сколько там лет камасутры,Эталонный опеннетный онализ ...
> зато пафоса развели - на десять версий обычного тора хватит.Пафос и ЧСВ местных анонимов-знатоков-онализаторо наверное на миллион версий потянет, правда предъявить они не могут ни одной. Почему-то.
До 0.0.1 видите ли там потуги были еще лет пять до этого, просто не работало вообще никак. А, ну да, это неудобные факты, не будем считать, сразу сказки про время разработки и 90% и все такое сливаются куда-то :)
> До 0.0.1 видите ли там потуги были еще лет пять до этого,Да сразу 20, чо уж мелочиться.
> просто не работало вообще никак. А, ну да, это неудобные факты, не будем считать, сразу сказки
> <опять много бла-бла под видом "фактов" и 0 конкретики>
Можно посмотреть по комитам сколько там rust в дире основного дерева болтался. Если тогда оно еще не svn'ом еще было вообще, когда это все там стало свои щупальца запускать.
> Можно посмотреть по комитам сколько там rust в дире основного дерева болтался.Можно (правда, очередной опеннетный анализ "сказки про время разработки и 90%" сразу станет "онализом"), а можно и просто перестать балаболить - но ты ведь не сделаешь ни того, ни другого.
> Можно посмотреть по комитам сколько там rust в дире основного дерева болтался.Можно. Вот иди, поройся в коммитах и предоставь людям ссылку на обоснование своего тезиса.
Пока же твои заявления ничем не подтверждены, а у собеседника -- подтверждение легко ищется: https://gitlab.torproject.org/tpo/core/arti/-/tags
> До 0.0.1 видите ли там потуги были еще лет пять до этого,
> просто не работало вообще никак. А, ну да, это неудобные факты,
> не будем считать, сразу сказки про время разработки и 90% и
> все такое сливаются куда-то :)Первый коммит в Arti: 7 мая 2020го, 1605 строк. Минимальные наработки, явно черновые. Следовательно ты -- пустой балабол.
https://gitlab.torproject.org/tpo/core/arti/-/commit/bbcbf47...
А там сначала дира rust была прямо в основном дереве сишной. Впрочем, с такого эксперта по всему как ты - станется матчасть не знать.
> А там сначала дира rust была прямо в основном дереве сишной. Впрочем,
> с такого эксперта по всему как ты - станется матчасть не знать.Ну ты вон, такой знаток, что даже не знаешь, как считается время разработки (нет, совсем не по дате начала и конца).
10% это в бесконечно раз больше кода на расте, чем у онанимуса.
онанимус и не обязан писать на rust, на Си или на чём-другом.
онанимус даёт ценные указания как на самом деле надо писать программы
Жестокая необходимость для обезьянок не умеющих в программирование? Ну да, оказывается чтобы программировать надо учиться.Но раст на замену не подходит. К сожалению, прекрасную и нужную идею реализовывали такие же обезьянки, не умеющие в подумать прежде чем реализовывать. И как бы вам не рекламировали язык, все сделающий за вас - это не так, все равно придется учиться.
Расскажи вот это всё, что ты тут несёшь, программистам ядра Линукс, программистам Майкрософт, Гугла, Амазона, о великий опеннетный эксперт. А то ребята, поди, и не знают, что они обезьянки, не умеющие программировать. 🤣
Мамкин праграмист из села Кукуево думает, что работу надо оценивать по имени автора, а не по качеству работы?Отличная иллюстрация моего коммента выше.
О, великий Урри, д'Артаньян стоящий весь в белом!
Наш светоч в темном беспросветном мире быдлокодеров!
Тот, у которого ничего не падает!
Покажи нам как же нужно писать на си правильно!
Школяр Урри, живущий, видимо, в каком-то областном центре, и думающий, что по этой самой причине его умозаключения истинны (лол), тем не менее в элементарную логику, судя по всему, не умеет. Придётся разжевать.Упомянутые компании - лидеры рынка. И почему же? А потому что:
1. Набирают лучших доступных на рынке труда программистов.
2. Делают с их помощью лучшие на рынке ПО продукты. Что это означает? Это означает то, что они превосходят продукты конкурентов по основным характеристикам. Какие это характеристики? Скорость выхода на рынок, качество (соответствие ожиданиям пользователей, функциональные возможности, время реакции, минимальное количество ошибок и т.д.), цена.Видишь, как всё просто оказывается, мальчик из областного центра?
Ну, есть еще нюанс с монополиями, когда качество скатывается, а фирма не слишком теряет рынок (привет глювакая вин11).
Монополии (которые не естественные) обычно долго не живут. Вытесняют их с рынка новые "тигры", причём относительно быстро. А почему? А потому что свободного бабла на планете по разным оценкам от 10 до 25 триллионов зелени. То есть, инвесторов в новый неглючный востребованный продукт искать долго не придётся.
Тут вся фишка в том, что лидер рынка Гугл платил провинциальному школяру Урри за то, что тот кодил кодек на асме под ARM. Доказывать это, понятно, не буду, но я ему почему-то верю.
нет раста - нет проблем.
Но фишка в том что реализация на раст только появилась, а проблемы были задолго до...
С Растом будет ещё больше.
Зависимость от {google, amazon, ms} уже достаточно большая проблема как по мне.
Расскажи это Linux Foundation
> Расскажи это Linux FoundationНадеюсь, ты понимаешь, что "Этодругое!™©"
Как впрочем и
https://isocpp.org/wiki/faq/wg21
> a few of the individual members of the ISO C++ committee.
> Bryce Adelstein Lelbach (NVIDIA, Library Evolution Working Group chair)
> Matt Austern (Google, SG8 Concepts chair)
> Dean Michael Berris (Google)
> Hans Boehm (Google, SG5 Transactional Memory chair, SG1 Concurrency chair emeritus)
> Stephen D. Clamage (Oracle, PL22.16 chair emeritus)
В каком бы месте в C++ или Linux Foundation у вон тех был бы контроль над репами с сорцами пхаемыми по дефолту ALL'у? А в хрусте с их карго - репка в лапках "некоммерческого" фаундейшна, такая мелкая разница.
Кстати, если отложить смехуечки в сторону, Раст меняет мышление. Программировать на Си++ после раста довольно... волнительно. Вот если я хочу добавить объект в список — что произойдёт? Скорее всего, копирование, если есть конструктор копирования. На Расте это тоже можно либо явно с помощью x.clone(), либо неявно с помощью x.copy() [как на Си++]. Однако по-умолчанию компилятор просто передаст владение объектом списку (move semantics) и не даст больше ссылаться на сходную переменную.
* на исходную переменную.
Нету x.copy(), конечно. Есть https://doc.rust-lang.org/std/marker/trait.Copy.html
Современный ++ монструозен. Но при наличии опыта проблем с пониманием происходящего не возникает.
Что-то у писателей ядра с опытом CVEшки возникают регулярно.
Как это относится к сказанному мной выше?
Напрямую, если подумать.
Вообще-то создатели ядра на ++ не пишут. И к тому же - ну вы сделайте проект такой сложности на хоть там чем, посмотрим сколько CVE будет у вас. Вон там пыхтонисты и рубисты ухитряются сверкать RCE вулнами, "вторым за неделю", видимо, так можно было не только на сях.
Если имелся ввиду Линукс, то да, не пишут. И да, я в курсе, что ошибки в коде возникают не только и не столько из-за непонимания. Я пояснил свою мысль ниже в этой ветке. Проблема C++ - это undefined behavour. И вот из-за него и возникают порою ошибки с пониманием.
Ядро написано на Си, это раз, и возникают далеко не так часто, как ты пытаешься представить, это два.
> не так частоАхахахах. Сразу видно что человек не имеет никакого о ношения к ядерной разработке.
24 миллиона строк. одна сивиешка в пару месяцев.Деточка, ты только что на первый курс поступило, да?
> 24 миллиона строк. одна сивиешка в пару месяцев.
> Деточка, ты только что на первый курс поступило, да?Моя любимая рубрика "давай откроем git log":
$ git log --since=last-month | grep -cEi '(use*after*free|memory*corruption)'
88Ещё вопросы? :)
И сколько из этого фуфла - мержи по иерархии? Впрочем что с хрустиков взять, грепать они тоже не умеют :)
1,122,627 commitsТак что там про вопросы, одноизвилинное? Ты само смотрело что нагрепало?
--
еще и врет. смешало в кучу людей и коней
Ты что-то говорил про одну в пару месяцев :)
Даже при наличии опыта у людей иной раз всё-таки возникают проблемы с пониманием происходящего. Потому что undefined behavior - одна из "фишек" C++.
> Но при наличии опыта проблем с пониманием происходящего не возникает.А есть люди с такими умениями? Кроме пары опеннетовцев, конечно.
> Но при наличии опыта проблем с пониманием происходящего не возникает.Конечно. Так и с полётом на Ту-154 проблем не возникает при наличии опыта. Но на МС-21 лучше.
> Так и с полётом на Ту-154 проблем не возникает при наличии опыта.Огонь, мужик, огонь. Но ресурсом ты конечно с данным комментарием ошибся.
Для понимая прочих: Ту-154 очень не отзывчивая машина. Если интересно -- на ютубе сейчас много пилотов блоги ведут, можете погуглить.
Зато SSJ отзывчивый в мануальном режиме вышел, пилот чуть не так джойстик - и он об полосу как хряпнется, вплоть до стоек шасси пробивающих баки.
А в Расте списки интрузивные, или это уже не важно?
https://docs.rs/intrusive-collections/latest/intrusive_colle.../
> let mut list = LinkedList::new(TestAdapter::new());Так и представляю себе что будет когда вебмакаки засунут это в кернел и обнаружат что, оказывается, not enough memory для ядра штатная ситуация и совсем не повод для паники.
>> let mut list = LinkedList::new(TestAdapter::new());
> Так и представляю себе что будет когда вебмакаки засунут это в кернелНе надейся, никто тебя туда не пустит.
> и обнаружат что, оказывается, not enough memory для ядра штатная ситуация
Интересно, когда опеннетные эксперты обнаружат, что для ядерной разработки не испоьзуют юзерспейсные версии либ, а пишут свои ...
> Интересно, когда опеннетные эксперты обнаружат, что для ядерной разработки не испоьзуют
> юзерспейсные версии либ, а пишут свои ...шо, апять все с нуля переписывать? ради модномолодежного (уже нет) языка? все миллионы строк?
а как же крейты, расты, все в одной коробке?
>> Интересно, когда опеннетные эксперты обнаружат, что для ядерной разработки не испоьзуют
>> юзерспейсные версии либ, а пишут свои ...
> шо, апять все с нуля переписывать? ради модномолодежного (уже нет) языка? все
> миллионы строк?Шо, ты не знал что в ядре не применеяют юзерспейсные либы? Ну, типичный эксперт опеннета.
И какие миллионы строк, о чем ты бредишь?
Деточка, если новый язык позволит свести на нет ошибки работы с памятью, чей удельный вес в коде достигает 70 процентов от общего количества ошибок, то для софта, критически важного для бизнеса, это может сэкономить миллионы, а иной раз и миллиарды долларов. Вполне себе веский повод, чтобы задуматься о переписывании.
> Не надейся, никто тебя туда не пустит.А я никого и не спрашиваю можно ли. Просто беру и делаю.
> Интересно, когда опеннетные эксперты обнаружат, что для ядерной разработки не испоьзуют
> юзерспейсные версии либ, а пишут свои ...И именно поэтому у них там какая уже по счету версия патчей? Я со счета немного сбился, извните. К тому же весь пойнт пройапывается - по сути 2 разных субдиалекта получается.
>>> Так и представляю себе что будет когда вебмакаки засунут это в кернел
>> Не надейся, никто тебя туда не пустит.
> А я никого и не спрашиваю можно ли. Просто беру и делаю.А ты самокритичный, че.
>> Интересно, когда опеннетные эксперты обнаружат, что для ядерной разработки не испоьзуют
>> юзерспейсные версии либ, а пишут свои ...
> И именно поэтому у них там какая уже по счету версия патчей? Я со счета немного сбился, извните.Опеннетный "эксперт" считает, что ядерная "замена" stdlib никогда не переписывалась и не улучшалась?
> К тому же весь пойнт пройапывается
Но только в головах вебманки, для которых что ядро, что юзерспейс - все едино.
> - по сути 2 разных субдиалекта получается.Разве что вебманки будет считать библиотеку "субдиалектом". Ну на то они и вебманки.
> А ты самокритичный, че.Не без этого. И кстати то что часть патчей у меня только на локалхосте и в апстрим не продвинута может быть как багом, так и фичой. Неоторым патчам в апстриме вообще быть не надлежит.
> Опеннетный "эксперт" считает, что ядерная "замена" stdlib никогда не переписывалась и не
> улучшалась?Опеннетный эксперт считает что 2 способа делать 1 и того же ведет к развалу ЯП на субдиалекты и является по сути дурным костылем. Сразу о таких вещах подумать было не судьба? И вообще модель с обработкой факапов "давайте валиться в панику" довольно спорная, имхо.
> Но только в головах вебманки, для которых что ядро, что юзерспейс - все едино.
Я что угодно, но вот вебманки - это врядли, даже если и умею немного делать вебмордочки :)))
> Разве что вебманки будет считать библиотеку "субдиалектом". Ну на то они и вебманки.
Тут не хватает фидошной подписи Е ЛАМЕР! СОФТ АСТРОЕ!
>> let mut list = LinkedList::new(TestAdapter::new());
> Так и представляю себе что будет когда вебмакаки засунут это в кернел
> и обнаружат что, оказывается, not enough memory для ядра штатная ситуация
> и совсем не повод для паники.Так и представляю себе что будет когда снобы обнаружат, что стек, оказывается, не бесконечный.
То они добавят try методы, как уже сделали для collcections :)
> То они добавят try методы, как уже сделали для collcections :)А это типа не костыль, типа не приход к тому же что и сишники, и не распадение яп на 2 субдиалекта? :)
>> То они добавят try методы, как уже сделали для collcections :)
> А это типа не костыль, типа не приход к тому же что
> и сишники, и не распадение яп на 2 субдиалекта? :)Нет, это просто необразованность/каша в голове нахватавшегося чего-то по верхушкам очередного "эксперта" с Ценным Мнением.
> А это типа не костыль, типа не приход к тому же что и сишники, и не распадение яп на 2 субдиалекта? :)Какие субдиалекты?
FooBar::new();
FooBar::try_new()?;Все.
> Какие субдиалекты?
> FooBar::new();
> FooBar::try_new()?;Ну вот такие. Второго варианта вообще не было изначально, и воткнуть прямо в название характер обработки ошибок - ну, это, конечно, да. А теперь мы подумаем что модели реакции на факапы разные бывают, типа повторить 5 раз с задержкой в надежде что память все же освободится, могу себе представить как хрустики это сделают. ::try5delay_new сколхозят? :)
Есть две функции, одна вернет ошибку, вторая запаникует. Какие два диалекта, заканчивай шизофазировать.
Спасибо.// Since these are shared references, any changes in the values are reflected in
// the list.«Однако по-умолчанию компилятор просто передаст владение объектом списку (move semantics) и не даст больше ссылаться на сходную переменную.»
Java так мышление меняет уже лет 20, если не больше.
Было интересно посмотреть на результаты аудита сего кода, вот тогда и станет ясно, насколько раст безопасен
>если в коде не используются блоки "unsafe".Если, да кабы, то во рту росли бы грибы. Если в коде не используются блоки unsafe, то они используются в зависимостях. А аудит дерева зависимостей, и особенно взаимодействие unsafe-блоков в зависимости с внешним кодом хрен сделаешь.
Очень известный плагин cargo-geiger. Устанавливается командой cargo install cargo-geiger
https://user-images.githubusercontent.com/3704611/53132247-8...
> Устанавливается командой cargo install cargo-geigerИз репов контролируемых MS/amazon/google? Вот спасибо.
> особенно взаимодействие unsafe-блоков в зависимости с внешним кодом хрен сделаешьЕсли unsafe блок ломается при неправильном вызове кода - значит это неправильный unsafe блок.
А так - большинство популярных библиотек с unsafe и так прошли аудит, а большая часть кода unsafe и не использует.
раст не решает проблемы утечек памяти, значит в любой момент может быть прибит OOM или зафризит систему
А разве какой-то язык решает проблему OOM?
Причём прибит по ООМ может быть X-сервер или совершенно левая программа, в которой ошибки нет, но пгосто жрёт больше всех.А на счёт "зафризит систему". Юзай винду, линукс непригодная для работы система, в ней за 20 лет 12309 так и не соизволили пофиксить. Если бы на винде такое было, лицензию на винду вообще никто бы не купил.
Ядро 5.15. При сборке образа утилитами e2fsdroid и mke2fs системой пользоваться невозможно, это сущий ад. Причем что раньше (до 5.15) была эта проблема, что сейчас.
Справедливости ради на винде он тоже присутствует, но систему так не вешает.
> Причём прибит по ООМ может быть X-сервер или совершенно левая программа,Вообще есть такая штука как oom score adjust. И в современных дистрах иксы обычно не выносит. Если у вас самосбор или вы сами наруливали это - выпрямите руки, даже вебманки из убунты уже это освоили прописывать.
> в ней за 20 лет 12309 так и не соизволили пофиксить.
Абсолютно некомпетентное в вопросе заявление.
> лицензию на винду вообще никто бы не купил.
Поэтому они стали предустановленую впаривать как "часть компа" в стоимости оного наезжая на тех кто компы без предустановки продает что пираси способствуют. Мафозная схема как есть. Хорошо работать для этого оси не требуется. Да и вообще - винда дикий тормоз и убожество в работе с файлами, в лине одни и те же операции в разы быстрее, пока каких-то клоунов не попускает по доисторическому багу.
> наезжая на тех кто компы без предустановки продает что пираси способствуютПредустанавливаем ubuntu/mint/manjaro и никаких проблем. Некоторые производители так и делают
>Вообще есть такая штука как oom score adjust.А толку, если ООМ-киллер всё гавно тупой и прибивает всё подряд. Брузер выжрал память, потому что менеджер памяти в линуксе и/или его станд. библиотеке говно, но газмазал по нескольким процессам - ну значит убьют не браузер, а например иксы, плазму, или программы в вайн.
> в современных дистрах иксы обычно не выносит.
Каждый день иксы падают, если какое-нибудь дерьмо, типа clangd или firefox, выжирает память. Но firefox не виноват - на винде 7 с куда меньшим количеством оперативы всё прекрасно работает.
>Абсолютно некомпетентное в вопросе заявление.
Закрыть баг - не значит устранить проблему.
>Поэтому они стали предустановленую впаривать как "часть компа" в стоимости оного наезжая на тех кто компы без предустановки продает что пираси способствуют.
Ну обычным людям нужна только винда, всё остальное они в гробу видели. Поэтому им предлагают лицензионную винду с большой скидкой при покупке устройства. Не хочешь - можешь отказаться. Но, учитывая размер скидки, отказаться сложно.
> винде 7 с куда меньшим количеством оперативы всё прекрасно работает.На винде по дефолту включается своп, и выключать его не рекомендуется, т.к нет оверкоммита
>>Вообще есть такая штука как oom score adjust.
> А толку, если ООМ-киллер всё гавно тупой и прибивает всё подряд. Брузер
> выжрал память, потому что менеджер памяти в линуксе и/или его станд.
> библиотеке говно, но газмазал по нескольким процессам - ну значит убьют
> не браузер, а например иксы, плазму, или программы в вайн.Неужели у лапчатых есть всякие аджуст скоры и юзерспейсные обработчики oom на питоне, но нет простейшего аналога
> man protect – protect processes from being killed when swap space is exhausted
> EXAMPLES
> Mark the Xorg server as protected:
> pgrep Xorg | xargs protect -p
>
> А толку, если ООМ-киллер всё гавно тупой и прибивает всё подряд.С правильной развесовкой OOM score он таки критичные процессы не прибивает. И лично у меня он таки обычно гасит весьма метко и вот именно текущих жирдяев, типа браузеров всяких и прочей блоатвари, которым пуля в лоб как раз то что доктор и прописал. Жаль что на кодеров этого счастья и сайтов благодать не распостраняется, за ними тоже следовало бы зайти.
Если не понятно как это делать - см убунты и прочих, они это умеют, если кто сам ж@порукий.
> Брузер выжрал память, потому что менеджер памяти в линуксе и/или его станд.
> библиотеке говно,В линуксе менеджер памяти и либы получше чем у некоторых уж давно. Да и кернел тоже, поэтому у меня воооооон тот проект в разы быстрее виндов там билдится, так то. И этот ваш ReFS (который десктопным хомячкам вообще отпилили от мегажабы), на фоне btrfs'а лишь жалкий недоносок.
А билдануть в маздайке что-то с десктопный линукскернел размером? Где только на запись около 250К файлов будет? Да там даже туповэйтить на один только листинг и скан этой иерархии помереть от старости можно, о том чтобы эффективно ворочать проект такого размера речь в принципе не пойдет.
> но газмазал по нескольким процессам - ну значит убьют
> не браузер, а например иксы, плазму, или программы в вайн.Да пиндеж, у меня стабильно правильных жиртрестов отстреливает. И еще в лине можно oom вручную вызывать через alt-sysrq, так что туповэйтить на вставшую колом систему 5 минут пока своп закончится или пытаться заниматься пошаговой стратегией в гуйном таскменеджере прорисовывающем вкладку минуту - не обязательно.
У любой системы видите ли есть свои сильные стороны. Вы ими пользоваться в лине не научились, думая что это такой себе маздай. А я понял что случаи разные бывают и в умелых руках линух куда как мощнее.
> Каждый день иксы падают, если какое-нибудь дерьмо, типа clangd или firefox, выжирает память.
(глядя на аптайм 2 месяца) да ну ладно?! Может, это все же самосбор или арч какой, где предполагалось что юзер компетентен в вопросе, а оказалось что он ламак? А, в винде аптайма 2 месяца не бывало никогда - видеодрова там если хоть какие-то гамезы запускать мрут за неделю-две. И кстати саппорт маздая и производителя проприетарного драйвера показали себя бесполезняшками, полгода делали мозг а проблему решить не смогли. Зато в линухе подобные случаи решаются влет если я готов к продвинутым операциям. Там и диагностику собрать сильно проще и очевиднее, и живые девы - воон там, под рукой, весьма эффективно все подобные баги аннулировали. Мне так больше нравится.
> Но firefox не виноват - на винде 7 с куда меньшим количеством оперативы
> всё прекрасно работает.Я его на 2 гигах гонял. Даже полутора в виртуалке. Ну даже не знаю куда меньше, на тетрисе китайском чтоли запустить?
>>Абсолютно некомпетентное в вопросе заявление.
> Закрыть баг - не значит устранить проблему.Даже если какой-то баг похож на вид - это совершенно не означает что это тот же самый баг. Представляете?!
> Ну обычным людям нужна только винда, всё остальное они в гробу видели.
Ахз, эн чайников были рады когда я им обычный дебиан или убунту понаставил. Ни вам вирусов (а откуда?), древнее железо сильно лучше работает, да еще без тантров с скачкой и установкой дров и каким там еще камланием если вдруг что пойдет не так.
> Поэтому им предлагают лицензионную винду с большой скидкой при покупке устройства.
> Не хочешь - можешь отказаться. Но, учитывая размер скидки, отказаться сложно.Лично я специально купил себе системы без винды, еще не хватало платить за профак времени на ее выколупывание. Пользоваться такой операционкой в мои планы, разумеется, не входит - меня не устраивает взаимодействие с компьютером с эффективностью домохозяйки. А все что сверх того в винде крайне мучительно и криво. Да еще всякие онлайнакаунты, активации, подписи дров. Вот мне приболело ослиное позволение майкрософта спрашивать на каждый пшик. А в лине я сам себе ауторити, ключ на подпись модулей ядра - вот лично мой. Поэтому хакер и майкрософт на пару выкурят бамбук, а самому себе я подпишу все что посчитаю нужным. Хорошо быть хозяином в своей системе...
>Излишняя требовательность компилятора rustc, отмечаемая некоторыми как недостаток, на деле оказалась благом, так как если код компилируется и проходит тесты, значительно повышается вероятность его корректности.Я тоже это заметил, когда начал писать на расте. Программа компилируется ... и либо сразу работает, без отладки сигсегвов, либо сразу паникует, сообщив, что не так.
как и любая другая программа. ты только что начал программировать вообще, а не именно на расте
Это просто ты на C++ и особенно на C не программировал. В C можно 3 часа отлаживать один сигсегв, чтобы потом выяснить, что C не проверяет типы указателей при вызове функций и что у тебя либо местами перепутаны 2 указателя на 2 структуры, либо в функцию вообще передана левая хрень. В плюсах с этим получше. Либо обнаружить, что код-то выглядит хорошо, но в маросах в лучшем случае дрянь по типу #define PI (3.14 + random() * 0.01) // happy debugging, bastards.
> C не проверяет типы указателей при вызове функцийЭто что за компилятор такой?
>#define PI (3.14 + random() * 0.01) // happy debugging, bastardsЯ не программист от слова совсем. Без подкола, поясни, плз, в чем здесь засада?
Засада в том, что написавший это нехороший человек "переопределяет" константу PI и все результаты будут чуть плавать на значение random()*0.01.
Засада в том, что стандарт мало кто читает, чем много кто злоупотребляет. "Переопределять" макрос нельзя.6.10.3/2
An identifier currently defined as an object-like macro shall not be redefined by another #define
preprocessing directive unless the second definition is an object-like macro definition and the two
replacement lists are identical. Likewise, an identifier currently defined as a function-like macro
shall not be redefined by another #define preprocessing directive unless the second definition is a
function-like macro definition that has the same number and spelling of parameters, and the two
replacement lists are identical.
> shall notЭто переводится не как "не может быть", а как "не должен быть". Программ, злоупотребляющих парой #undef + #define полно.
>> shall not
> Это переводится не как "не может быть", а как "не должен быть".В случае стандарта оно формализовано вот так:
4. Conformance
1 In this International Standard, “shall” is to be interpreted as a requirement on an implementation or on a program; conversely, “shall not” is to be interpreted as a prohibition.То есть запрет. Далее можно начать теоретизировать на тему UB, но лучше запустить транслятор и посмотреть, не напишет ли он чего. Потому что если он выдаст диагностику, то теоретика сразу будет видно.
> Программ, злоупотребляющих парой #undef + #define полно.
Так это другой случай. В примере нет #undef.
> Это переводится не как "не может быть", а как "не должен быть".
> Программ, злоупотребляющих парой #undef + #define полно.ЧСХ у компилеров есть варнинги на эту тему. Вот как раз чтобы там где это и правда важно - не откушать креатива. А если ты на варнинги и опции статического анализа забивал - какая разница что за ЯП? Пофигист даже с питоном RCE сделает.
А много больших и полезных программ существует, которые компилируются без единого варнинга (если их не глушить динамитом конечно)? А то я компилирую себе ядро, месу и вайн (остальное с апстрима беру) - в каждом из них gcc сыпет предупреждениями.
>нехороший человек "переопределяет" константуНеужели невозможно на этапе компиляции запретить redefine уже определенных констант?
>>нехороший человек "переопределяет" константу
> Неужели невозможно на этапе компиляции запретить redefine уже определенных констант?В C препроцессор работает до концепляции :)
> В C препроцессор работает до концепляции :)Тем не менее, в gcc каком есть опции на эту тему. А еще - только подумайте, есть статические анализаторы, они вообще позволяют мутный код на чистую воду выводить только в путь. И вообще-то качественный код переживает пуск на нем статических анализеров в придирчивом режиме. А если вы это не пробовали - ну значит и качество кода вас не сильно интересовало, на что тогда жаловаться? То что гамнокодом могут накормить - ни разу не новость.
> Тем не менее, в gcc каком есть опции на эту тему.Какие опции, родное сердце? Препроцессор просто заменяет одну строчку на другую строчку. Причем не всегда синтаксически валидную строчку.
> А еще - только подумайте, есть статические анализаторы, они вообще позволяют мутный код на чистую воду выводить только в путь.
С болью, страданиями и кучей false positive.
> И вообще-то качественный код переживает пуск на нем статических анализеров в придирчивом режиме.
Линуксовое ядро регулярно прогоняется через Coverity. Кучу тупых багов это не отменяет.
Будешь дальше гнать лажу - придётся применить к тебе препроцессор.
> Будешь дальше гнать лажу - придётся применить к тебе препроцессор.Самое нелепое, что у nooby подгорело и он меня заблокировал :D
>>нехороший человек "переопределяет" константу
> Неужели невозможно на этапе компиляции запретить redefine уже определенных констант?Поскольку выше ответил тролль и любитель мракобесия Ананимус, вот правильный ответ:
$ cat macro.c
#define PI 1
#define PI 2$ gcc macro.c
macro.c:2: предупреждение: «PI» переопределён
2 | #define PI 2
|
macro.c:1: замечание: это расположение предыдущего определения
1 | #define PI 1
|
Если добавить ключ -Werror, то вместо предупреждения будет ошибка.
>>нехороший человек "переопределяет" константу
> Неужели невозможно на этапе компиляции запретить redefine уже определенных констант?n00by пытается казаться умным, но у него не получается:
#define FOOBAR пиписька
#undef FOOBAR
#define FOOBAR большая_пиписькаint
main(void)
{
FOOBAR;
}n00by, перестань позориться пожалуйста.
>> #define
>> #define
> #define
> #undef
> #define
> гы лол я самый умныйВот хорошо видна гнусная демагогия, какую любят друзья мракобесия - добавил #undef и переложил с больной головы на здоровую.
Если три часа отлаживаете - то обычно дело не в языке, а том что глаз замылился. Через 30-60 минут стоит переключиться на что-то другое, в итоге время сэкономите.
>Если три часа отлаживаете - то обычно дело не в языке, а том что глаз замылился.я как-то месяца три ловил логическую ошибку на плюсах из-за которой супер редко случался выход за границы массива. случалась она не в отладчике есно, а только в проде. ну и чё там си обычно пишет (за давностью лет не помню), ошибка обращения к памяти 0x34ee5345ff... даже непонятно в чем суть ошибки.
> пишет (за давностью лет не помню), ошибка обращения к памяти 0x34ee5345ff...
> даже непонятно в чем суть ошибки.Поэтому культурные люди со временем учатся в юнит-тесты, test driven development и fuzzing. Это кстати не только на сях полезно так то. Особенно в сетевом и т.п. софте. Ремоты же могут что угодно слать. Те за кого "яп подумает" узнают чем это чревато сложным способом.
Ага, а потом эти люди получают кучу говнокода, который способен проходить тесты, но изменения резко не приветствуются.
> Ага, а потом эти люди получают кучу говнокода, который способен проходить тесты,
> но изменения резко не приветствуются.Тебя что, тесты с комитом послали? Ну извини, может быть, твой код был не так уж и хорош как ты себе это возомнил? У людей видите ли психология, свое д@рьмо не пахнет :). А машинам, вот, пофиг - они железные и поэтому мой код и код другого анонимуса обругают совершенно одинаково.
Вы же при этом не пялились в отладчик всё это время, а писали «не воспроизводится». Я ловил ошибки, когда компилятор с определёнными ключами генерировал мусор, так что не очень разделяю восторги некоторых.
> Вы же при этом не пялились в отладчик всё это время, а
> писали «не воспроизводится». Я ловил ошибки, когда компилятор с определёнными
> ключами генерировал мусор, так что не очень разделяю восторги некоторых.Более того - о том что процесс видите ли можно под дебагером запустить он видимо тоже не знал. При том в линухе например GDB даже опосля на ходу можно приаттачить к процессу, и сам по себе он вообще и ресурсов особо не жрет, и не мешает ничему этакому. Так что если он пару дней в фоне и повисит - да и хрен с ним. А когда наконец упадет можно уже с пониманием дела состояние процесса поковырять, узнав кто там по этому адресу что хотел и почему вышел факап.
Нет, дело в языке. C++ о таком предупреждает на этапе компиляции в вибе error, а си - проглатывает.
Да хоть в HTML, не надо ничего три часа отлаживать, когда на то нет веских оснований. Академический час 45 минут, перерывы, даже фильм в среднем полтора часа - всё это не на пустом месте придумано. Если это неизвестно и не понятно интуитивно, то возникает вопрос, а на своём ли месте человек, кто допустил Вас до отладки.
> Академический час 45 минут, перерывы, даже фильм в среднем полтора часа - всё это не на пустом месте придумано.Расчёт на среднестатистическую психику, для которой удерживать внимание дольше 15 минут сложно, а целый час невозможно.
В вузы идут не среднестатистические. Но даже Бог на 7й день отдыхал.
> В вузы идут не среднестатистические. Но даже Бог на 7й день отдыхал.Ват? У нас 32% граждан с высшим образованием.
>> В вузы идут не среднестатистические. Но даже Бог на 7й день отдыхал.
> Ват? У нас 32% граждан с высшим образованием.Что там у вас за высшее, когда не слышали про нормальное распределение? Где - можете не отвечать, оно и так понятно и уже не актуально.
> Что там у вас за высшее, когда не слышали про нормальное распределение? Где - можете не отвечать, оно и так понятно и уже не актуально.На какой именно глобус ты пытаешься тут нормальное распределение натянуть, прости?
>> Что там у вас за высшее, когда не слышали про нормальное распределение? Где - можете не отвечать, оно и так понятно и уже не актуально.
> На какой именно глобус ты пытаешься тут нормальное распределение натянуть, прости?То есть высшего у тебя нет. Так, галлюцинации с глобусом. Видать со вчера не отпустило.
>> 3 часа отлаживать один сигсегвА собрать отладочную версию, чтоб само показало где... нет.. тольлько харкор.
>> C не проверяет типы указателей при вызове
Это смотря в каком стандарте, и с каким опциями собирать.
Опять же, для большего веселья обязательно отключить поедупреждения.>>В плюсах с этим получше
Так можно настроить, что б и Си более строго проверял типы, и противился компиляции кода в морально устаревшем стиле.
>>#define
Это инструмент позволяющий "прострелить себе ногу", хочешь простреливай, не хочешь, так используй более безопасные средства, и в c++ тем более.
>>> 3 часа отлаживать один сигсегв
> А собрать отладочную версию, чтоб само показало где... нет.. тольлько харкор.В ядре уже несколько лет отлавливают порчу памяти при использовании мелланоксовского драйвера. Там гонка, которая портит SLAB. Либо не воспроизводится совсем, либо по пять раз подряд. Отловить до сих пор не могут.
Если весь Тор будет написан на Раст, у растофилов будет первый реальный вин
это будет эпик фейл
В лагере воинов борьбы против Раста? Ну да, с этим трудно не согласиться.
у тех, про кого написано, учись читать
Я не телепат, мысли читать не умею. А где этому можно научиться, о великий чтец с Опеннета?
Ты сначала букварь научись читать, потом за мысли будешь хвататься.
Да фейл же будет, раст же платформы не поддерживает.
Например, какие?
ща тебе накидают всяких или маргинальных платформ на полторы калеки, или древних как фекалоид мамонта, или одновременно и первых и вторых
Тогда я спрошу, зачем им на этих платформах Tor. Ведь с высокой вероятностью его на них никогда и не было.
Исключительно чтобы сказать "вот поэтому ваш раст ненужон!"
Это примерно как аргументы "низя писать драйверы на раст! он нивсе платформы поддерживает!" для железок, которые рассчитаны только на x86 и arm))
Я возражу примерно следующим образом. Если Tor-а никогда не было на этих платформах, значит, Tor не нужен на этих платформах. Значит, Rust не создаёт никаких проблем пользователям этих платформ.Собственно, ситуация с драйверами - та же примерно. Если на платформе A никогда не было устройства B, чей драйвер сейчас написан на Rust, значит, никто не пострадал и нет смысла воевать против Rust.
Ты не понял.
Смысл в том чтобы хейтить Раст и устраивать срач!
Поэтому если нужная причина не находится, то она придумывается, сова натягивается на глобус и мы получаем 100-200+ комментов обсуждения почти на каждой новости про этот язык.
Да всё я понял. Давно уже здесь.
Забавно, что в оригинале статьи авторы радуются, что упростилась поддержка винды и прочей дичи, типа андроида с айосью. Вот у сишников рванёт, когда благодаря расту тор появится на большем количестве платформ.
Отлично, а теперь подождём немного и узнаем, действительно ли раст так хорош в плане безопасной работы с памятью или это очередной распиаренный буллшит.
Молодец, кинул-таки какашку в нашу сторону, не упустил возможность. А если в Arti всё пойдёт хорошо, ты же извинишься и признаешь свою неправоту? Конечно, нет! Хейтерки же гнилые люди по определению: радуются неудачам, молчат про победы.
> Молодец, кинул-таки какашку в нашу сторону, не упустил возможность. А если в
> Arti всё пойдёт хорошо, ты же извинишься и признаешь свою неправоту?
> Конечно, нет! Хейтерки же гнилые люди по определению: радуются неудачам, молчат
> про победы.Мой хейт основан на моём опыте - если что-то слишком активно пиарят и пропихивают, то это что-то оказывается дерьмом в большинстве случаев, поэтому заранее я негативно настроен к чему-то новому. Однако, в комментарии выше я не пишу, что раст говно, а предлагаю подождать и посмотреть, как дела обстоят на самом деле, поэтому твои обвинения беспочвенны.
Смартфоны с самого начала тоже активно пиарили, и теперь смарты - говно? Ну, возможно...
> Смартфоны с самого начала тоже активно пиарили, и теперь смарты - говно?
> Ну, возможно...А разве нет? После окончания срока поддержки довольно мощное железо отправляется остаётся без обновлений ибо вендорлок. А потом они начинают кукарекать про кризис полупроводников...
То уже из другой оперы)
>таких как протокол управления перегрузкой (RTT Congestion Control)Штатный бэкдор для модуляции пропускной способности третьими лицами с целью записи сигнала в пропускную способность с целью его считывания на сторожевом/выходном узле?
>удобными библиотеками бэкдоровПофикшено.
>В версии 2.0 ожидаетсячто Васюки переименуют в Новую Москву, а Москву - в Старые Васюки.
Я за, всегда будоражила данная идея:)
Почему все считают что наделав (по их мнению) идеального софта и получив скалеоз - больше шансов заработать на заветный дошик ? Пишите говнокод посоны, за его неоднократное переделывание получить корку хлеба куда более реалистично.
Так оно и происходит во имя святого грааля новояза. Вообще либернутым все новое обязательно лучше старого. А то что оно по логике не пролезает, так через задницу затолкают. Мол типа сморите посоны мы тут дело делаем офигеть какое важное. Црушникам жизнь портим. Сновден одобряэ. Что-то фаерфокс нифига не полностью на растишке.
>Из недостатков выделяется большой размер результирующих сборок - так как стандартная библиотека Rust не поставляется в системах по умолчанию, её приходится включать в предлагаемые для загрузки пакеты.Стандартная библиотекак как раз присутствует в пакетах. А вот карго-высерные статически слинкованные библиотеки к каждому приложению компилируются и оптимизируются отдельно, в языке механизм фич есть, и в зависимости от включённыз фич в зависимости нужно препроцессором добавлять код в программы, использующие зависимости, иначе либо ошибка компиляции, либо panic! в рантайме.
В расте библиотеки фундаментально непригодны для использования в каком либо ином виде, кроме как статическая линковка.
Это сказано про крейты, а не библиотеки. Крейты для этого и предназначены, чтобы их статически линковать - делить одни и те же модули между разными проектами. Но никто не мешает сделать вам динамическую библиотеку и использовать ее.
В треде прямо неприязнь какая-то к людям, что хуже чем надо пишут на C и достаточно нормально на rust.Да пусть хоть на чем пишут и радуются, если это решает их проблемы.
Маленькое уточнение. Не обязательно эти люди пишут хуже, чем надо на C. Вполне возможно, что эти люди просто наконец-то осознали, как убог язык C в наши дни, и что пора наконец-то его поменять на что-то более адекватное.
Не обязательно эти люди пишут хуже, чем надо на C. - новость о проблемах, с которыми люди столкнулись во время разработки и которые слава богу удалось уменьшить сменой языка.осознали, как убог язык C в наши дни - главная проблема любого языка программирования в наши дни это ты. потому что ты пишешь на любом языке программирования глючное говно.
>потому что ты пишешь на любом языке программирования глючное говноРазница в количестве, всё-таки. Если язык А позволяет создать продукт с меньшим количеством глюков по сравнению с языком Б при прочих равных, то очевидно, что язык Б пора выкидывать на свалку.
Если язык А позволяет создать продукт с меньшим количеством глюков по сравнению с языком Б - как Вы ловко начали говорить за всех. Я точно пишу код на С с меньшим числом проблем по сравнению с Rust. Это я уже выяснил. Дальше-то что? Rust на свалку выкидывать?На мой взгляд если человеку нравится писать на любом языке и все радуются от результата, то пусть дальше пишет на том, что ему там нравится.
О да! Вот он настоящий программист™. Ядро линукса ждет тебя, а то слишком много дыр в последнее время.
Ну или ты просто настолько фигово пишешь на раст, что любая проблема на си получается лучше?> и все радуются от результата
Вот с этого места начинаются проблемы. Я как-то совсем не радуюсь когда сервак ломают через zero-day vulnerability. И тысячи других людей тоже. Поэтому они просят - или пиши хорошо, или меняй инструмент.
что любая проблема на си получается лучше? - я начал писать на С когда rust еще не было. Скорее всего было бы странно, если бы я писал на rust лучше чем на С.
Но я проверил. Я пишу на С лучше, быстрее и с меньшим числом проблем.Поэтому они просят - или пиши хорошо, или меняй инструмент. - у тебя есть уверенность что сменив инструмент лучше станет? Все возьмутся за руки и начнут резко писать лучше? По моему опыту будет вагон костылей и unsafe чтобы обойти ограничения языка.
> Все возьмутся за руки и начнут резко писать лучше?Нет, но зато будут значительно реже за границы массивов вылезать.
Есть С++, Джава, Хаскель. Че вас именно от си то так пригорает?
>> В треде прямо неприязнь какая-то к людям, что хуже чем надо пишут на C и достаточно нормально на rust.Есть С++, Джава, Хаскель. Че вас именно от упоминания раста то так пригорает, что дальше не читаете, а бросаетесь сразу комментировать?
>>> Вполне возможно, что эти люди просто наконец-то осознали, как убог язык C в наши дни, и что пора наконец-то его поменять на что-то более адекватное.
>> Есть С++, Джава, Хаскель. Че вас именно от си то так пригорает?Ответа на вопрос, я так понимаю, не будет? Ничего неожиданного.
А чё ты решил, что у кого-то пригорает? Просто Си - это язык-динозавр, явно не отвечающий современным потребностям из мира ПО. Пора на заслуженный отдых. C++ туда же, кстати, давным-давно пора отправить, но по другим причинам - принципиально неустранимый дефект в виде UB, и сверхсложность спецификации, которую в полном виде не дано освоить ни одному человеку на Земле. Кто-то тут про лёгкость чтения и сопровождения кода говорил. Вот и подумай на досуге над этим в контексте этих двух языков. Надеюсь, справишься с домашним заданием?У Джавы и Хаскеля совершенно другие сферы применения, и в этой теме их обсуждать не имеет особого смысла.
А что есть для системного программирования, кроме "динозааров" С и С++? ;)Даже для детского робота на Питоне, за кадром трудятся библиотеки на С++. И так везде.
Ада. Самое что ни на есть системное. На самых требовательных к надежности направлениях.
Но распространенность очень маленькая, т.к. разрабатывать на ней сложнее и медленнее и была вытеснена си-быдлокодерами, которые могли фигак-фигак и в продакшн.
Опеннетчиков оскорбляет, что разработчики софта не советуются с ними на чем им этот самый софт писать.
> если это решает их проблемы.и создает кучу проблем другим ¯\_(ツ)_/¯
Или решает заодно кучу проблем для других. ;)
Каких?
Вот таких например https://access.redhat.com/security/cve/cve-2022-2588
Rust виноват в том что в cls_route.c сделали use-after-free
Не иначе какой-то растоман затесался к разработчикам
Даааа, в таком коде баги искать трудновато
> Даааа, в таком коде баги искать трудноватоТы че, пес, какие баги? Раст не позволяет писать баги!
И зачем бы я так неумело передёргивал? Или до тебя никак не дойдёт, что Раст призван уменьшить количество ошибок определённого класса (работа с памятью), а не вообще всех?
Это не передергивание, это сарказм.
Ибо растаманы почему-то уверены, что существует единственный класс ошибок - ошибки работы с памятью. И если их накорню изничтожить (как, например, сделали джава с шарпом), то придет вселенская справедливость и софт магическим образом станет безошибочным и его даже не надо будет поддерживать.Ну а читабельность кода, поддерживаемые платформы, скорость работы и скорость разработки, количество библиотек и все остальное их не интересуют.
[added]
Ах да, еще они уверены, что единственные такие кто додумался "правильно" работать с памятью. Никаких тебе смартпоинтеров (даже в сишечке), никаких куч с автоматическим менеджером объектов, вообще ничего из уже считай сто лет активно развивающейся индустрии никто не использовал и не использует.
> Это не передергивание, это сарказм.
> Ибо Воены Супротив Раста почему-то уверенны, что растаманы почему-то уверены, что существует единственный класс ошибокПофиксил, не благодари.
Вот за это вас, растаманов, и не любят. Мозгов ноль, одно чсв.
> *Пук-пук-пук! Пу-у-у-у-к!*Вот за это вас, Военов и не любят - конкретики 0, мозгов и знаний 0, одно ЧСВ и пускание газов в лужу.
>Ибо растаманы почему-то уверены, что существует единственный класс ошибок - ошибки работы с памятью.Кто тебе такую глупость сказал? Или сам придумал только что, а потом сам же и засарказмил?
>Ах да, еще они уверены, что единственные такие кто додумался "правильно" работать с памятью.
И снова какие-то дикие фантазии на заданную тему. Если в чем растиане и уверены, так это в том, что их язык вполне может конкурировать на равных с Плюсами и Си. А ещё они уверены в zero-cost abstractions в Расте, к чему всякие сборщики мусора отнести точно нельзя.
Просто Урри уверен, что его долгоиграющие проблемы в ментальной и половой сферах решаются тупым и бессмысленным хейтом к Rust. А ещё он уверен, что способен написать что-то кроме говнокода, и плюсики на Опеннете от таких же интеллектуально ограниченных индивидуумов ему в этом помогут.
> Если в чем растиане и уверены, так это в том, что их язык вполне может конкурировать на равных с Плюсами и Си.А с Карбоном?
Лучшебы на PHP реализацию закрафтили.
Ого, кто-то ещё даже помнит про php в 2022 году.
А чем заменили PHP в 2022 году?
на РНР. Раст На Расте.
Вперед!
> половина ... уязвимостей будет исключена ... если в коде не используются блоки "unsafe"Если бы да кабы... Слишком много условностей и будущего времени.
>> половина ... уязвимостей будет исключена ... если в коде не используются блоки "unsafe"
> Если бы да кабы... Слишком много условностей и будущего времени.Ну так покажи всем этим ламерам как надо - напиши свою реализацию без уязвимостей.
Изи.#include <AGI.h>
int main()
{
return agi_generate_main("Tor without bugs");
}
зачем нужен этот тор если под ним не работает ни один сайт, особенно те которые заклоудфларены
Наглая ложь. Пишу с пом. Тора, сёрфлю так же - клаудфлэйр обычно показывает наг-скрин на 2-3 секунды и говорит "secure", и дальше отображается сайт.Хорошая попытка, тов. мл. лейт., но - нет
У меня это название Арти, ассоциируется с двумя хачами-музыкантами - их зовут Артик+Асти. Мужик и баба. Они на русском поют, точнее они вроде бы уже распались и не поют.Но мне запомнилась одна их песня - "Под грустный дэнс я так красиво теряю тебя". Я когда слышу эту песню все время думаю - "Армяне ГРУСТЯТ". И улыбаюсь.
Казалось бы, причём тут A Rust Tor Implementation (=
Есть ещё бойлеры такие.
Как хорошо что на опеннет так много знающих людей, которые понимают насколько на самом деле ужасен rust
Вот ! Сразу ощущаеш что не все в этом мире тупые деграды.
Сразу ощущаешь себя не "тупым деградантом", способным только глупости в комментарии писать, а "знающим" человеком
Да, есть ещё в этом мире умудрённые опытом школьники.
А только вы.
> на опеннет так много знающих людейВидят опыт Мозилы, которой пришлось выгнать растаманов из-за провала проекта по переписыванию FF на раст.
>> на опеннет так много знающих людей
> Видят опыт Мозилы, которой пришлось выгнать растаманов из-за провала проекта по переписыванию FF на раст.И очень избирательно не видят одновременное "выгоняние" комманды реагирования на угрозы, большей части security team и MDN. Видимо тоже, потому что "провалились", ага.
Опеннетные "знатоки", одним словом.
> "выгоняние" комманды реагирования на угрозыЕстественно, что их выгнали, чтобы не палили контору.
а также я, например, очень избирательно до сих пор не вижу "выгоняния" CEO мазиллы с ее окладом в эээ в 2018 было два с половиной ляма, но случился ковид, потому к 2020 ей накинуди до трех, а щас еще и топливный кризис, не удивлюсь, если на бензин и отопление накинули до пяти лямов.единственно, что для зиц-прэзидентессы фимы, которая назначена худо-бедно дотянуть мозиллу до title 11, это многовато, как по мне.
а как для специалиста, который должен был чо-то там переломить и преодолеть - я, опять же избирательно, не вижу результаты?
Вообще-то причины были другие. Финансовые. Учитывая что большая часть доходов Мозиллы давно уже идет от Гугла это и не удивительно.А проект оксидации ФФ никто не закрывал https://wiki.mozilla.org/Oxidation
> Вообще-то причины были другие. Финансовые.Менагерам на третью яхту не хватало.
> Учитывая что большая часть доходов Мозиллы давно уже идет от Гугла это и не удивительно.... и учитывая, что Гуглу совершенно не нужен _реальный_ конкурент, который может вновь оттяпать большую часть рынка и класть болт на всякие "полезные" гугло-стандарты.
Название "Tor" знают все. А этот "Arti" хpeн кто знает, не приживется.
Так никто проект переименовывать не собирается. Просто под капотом будет другая либа.
Это как переезд с OpenSSL на LibreSSL - большинство пользователей об этом даже не узнали.
> половина всех отслеживаемых проектом уязвимостей будет исключена в реализации на Rust, если в коде не используются блоки "unsafe".ясно.
> Излишняя требовательность компилятора rustc, отмечаемая некоторыми как недостаток, на деле оказалась благом, так как если код компилируется и проходит тесты, значительно повышается вероятность его корректности.
понятно.
Где-то я подобное уже видел, и продолжаю наблюдать. Негры миролюбивы и кротки, если их iq превышает 140. Обширные потери ББМ на деле оказались благом, так как теперь значительно повысилась вероятность перевооружения на более новые образцы. Улыбаемся и машем.
Это транс-правда.
Опеннетовцы зрят в корень и видят все уловки растоманов и их транцправду
Ты думаешь, у растаманов по две головы и три мозга? Ан нет... Изобретением божественных языков занимаются как раз недалёкие люди.
Я думаю что у опеннетовцев пишущих комментарии по 3 головы и 2 мозга и они очень далёкие люди
И для всех было бы лучше, если бы они были ещё дальше, в специально отведённых местах.
Каких?
Нууу поднять статистику скачивания как минимум затем, чтобы мамкины эксперты бальзам «звёздочка» сэкономили, стоит.
бинарь меньше? как потребление озу? в чем выгода?
Вот будет смех, когда посыпятся дыры в софте, написанном на Расте.)
Да сыпались уже. Почтенные анонимы сразу напомнили растаманнам: "Ну что сынку, помог тебе твой Rust?"
где экзешник качать?)))
Из аттача, конечно :)
Вчера впервые в жизни поставил тор
Фригейт на прошлой неделе перестал работать
А на рутрекер вот теперь через тор хожу
Вот типичный пимер спама про rust.Фактически повода для новости нет. А новость есть.
Текущий tor что либо поменял? Нет.
В планах текущего tor'а добавить функциональность? Нет.
В планах текущего tor'а добавить безопасность? Да. Когда-то. Когда-нибудь. Но не сейчас.
То есть это "новость" про план, в оталенном будущем. А если учитывать историю, то в будущем, которое может и не наступить. И эта "новость" является главной.