В кодовую базу ядра Linux, на основе которой формируется релиз 6.18, принята реализация механизма межпроцессного взаимодействия Binder, написанная на языке Rust...Подробнее: https://www.opennet.me/opennews/art.shtml?num=64092
Через десять лет много перепишут на С++ по тем же причинам
> Через десять лет много перепишут на С++ по тем же причинамНе смогут, в ядро C++. код не принимают.
Так до сих пор и не понимаю, почему Rust вдруг стало можно, а С++ или там Go или вообще что-либо другое нельзя
> или там GoТы прям щас серьезно? Потому что у Go есть рантайм и GC. Ему нужна ОС чтоб работать.
Боюсь хомяков это не остановит. Дай волю – и питон с явой в ядро затащат.
Боюсь хомяков это не остановит. Дай волю – и питон с явой в ядро затащат.Ну как-бы всё что вокруг ядра, и некоторые компоненты ядра, в линуксах всегда были написаны на перле или питоне.
Я в ядро вайбкодил на Раст, и на питон. Живи теперь с этими, можешь поплакать.
Lua в БСД затащили, и ничего, нетфликс не умер.
Когда еще во FreeBSD perl был в базе, шло обсуждение, что либо надо perl выкинуть и затащить python, либо затащить его параллельно. Здравый смысл возобладал и просто perl выпилили. Ну а lua маленький, шустрый, заменил в загрузчике forth (который правда был еще меньше, и еще шустрее, но вводил в ступор даже бывалых программистов своей обратной польской записью).
>или там GoСам Google в первую очередь, язык Go создавал для программирования в энтерпрайзной корпоративной среде. Синтаксис Go специально сделан простым, потому-что американские корпоративные программисты не умные. Без преувеличения будет сказано, что Go создавался для тупых программистов.
А ещё, Go не заточен для системщины.
> Без преувеличения будет сказано, что Go создавался для тупых программистовВот почему такого нельзя про восхваляемый язык писать? У Go ведь те же преимущества при работе с памятью по сравнению с прямым обращением, что и у ... ? GC разве нельзя у него покромсать, и вообще поиграться с настройками сборки, чтобы ЖратЪ поменьше?
Сам Bell Labs в первую очередь, язык СИ создавал для программирования в энтерпрайзной корпоративной среде. А именно для переписывания юниксов.Синтаксис СИ специально сделан простым, потому-что американские корпоративные программисты не умные. Без преувеличения будет сказано, что СИ создавался для тупых программистов.
Что за бред?
Ну ты и фантазер. Я бы тебя по-другому бы назвал но цензура не пропускает.
https://habr.com/ru/companies/otus/articles/902724/
Эпол смогли в свой XNU обрезанный C++ запихать...
Зачем обрезать C++, когда есть чистый Си? Где логика?
В си завезли хотя-бы строки?
Если считать си "очеловеченным ассемблером", то какие ещё строки в куче байтов? Сами опишете любые структуры и их обработчики на своё усмотрение (или подключите чужие библиотеки/велосипеды). Цэ ж низкоуровневый язык.
> Если считать си "очеловеченным ассемблером", то какие ещё строки в куче байтов?Это если считать))
Я нашел древнюю древность "THE C PROGRAMMING LANGUAGE" за авторством авторов языка
retrofun.pl/wp-content/uploads/sites/2/2023/12/1978-ritchie-the-c-programming-language.pdfИ что мы там видим?
PREFACE
C is a general-purpose programming language which features economy
of expression, modern control flow and data structures, and a rich set of
operators. C is not a "very high level" language, nor a "big" one, and is
not specialized to any particular area of application. But its absence of res-
trictions and its generality make it more convenient and effective for many
tasks than supposedly more powerful languages.> Сами опишете любые структуры и их обработчики на своё усмотрение (или подключите чужие библиотеки/велосипеды). Цэ ж низкоуровневый язык.
Так вот нет - это general-purpose.
Т.е должен подходить к разным задачам и иметь для этого инструменты.
C is not a "very high level" language, nor a "big" one, and is not specialized to any particular area of application.
Думается, в такиом понимании "general-purpose" через десяток лет может начать требовать поддержку невросетей "искаропки".
В моём понимании язык общего назначения значит, что не "заточен" ни для стат анализа (R), ни для обработки больших массивов данных (SQL), ни для инженерных расчётов (fortran, matlab), ни для чего-то ещё конкретного, но позволяет из своих примитивов создать инструменты для более конкретной задачи.
Общее назначение - это не всё в 1.
>Если считать си "очеловеченным ассемблером"В таком случае, си не место в среднестатистическом софте. Может в нескольких тонких прослойках, но не более.
Вот где-то тут суть прошла.. не для нынешних операторов ЭВМ оно. Процитирую одного тырнет-воина не совсем к месту, но.. : "Да там у большинства раст - второй язык после пытона".
> одного тырнет-воина не совсем к месту, но.. : "Да там у
> большинства раст - второй язык после пытона".Очевидно это серьезный источник, ему можно доверять))
А если серьезно, то все проекты которые "мы взяли СИ проект и начали его переделывать".
Неужели без знания СИшки берутся))?
В какой-то теме обсуждали Арти - там команда которая годами пилила ТОР на СИ, сейчас пишет его же на раст.
Гугловые поделки на расте пишут команды которые были С/С++, а некоторые даже совмещаю тк не весь код заменяется. И сишные баги нужно править.Понятно что даже ГОшника можно научить, если людей не хватает, но такие будут писать новый код, скорее всего.
> Очевидно это серьезный источник, ему можно доверять))Очевидно, это наезд.
> Неужели без знания СИшки берутся))?
Судя по тому, что получается да. И большинстве случаев сразу оговаривается, что будут реализовывать не полностью, так как не понимают для чего нужно то, что они реализовывать не будут.
Дак и скажи что не оСИлил программирование. Мнение хомячков которые не умеют без лэфтпада вообще как пук в лужу
>Не смогут, в ядро C++. код не принимают.В системном программировании язык с объектно-ориентированными возможностями не нужен, от слова совсем.
А синтаксис Раста неоправданно переусложнён. Да и стадии при котором формируется бинарный код сложен. У него в конце бинарный код формирует сам LLVM.
Лучше чистого Си ещё ничего лучше не придумали.
> В системном программировании язык с объектно-ориентированными возможностями не нужен, от слова совсем.И именно поэтому в ядре прикостыляли структуры очень похожие на нормальные классы)
> А синтаксис Раста неоправданно переусложнён. Да и стадии при котором формируется бинарный код сложен. У него в конце бинарный код формирует сам LLVM.
Переусложнен по чьему мнению?
Вон разработчики ядра пишут "код на расте более понятный и архитектурно верный".> Лучше чистого Си ещё ничего лучше не придумали.
Поэтому СИшный биндер выкидывают и заменяют на растовый.
>в ядре прикостыляли структуры очень похожие на нормальные классы)Если иерархия исходного кода чуток усложняется это нормально. GTK никто же не называет ООП языком.
>Вон разработчики ядра пишут "код на расте более понятный и архитектурно верный".
Ну понятное дело хвалит свой огород.
А про раст читаем внимательно. "стадии при котором формируется бинарный код сложен. У него в конце бинарный код формирует сам LLVM".>Поэтому СИшный биндер выкидывают и заменяют на растовый.
Где выкидывют в Андроиде или ядре?
P.S.
Решил покривляться да обломался.
> Если иерархия исходного кода чуток усложняется это нормально. GTK никто же не называет ООП языком.Если в ЯП есть встроенные средства, то не приходится лепить кривые велосипеды.
Типа как случилось со строками.> А про раст читаем внимательно. "стадии при котором формируется бинарный код сложен.
> У него в конце бинарный код формирует сам LLVM".Но если я соберу ядро при помощи шланга - то СИшный код тоже будет формировать LLVM.
Он тоже будет сложным? Или тебя смущаеют проверки которые происходят между кнопкой build и llwm?> Где выкидывют в Андроиде или ядре?
В ядре.
Вот прям коммит можешь посмотреть
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eafedbc7c050Что может быть более ядристое чем linux/kernel ?
> Решил покривляться да обломался.
Ну.. ты можешь попробовать еще раз.
Вдруг получится лучше.
На самом деле никаких проблем с современным с++ хотя бы 17го года выпуска без исключений и rtti в ядре быть не должно. Это всё упоротость финского фанатика.
C++ это ООП и мета-программирование. Всего этого хлама в ядре быть не должно. Наоборот, крестовики упороты.
Можете привести пример переусложнённого синтаксиса на Rust? Спасибо.
Коллеги, напомните плиз, в хит параде цвс спор, кто на первом месте? Линукс или андроид?
То-то гугл уже и патчи секурные в аосп не кладет...
Андройд хорошая штука, но с другой стороны странное поделие. Собирать его пару часов из сурцов? Надо его опакетить, сделать более совместимым с обычными дистрами, чтобы он был просто линухом в джавой и другой оболочкой. И будет супер. Гугель наверно и сам уже догадался, да?
> Собирать его пару часов из сурцов?А чего не за 10 минут))?
> Надо его опакетить, сделать более совместимым с обычными дистрами,
Надо! Делай!
Как сделаешь, можешь отчитаться и написать тут статью - мы все поставим тебе плюсиков.> чтобы он был просто линухом в джавой и другой оболочкой.
"Просто" не получится)
Ну стайбл-нонсенс и все такое.> И будет супер. Гугель наверно и сам уже догадался, да?
Ага.
И предусмотрительно решил этого не делать.
Более того, начал внедрять хруст, потому что на него у фанатико алергия и приступы неосиляторства.
Коллеги, предполагаю, что в этом трэде соберутся маститые сеньоры от православных и не очень ЯП'ов.
Вот им с вашего дозволения задам вопрос: а для чего сейчас все эти псевдобезопасные языки, когда на сей день при должном умении можно и нужно заставить чатжипити писать код на си, уровня серьёзного сеньора! Для чего все это?!
Скажете веб девелоперов и прочих пистонистов трудоустраивать? Дык и это не осилят. Заводы стоят, руками работать некому!
> на сей день при должном умении можно и нужно заставить чатжипити писать код на си, уровня серьёзного сеньора!Мистер! Вам следует меньше потреблять маркетингового буллшита. Все эти LLM могут писать код уровня джуна, но и в этом они хуже, потому что джун хотя бы учится на своих ошибках. Хотя бы на некоторых. Эти же будут совершать одну и ту же ошибку раз за разом, пока ты в свои промпты не добавишь "не совершай ошибку X, проверь Y и Z, прежде чем показывать мне свою песанину". Впрочем и это не панацея.
Все было бы хорошо, если бы не было так грустно (с)
Хотя грустно смотря для кого...
Дело тут не в буллшите. А в том, что если знаешь предмет, то с второй, а лучше третьей итерации, оно выдаёт уровень. И оно обучается. Конкретно жпт при помощи механизма эттеншн.
В общем я к тому, что уже сейчас один сеньор может заменить трёх (и оно уже работает и в пробе). А дальше...
> уже сейчас один сеньор может заменить трёх (и оно уже работает и в пробе).Один серьор может заменить одного сеньора c десятком джунов на подхвате. Трёх сеньоров он не заменит.
> Конкретно жпт при помощи механизма эттеншн.
Это "обучение" отвалится когда ты начнёшь новую сессию.
> оно уже работает и в пробе
Да, майкрософты и им подобные из под палки заставляют своих кодеров использовать эти штуки. Но не очень заходит.
Если тебе это не убедительно, то я тебе закину ещё один факт: все эти чатжпг экономически убыточны. Причём очень конкретно убыточны, они генерят дохода на пару порядков меньше, чем сжигают на поддержание работы. Они существуют сейчас сжигая инвесторские деньги. Это не может продолжаться вечно, это рано или поздно кончится. Сейчас немало разговоров что AI подошла вплотную к моменту, когда этот пузырь лопнет, потому что не видно как всё это может за год-два стать прибыльным, а ещё два года этот пузырь не удастся надувать. А когда пыль уляжется, выяснится что три сеньора всё же дешевле, чем один, но генерирующий запредельные счета за использование чатжпг.
> Это "обучение" отвалится когда ты начнёшь новую сессию.Well уже не совсем так.
Да и банально можно попросить вести лог, а в превышении контекста - перезапустить сессию и начать с "read log.txt and codebase"
Мб, но у нейронки ограниченный контекст
Для того чтобы "заставить чатжипити писать код на си", нужно сначала ̶п̶р̶о̶д̶а̶т̶ь̶ ̶ч̶т̶о̶-̶т̶о̶ ̶н̶е̶н̶у̶ж̶н̶о̶е̶ его на чём-то обучить.
А у нас только дидовый овнокодище прошлого тысячелетия.Догадайся с одного раза, что чатгопота выдаст, после обучения на таких примерах?
Правильно! Оно выдаст СИшную дристню как диды завещали)
> умении можно и нужно заставить чатжипити писать код на си, уровня серьёзного сеньора!Угу, угу...
Смотрите ситуации с, например, Cancel the Hate, Date on the Right и Sapphos.
А вы думаете "серьёзные сеньоры" умеют писать корректный код на C? Вся загвоздка в том, что _никто_ этого не умеет.
А само ядро для IPC у десктопа что использует? Binder?
dbus
А чем binder лучше dbus? И чем dbus не подошёл для android?
> И чем dbus не подошёл для android?dbus не в ядре тормозной.
ядерный kdbus сдох не родившись
bus1, который должен был заменить kdbus, Out-of-Tree Kernel Module и этого как бы достаточно
dbus-broker - как-то подергивается, но был начат только в 2017, а биндер был в mainline еще в 2015м.
Так теперь и на десктопе будут биндер использовать?
> Так теперь и на десктопе будут биндер использовать?Почему вы так думаете? Биндер пишут для андроида под довольно специфические потребности андроида. Я сомневаюсь, что его можно сделать универсальным так, чтобы все были довольны.
Плюс все уже позавязывались на dbus и если это даже предложить, то начнется вонь на вся интернет "опять софт переписывать."
Вроде был какой-то проект по адаптации еще старого для биндера для десктопа, но его писали полтора землекопа. Какой статус сейчас - хз, искать лень.
> Почему вы так думаете?Думаю, что ядерная реализация быстрее юзерспейса. Да и зачем тащить в ядро то, что использует Андроид. Там все равно куча патчей накатывается, могут и биндер держать на своей стороне, вне десктопного ядра.
> Думаю, что ядерная реализация быстрее юзерспейса.Так оно и есть.
> Да и зачем тащить в ядро то, что использует Андроид.
А зачем в ядро тащить куча хлама для всяких некроплатформ или крайне специфических железок?
> Там все равно куча патчей накатывается, могут и биндер держать на своей стороне,
Зачем золотому спонсору LF тратить на это время? Оно вам как-то мешает?
> вне десктопного ядра.
Нет такого понятия как "десктопное ядро". Есть просто ядро. Одно для серваков, андроида и где-то по остаточному принципу для "десктопа".
dbus можно выкидывать?
Зачем принимать в ядро что-то от Андроида? Направление его развития за последние несколько месяцев уже явно было обозначено Гуглом.
Зато нужную BcacheFS выкинули. Linux RIP. 1991—2025.
Сравни нужность этой ФС и Андроида.
Ну так и пущай Гуголь у себя в репе держит эту нужность для Андроеда. Он же, всё равно, далее не планирует юзерспейсом делится.
> нужную BcacheFSКому нужную?
Ее даже не допилили до работоспособного состояния.
BcacheFS мусор и явно не нужна.
> Зачем принимать в ядро что-то от Андроида? Направление его развития за последние
> несколько месяцев уже явно было обозначено Гуглом.Просто глянь вклад гугла в ядро. Это во-первых.
А во-вторых, ты хочешь побыковать на Gold sponsor Linux Foundation?
Много наслышан о крутости этого биндера, так может перенести его в ядро, выкинув все прочие механизмы? Ведь лучше один но крутой, чем много но не очень, так и сложность поддержки упадет в разы.
О, единственный комментарий по теме сабжа.P.S.: мне вот тоже интересно за этот IPC. Пока просто из двух процессов mmap'ом открываю файл на tmpfs и поверх этого строю IPC. Получается быстро (наносекунды).
Если требуется безопасность, то голый mmap не работает, копировать данные все равно надо чтоб тебе на ходу данные не переколбасили пока читаешь что пришло.
Как показывает ситуация с librsvg, если свежий linux невозможно будет собрать без rust, можно будет остаться на старых версиях.
> можно будет остаться на старых версиях.... со старыми (и известными) дырами
не будешь брать - отключат интернет. По очень простой схеме, как 3 копейки:
1. Сайты потребуют новый TLS или ещё какой-нибудь new shiny smoothie (нужность которого .. ну в принципе нужен, но не необходим, но сайты разведут истерику что пердо-луддиты тормозят Прогресс (тм) и что семеро одного не ждут), который будет только в новом Firefox.
2. firefox потребует новой glibc
3. новая glibc потребует новое ядро (как делает постоянно)
4. Ну и сиди со старым файрфоксом на старом ядре. Из сайтов доступен будет только опеннет.
Не беспокойся напиши бесплатно за всех и для всех это легко , мы героически подождем года два и пока получаем немного грантов на еду.
"А большего мне и не надо"
Сешно, что сейчас в соседней теме об уязвимости растовой tar-библиотеки воины против Раста празднуют победу (боров чекер не спасает от логических ошибок в рантайме, атата!) - а в этой теме тишина. 😂Ну а по теме:
> Использование Rust позволило [...] значительно уменьшить сложность обработки ошибок.
Это вранье! Признанный эксперт с ником "Аноним" аргементированно утверждал, что с упоротым синтаксисом Раста сложность сопровождения повышается в разы, а ошибки сложнее замечать.
> Реализация Binder на Rust аналогична по функциональности с изначальным вариантом на языке Си, [...] получился меньше варианта на Си - 5.5 против 5.8 тысяч строк кода.
Опять вранье! Упомянутый выше эксперт также утверждал, что Раст раздувает изначально компактный код в разы!
> а в этой теме тишина. 😂Ну ты это!
Не сравнивай целую раст либу дла распаковки тарболов с каким-то занюханным ядром линукса!
Ведь все понимаю что важнее для пользователей, бгг))
Господа сишники, объясните мне, зачем вам нужна возможность разыменновывать null, и зачем вам нужны негигиенические макросы?
Не нужно ни то, ни другое
Просто, оно работает и позволяет получить предсказуемый реазультат, в отличии от пока не обкатанных новых технологий
> Просто, оно работаети порождает постоянные ошибки
> и позволяет получить предсказуемый реазультат
предсказуемо поганый.
> в отличии от пока не обкатанных новых технологий
У гугла, амазона, клоудфлари все обкатано и работает.
Вот и до ядра добрались.
> У амазона все обкатано и работает.Это у тех самых, у кого ИИ-девопсы сломали AWS и положили полинтернета?
>> У амазона все обкатано и работает.
> Это у тех самых, у кого ИИ-девопсы сломали AWS и положили полинтернета?Как это связано с растом?
Если ИИшка решила "инстанс нужно выключить", то к коду это отношение не имеет.Гугл и клоудфларю ты спецом пропустил?
Вот у тебя какой телефон?
Я слышал что 321сы предпочитают айфоны, но если вдруг ты держал в руках андроид, то там внезапно миллионы строк растокода.
> Вот у тебя какой телефон?Ну давай попробуем...
Sony Xperia 10 III с Sailfish OS 5.0
> Sony Xperia 10 III с Sailfish OS 5.0А... ты из "ценителей" полуфабрикатов.
Ну ок, подловил.Я надеялся на нокию900 с девуаном))
Лол, т.е. ты не увидел ого-го, что хотел и перешёл в оскорбления. Аргументация моё почтение
Да всё там обкатано. Вот, насладись: все 48 ключевых слов Rust в программе из 300 символов:https://play.rust-lang.org/?version=stable&mode=debug&editio...
> позволяет получить предсказуемый реазультатЭто миф. Ты путаешь теорию с практикой. В теории результат предсказуем даже на брейнфаке, так что это ни о чём не говорит. А на практике результат никогда не предсказуем. Количество CVE вызванных разадресацией null подтверждает.
Макросы нужны - тут даже обсуждать нечего.
Разыменование null не нужно, но тогда компилятор должен вставлять проверку на null, что при проектировании высокопроизводительного кода может быть нежелательно, когда точно известно, что в каком-то участке кода указатель точно не null.
Я рад, что каждый раз упоминают, что "написано на Rust". Это прямо метка "качества".
Ой, что вы так... Сейчас СИшники обидятся))
Точно, как "Made in China".
Если надо было придумать глупейшую аналогию, у вас получилось.
Это как клеймо Лилия (Д'Артаньян и три мушкетёра).
Ееееесть в графском парке, черный пруд...там лииилииии цветуууут...
чёрная метка
C++ для школоты из гугла джавапитонистов тяжеловат
> C++ для школоты из гугла джавапитонистов тяжеловатПлюсы просто раздутые и убогие.
Торвальдс разложил по полочкам почему С++ плохой.
Их даже в ядро не взяли, в отличии от сабжа из темы.
Системщину писать на них.. ну такое.Вот игрушки или какие-то прикладные программы - да.
Подумаешь грохнется какая-то калофдути или ворд упадет, пользователь привычный, просто перезапустит.
О.. цэ-шные программы по сравнению с цэплюснутыми менее падучи что ли по такой логике? Потому в ядро в своё время не взяли?
По моему дурному мнению, студент в то время нИАсилил цэплюсплюс в достаточной мере. Если использовать все возможности обоих языков в бытность предложения плюсов в ядро, то кресты не надёжнее цэшки от непутёвого самострела?
> О.. цэ-шные программы по сравнению с цэплюснутыми менее падучи что ли по такой логике?Конечно! Вот сравни падучую плазму на с++ и божественный гнум на си.
> По моему дурному мнению, студент в то время нИАсилил цэплюсплюс в достаточной мере
В то время с++ были унылыми "си с классами". И прошли годы пока плюсы превратились во что-то нормальное, наверное с с++17.
> кресты не надёжнее цэшки от непутёвого самострела?
Думаю да.
> Конечно! Вот сравни падучую плазму на с++ и божественный гнум на си.Не понимаю юмора с таким примером. Если бы падало, ну хоть раз за годы эхплуатации, может и понял. Сужу по себе (остальной мир мне докладов не пишет), сейчас версия 5.27.5, за новьём ради новья не гонюсь.
Вроде как c++11 уже очень далеко от цэ с классами.
> Не понимаю юмора с таким примером.Странно что не понимаете, потому что падающая плазма уже давно стала мемом.
> сейчас версия 5.27.5
А вы обновитесь до 6й)))
Хотя сейчас уже поздновато, ее неплохо так стабилизировали за последние пару месяцев.
Моё послание си плюс-плюсникам и растаманам таково. Внемлите все!Запомните, чистый Си - это язык номер один. Си - это начало начал, священный язык. Си плюс-плюсники и растаманы всегда будут на четвёртых и пятых ролях. Ну, на втором месте GNU bash, на третьем Python.
Оно случайно быстрое зерокопи между процессами не умеет там?*кто о чем а вшивый о бане, да*
Пора переписать ядро Linux на HolyC.
>около 70% из всех опасных уязвимостей, выявленных в Android, вызваны ошибками при работе с памятьюэто каких же непрофессионалов Гугль понабрал программировать Андроид!
>Binder развивается уже 15 лет и за это время его функциональность и сложность значительно возросли - проект находится на стыке всех компонентов Android и охватывает множество задач, выходящих за рамки IPC
зарождается новый SystemD
>В старом коде накопился заметный технический долг, который усложнял как поиск ошибок, так и дальнейшую разработку. Например, в коде встречаются крупные функции на более чем тысячу строк кода, сомнительные методы обработки ошибок и запутанные структуры.
код всего лишь в 5 тыс. строк. ещё раз, кого гугль набирает?
>>около 70% из всех опасных уязвимостей, выявленных в Android, вызваны ошибками при работе с памятью
> это каких же непрофессионалов Гугль понабрал программировать Андроид!А других нету)
Любой СИшник это потенциальный бракодел по памяти.
Даже самые крутые типа писак из ядра.> зарождается новый SystemD
И это круто!
Во-первых, стандартизация.
Во-вторых, отсеются всякие васяны.> код всего лишь в 5 тыс. строк. ещё раз, кого гугль набирает?
Так в СИшке достаточно пары строк.
Если сложение 2 чисел уже UB.
> Если сложение 2 чисел уже UBТоли дело раст - в дебаг сборки один способ сложения, в релиз - другой. Счастливой отладки)
> Толи дело раст - в дебаг сборки один способ сложения, в релиз другой. Счастливой отладки)Где там разные способы сложения?
В дебаге оно запаникует и укажет прям в какой строке это произошло.
А в релизе стандарный two’s complement wrapping для всех платформ.Но если в дебаге прописать
[profile.dev]
overflow-checks = false
то будет точно такой же two’s complement wrapping как и в релизе.Вы доку по расту вообще открывали? Или вам кто-то напел?)
Тут все однозначно, не то что в дыряшке.
> Тут все однозначноЛибо как в Си, т.е. как нормальные люди используете инструкцию ADD процессора, либо вашу программу выкинут вместе с вами, т.к. "безопасные" обёртки над банальным сложением тормозить будут нещадно.
Это примерно как "безопастный" способ дышать, с получением письменного разрешения на каждый вдох, а то вдруг рядом кто-то п*кнул, нет, просто так вдыхать неизвестный воздух опастно, перед каждым вдохом специальная комиссия должна убедиться в безопастности дыхания, а ты подожди.
Эксперту тяжело самому посмотреть, он спешит выZать свою экспертизу.https://godbolt.org/z/sbKsaTKGv
Видишь ADD?
Все ещё считаешь себя нормальным?
"анализ и преобразование содержимого транзакций"
- почему всё еще не подсчитано. Шастают туда-сюда.
"контроль размера пулов потоков в пользовательском пространстве"
- По талонам!
"отслеживание счётчиков ссылок объектов"
- всех в инвентарную ведомость.
" При этом выполнять подобные задачи он должен максимально быстро и корректно."
- тут классика активиста-растовика. Работать и отвечать будут другие.Позиция дворника из "12 стульев"
Что и с чем сравнивалось, когда получили 5.5к и 5.8к строк и сделали вывод о компактности раста? У меня ни через cloc, ни "руками" нет таких цифр.
Скачал тгз по ссылке из статьи, удалил тесты для честности:
ls -l `find -name \*.rs `|awk '{sum+=$5;}; END{print sum}'
355905
355 килобайт в 23 файлахls -l /usr/src/linux/drivers/android/*.c| awk '{sum+=$5;}; END{print sum}'
254260
254 килобайта.
По строкам, в ядре:
wc -l /usr/src/linux/drivers/android/*.c
1284 /usr/src/linux/drivers/android/binder_alloc.c
302 /usr/src/linux/drivers/android/binder_alloc_selftest.c
6615 /usr/src/linux/drivers/android/binder.c
828 /usr/src/linux/drivers/android/binderfs.c
9029 итогоПо строкам, в растовом поделии:
wc -l `find -name \*.rs `
4 ./build.rs
...
...
175 ./binder_tokio/lib.rs
9060 итого
тоже, получается, не в пользу раста, даже без юниттестов.
вообще то есть posix IPC, нахера какую то поделку переписывать и я ызро включать?