- Почему вы пишете в первом абзаце предоставляет средства для достижения высокого, Голдер и Рита (?), 09:27 , 08-Авг-25 (3) +13 [^]

- Это для местных хейтеров Там есть персонажи, думающие, что в расте есть сборщик, Шарп (ok), 09:46 , 08-Авг-25 (11) +16 [^]
- А как жи Arc _ хыыы, Наноним (?), 09:49 , 08-Авг-25 (14) –4 [V]
- Это не сборщик мусора, это автоматический подсчет ссылок, kravich (ok), 10:24 , 08-Авг-25 (17) +6 [^]
- Тут есть скоморохи, которые на полном серьезе утверждают, что подсчет ссылок - э, Аноним (20), 10:35 , 08-Авг-25 (20) +8 [^]
- Вообще то RAII - это тоже про подсчет ссылок, хотя сборщик мусора тут совершенно, Аноним (46), 11:49 , 08-Авг-25 (46) –5 [V]
- Ну так ткните их в определения GC работает в рантайме, а RAII отрабатывает на э, freehck (ok), 15:47 , 08-Авг-25 (171) –2
- В этом и проблема, что чёткого общепринятого определения не существует Поэтому , ferris (?), 05:37 , 09-Авг-25 (307)
В этом и проблема, что чёткого общепринятого определения не существует. Поэтому в разных сообществах принято за GC считать разное. В сообществе языка D, например, принято сборщиком мусора считать счётчики ссылок.На мой вопрос "что же это за сборщик мусора, который не может определить и дропнуть зацикленный в себя связный список "A -> B -> C -> A" если он уже ниоткуда не доступен - выдаются какие-то странные ответы.
- У сообщества Rust ответ гениальный Утечка памяти из-за циклических ссылок являе, Аноним (317), 09:28 , 09-Авг-25 (317) +1
У сообщества Rust ответ гениальный. Утечка памяти из-за циклических ссылок является "безопасной", просто нужно писать программы правильно :-)https://doc.rust-lang.org/book/ch15-06-reference-cycles.html > Rust’s memory safety guarantees make it difficult, but not impossible, to accidentally create memory that is never cleaned up (known as a memory leak). Preventing memory leaks entirely is not one of Rust’s guarantees, meaning memory leaks are memory safe in Rust.
- Вообще они правы Это безопасно в рамках выбранной модели безопасности, т к утеч, Аноним (-), 10:59 , 09-Авг-25 (319) +2
> утечка памяти из-за циклических ссылок является "безопасной"Вообще они правы. Это безопасно в рамках выбранной модели безопасности, т.к. утечка не повреждает память и максимум что случить - аппу грохнет OOM Killer. Сейчас без GC невозможно бороться с утечками, а отсутствие GC - осознанный выбор. Поэтому они не пытаются решить неразрешимую задачу, но стараются облегчить жизнь.
- Это не нерешаемая задача , а нерешаемая задача для модели управления памятью в, Аноним (317), 14:39 , 09-Авг-25 (340) –1
Это не "нерешаемая задача", а "нерешаемая задача для модели управления памятью в Rust", которая прибита гвоздями к реализации, что согласитесь не одно и тоже.DDOS, это один из способов атаки на систему, и говорить, что в самом безопасном языке программирования мы игнорируем целый класс атак, потому что "это безопасно в рамках выбранной модели безопасности", просто нужно писать программы без ошибок, то точно так же можно сказать и про С/С++. В модели ручного управления памятью в С/С++, отсутствует автоматическая проверка границ переполнения буфера ради обеспечения максимальной производительности. Если требуется безопасное управление памятью, нужно использовать сильные и слабые указатели и облегчить себе жизнь.
- Это нерешаемая задача при ручном управлении памятью Аналогично она не решена в , Аноним (-), 18:04 , 09-Авг-25 (352)
> Это не "нерешаемая задача", а "нерешаемая задача для модели управления памятью в > Rust", которая прибита гвоздями к реализации, что согласитесь не одно и тоже.Это нерешаемая задача при ручном управлении памятью. Аналогично она не решена в си, с++, паскаль и других. Даже в ада не решена. Если вы считаете иначе - покажите пример такого языка. > DDOS, это один из способов атаки на систему Да, но DDOS безопаснее чем получение контроля над системой. > в самом безопасном языке программирования мы игнорируем целый класс атак Аж жЫр с монитора потек)) Вообще в расте игнорируются еще и логические ошибки. Просто потому, что на данный момент нет способа с ними автоматически бороться кроме как формальной верификацией. Часть ошибок можно обойти развитой системой типов раста, но в общем проблема не решена. > В модели ручного управления памятью в С/С++, отсутствует автоматическая проверка границ > переполнения буфера Так дело не в переполнении буфера, а последствиях этого действия. В расте при выходе за границы массива будет паника и приложение таки упадет, правда с адекватным трейсом. А в сишечке - все что угодно вплоть до исполнения кода. > ради обеспечения максимальной производительности В расте для этого есть итераторы, а борровинг будет гарантировать что массив не мутируют с соседнего потока. - [.... слишком большой тред, остальное см. в режиме смотреть все |+ ] (358)!!!
- Memory leaks are memory safe Это известный вывод из определения той безопасност, ferris (?), 12:10 , 09-Авг-25 (329)
Memory leaks are memory safe. Это известный вывод из определения той безопасности, которую раст стремится обеспечить. Но непонятно как это относится к обсуждаемому вопросу касательно GC.
- Я думаю, что в данных вопросах надо смотреть прежде всего на академические источ, freehck (ok), 13:48 , 09-Авг-25 (334) +2
> В этом и проблема, что чёткого общепринятого определения не существует. Поэтому в > разных сообществах принято за GC считать разное. В сообществе языка D, > например, принято сборщиком мусора считать счётчики ссылок.Я думаю, что в данных вопросах надо смотреть прежде всего на академические источники, а не на какие-то там сообщества. Посему базисом на сегодняшний день следует считать Garbage Collection Handbook за авторством Джонса-Хоскинга-Мосса. Там уже которое издание выходит, актуализируя вопросы сборки мусора. Сначала в 96м была книга, потом в 12м, и на сегодня самая актуальная версия -- 16го года. Вот выдержка оттуда [1]: Мусор -- это более не живущий объект, чьё пространство ещё не было возвращено [программе]. Сборка мусора -- это автоматический подход к управлению памятью, который возвращает память, занимаемую объектами, которые более не используются программой. Сборщик мусора -- это системный компонент [программы], занимающийся сборкой мусора. Таким образом, RAII например не является сборкой мусора, поскольку данный подход отрабатывает в compile time и освобождает память объекта при выходе из окружения, в котором он использовался, и следовательно объект не успевает стать мусором. А растовые RC и ARC не является сборщиками мусора, потому что они не являются системными компонентами программы, а подключаются разработчиком по необходимости для ограниченного количества объектов, за которыми требуется более глубокий контроль. Если бы это было не так, то банальный free в сях тоже пришлось бы рассматривать как сборщик мусора, что естественно чушь. > На мой вопрос "что же это за сборщик мусора, который не может > определить и дропнуть зацикленный в себя связный список "A -> B > -> C -> A" если он уже ниоткуда не доступен - > выдаются какие-то странные ответы. Ну дык, вот такой вот сборщик. Видишь ли, когда мы говорим о сборщиках, мы всегда понимаем, что это трейдофф между производительностью и разрастанием кучи. Когда Коллинз и Маккарти в 1960м озаботились этим вопросом, Маккарти (который кстати и является автором термина, см [2], стр 27) написал трассировочный сборщик, и таких проблем у него не было, да; а вот Коллинз создал ARC. И за следующие несколько десятилетий оба подхода стали использоваться в сборщиках мусора совместно, потому что ARC при некоторых хаках может работать довольно быстро, плюс он всяко быстрее, чем трассировочные алгоритмы, а значит он позволяет существенно сократить им поле работы до их запуска. Ну то бишь потому что оба способа предполагают разный трейдофф. На самом деле ARC имеет куда больше проблем, чем циклы, и требует большого количества хаков, чтобы эти проблемы не становились слишком существенными. Так, например, он добавляет оверхед при передаче ссылки -- всякий раз, когда ты ссылку на объект передаёшь, тебе нужно инкрементить reference counter в куче. И так для всего. К тому же количество ссылок на объект может потенциально достигать количества объектов в куче, что приводит тебя к тому, что слот для каунтера тебе потребуется держать очень большой, а это -- ещё большее разрастание кучи. В общем, наивный подход тут не подходит, и к ARC-у нужны разнообразные примочки, чтобы он не добавлял слишком много оверхеда. Суть таких примочек как правило сводится к отсрочке освобождения памяти тем или иным способом. И появляется дополнительный поток, который следит на регулярной основе за ссылками, производя рекламацию в положенное время. Что касается циклов... Я понимаю твоё смущение, но оно по итогу формулируется следующим образом: "как алгоритм может являться частью сборки мусора, если он не освобождает всю память". Но обрати внимание, что про "всю" память речи в определениях не идёт. Да, у алгоритма есть ограничения, и они вот такие. Большую часть памяти он освобождает, но для освобождения остальных -- нужно что-то ещё. Так что тут как с сями -- нужен ручной контроль, но просто не за освобождением, а лишь за тем, чтобы циклов не создавать. Ну или твоя программа будет течь. Впрочем, в случае с Rust, течь не сильно, поскольку ты ж не всё помечаешь в Arc, а только небольшое количество объектов. Так что в целом, подход не так уж плох. [1] https://github.com/sauravomar/ebooks/blob/master/The%20... [2] https://www-formal.stanford.edu/jmc/recursive.pdf PS: фанбои-растоманы, учитесь, пока я жив ^^^ =)
- RAII это аналог сборщика мусора т к деструкторы объектов на стеке автоматически, анонд (?), 17:00 , 08-Авг-25 (190) –3
- Воу-воу Нифига себе заявы Это не сборщик мусора, это просто один из алгорит, freehck (ok), 12:41 , 08-Авг-25 (76) –9 [V]
- Сборщик мусора это механизм, который может использовать в т ч и информацию о ко, derfenix (ok), 14:49 , 08-Авг-25 (139) +5
- Дорогой, ARС -- это GC по определению Тут не о чем спорить PS Я не участвую в , freehck (ok), 15:07 , 08-Авг-25 (150) –12 [VVV]
- UPD вечер Короче, какое дело Я тут из любопытства таки почитал про этот ваш, freehck (ok), 20:12 , 08-Авг-25 (237) +5
- Есть Rc T T-с-подсчётом-ссылок , а есть Arc T T-с-атомарным-подсчётом-ссылок, morphe (?), 21:07 , 08-Авг-25 (252) +1
> Почему его называли ARC при этом, а не как-то иначе -- это конечно вопрос-вопрос, ну да ладно: всё-таки чужой монастырь. Тем не менее, в свете этого, я склонен согласиться с господами растоманами, что это не GC.Есть Rc<T> (T-с-подсчётом-ссылок), а есть Arc<T> (T-с-атомарным-подсчётом-ссылок) Первый компилятор запрещает передавать между потоками (Потому что подсчёт не атомарный, а значит при передаче между потоками может быть data race), а второй можно, если T можно передавать между потоками
- Да-да Не я дебил, что полез спорить не понимая предмета спора, а мне плохо объ, derfenix (ok), 14:56 , 11-Авг-25 (402)
> Однако, местным комментаторам хотелось бы сказать, что вы удивительно плохо аргументируете > свои позиции, особенно с учётом того, что у вас переопределены общеупотребительные > аббревиатуры. Простое указание на описанные мною факты -- могло бы сразу > прояснить вопрос, да и было бы куда полезнее, чем вой про > то, что все вокруг идиоты. =) Да-да. "Не я дебил, что полез спорить не понимая предмета спора, а мне плохо объяснили, про что я спорить полез. Сами виноваты, в общем". Как люди должны были догадаться, что ты что-то там не понял? Раз начал спорить, значит понимаешь о чём речь, либо трепло, а треплу что-то объяснять смысла нет.
- А Это не двигатель, это просто коленвал Б Как это просто коленвал, но без двиг, freehck (ok), 17:23 , 11-Авг-25 (403)
> Как люди должны были догадаться, что ты что-то там не понял? Раз начал спорить, значит понимаешь о чём речь, либо трепло, а треплу что-то объяснять смысла нет.А: Это не двигатель, это просто коленвал. Б: Как это просто коленвал, но без двигателя? Коленвал -- это часть двигателя. А: Двигатель -- это просто механизм, вращающий вал. Он может использовать коленвал, а может и не использовать. Говоря, что наличие коленвала подразумевает наличие двигателя, ты расписываешься в том, что дypак. Б: Ладно, я посмотрел и вижу, что вы к коленвалу педали прикрутили. Окей, я согласен, что это не двигатель. Но о том, что вы используете коленвал так -- надо предупреждать. А: Раз рот открыл -- значит должен был знать. А раз не знал -- значит дypак! А дypакy что-то объяснять смысла нет! Прекрасная иллюстрация, Вы не находите? =)
- Ты вот сейчас серьёзно приводишь в пример, где коленвал двигатель и что-то док, derfenix (ok), 18:12 , 11-Авг-25 (404)
Ты вот сейчас серьёзно приводишь в пример, где коленвал = двигатель и что-то доказать хочешь этим (помимо собственных сомнительных когнитивных сбособностей)? Часть механизма - это механизм? Вот прям ваще серьёзно? Может у тебя и печень - это человек? И процессор - это компьютер? Расплодились наркоманы чёртовы...
- [.... слишком большой тред, остальное см. в режиме смотреть все |+ ] (405)!
- Какое-то неправильное определение GC получается, раз такой GC не умеет самосто, ferris (?), 05:40 , 09-Авг-25 (308)
> Дорогой, ARС -- это GC по определению. Какое-то неправильное определение GC получается, раз такой "GC" не умеет самостоятельно определять и дропать замкнутый внутрь себя связный список "A -> B -> C -> A" если он стал более ниоткуда недоступен.
- см 334, я там раскрыл это, freehck (ok), 14:00 , 09-Авг-25 (335)
>> Дорогой, ARС -- это GC по определению. > Какое-то неправильное определение GC получается, раз такой "GC" не умеет самостоятельно > определять и дропать замкнутый внутрь себя связный список "A -> B > -> C -> A" если он стал более ниоткуда недоступен.см #334, я там раскрыл это
- Дорогой, если у тебя есть определение, которое заставляет называть одну вещь дру, derfenix (ok), 14:52 , 11-Авг-25 (401)
Дорогой, если у тебя есть определение, которое заставляет называть одну вещь другой вещью, то либо определение говно, либо ты им не умеешь пользоваться.
- А зачем их считать, если не секрет , Аноним (129), 14:38 , 08-Авг-25 (129) –2
- reference counting является частным случаем garbage collection Swift, тогда, тож, Аноним (420), 11:51 , 15-Авг-25 (420) –1
reference counting является частным случаем garbage collection. Swift, тогда, тоже язык без сборки мусора, получается?
- В расте и рантайма нет , Аноним (82), 12:58 , 08-Авг-25 (82) –4 [V]
- Ну как бэ да, нету Минимальный рантайм там примерно в тех же объемах, как и в G, Аноним (26), 20:57 , 08-Авг-25 (247)
- а чушь в чем они же не утверждают, что вот руст с рантаймом, а божественный цэ, мяв (?), 23:45 , 08-Авг-25 (282)
а чушь в чем ? они же не утверждают, что "вот руст с рантаймом, а божественный цэ - без". факт в том, что рантайм есть.
- Причем тут язык Си Это самодеятельность gcc при оптимизации, и не мешает собира, Аноним (82), 08:46 , 09-Авг-25 (314)
> тех же объемах, как и в GCC > GCC requires the freestanding environment provide memcpy, memmove, memset and memcmp.Причем тут язык Си? Это самодеятельность gcc при оптимизации, и не мешает собирать ядро линукс. Банальныйй цикл for в rust - это вызов next у итератора. Это точно не про отсутствующий рантайм.
- И где там язык Си упоминался Сам придумал, сам опроверг О, теперь итератры стали, Аноним (26), 23:04 , 09-Авг-25 (365)
>> тех же объемах, как и в GCC >> GCC requires the freestanding environment provide memcpy, memmove, memset and memcmp. > Причем тут язык Си? Это самодеятельность gcc при оптимизации, и не мешает > собирать ядро линукс.И где там язык Си упоминался? Сам придумал, сам опроверг. > Банальныйй цикл for в rust - это вызов next у итератора. Это точно не про отсутствующий рантайм. О, теперь итератры стали "рантаймом" ... Ну и да, че там за for было? https://rust.godbolt.org/z/YKEs1EoMn
pub fn main() { for n in 1..101 { square(n) }main: push rbx mov edi, 1 .LBB2_1: lea ebx, [rdi + 1] call example::square::h9a0e2fa1b9513288 mov edi, ebx cmp ebx, 101 jne .LBB2_1 pop rbx ret
- Аргумент с GCC придумал ты Причем тут баги в оптимизаторе gcc В расте нет ранта, Аноним (82), 07:30 , 10-Авг-25 (369)
> Сам придумал, сам опроверг.Аргумент с GCC придумал ты. Причем тут баги в оптимизаторе gcc. > О, теперь итератры стали "рантаймом" В расте нет рантайма. По определению сообщества опеннет. > Ну и да, че там за for было? > https://rust.godbolt.org/z/YKEs1EoMn Старательно прописывал ключи оптимизации чтобы не видеть вызовы метотдов итератора и много чего из "отсутствующего рантайма"? И ссылка на официальный документ https://doc.rust-lang.org/reference/expressions/loop-expr.ht... A for expression is a syntactic construct for looping over elements provided by an implementation of std::iter::IntoIterator.
- Скажи спасибо дырявому llvm, что может оптимизировать вот это https rust god, Аноним (82), 07:37 , 10-Авг-25 (370)
> Старательно прописывал ключи оптимизации чтобы не видеть вызовы метотдов итератора и много чего из "отсутствующего рантайма"?Скажи спасибо "дырявому" llvm, что может оптимизировать вот это https://rust.godbolt.org/z/Gva3P6T7j (твой пример без ключей оптмизиации, чтобы увидеть "отсутствующий рантайм")
- Т е ты старательно убрал оптимизацию, получил дебаг-сборку-по-умолчанию и гордо, Аноним (26), 11:10 , 10-Авг-25 (374)
> Скажи спасибо "дырявому" llvm, что может оптимизировать вот это https://rust.godbolt.org/z/Gva3P6T7j > (твой пример без ключей оптмизиации, чтобы увидеть "отсутствующий рантайм")Т.е. ты старательно убрал оптимизацию, получил дебаг-сборку-по-умолчанию и гордо киваешь на "лишнее" в генерированном бинарнике? Кстати, ты опять придумал-приписал-мне про что-то "дырявый llvm", попутно метанизировав небольшой водоем. Потому что код оптимизируется еще до этого: https://play.rust-lang.org/?version=nightly&mode=release&edi... (SHOW LLVM-IR)
bb3: ; preds = %start, %bb3 %iter.sroa.0.02 = phi i32 [ 1, %start ], [ %_9.0, %bb3 ] %_9.0 = add nuw nsw i32 %iter.sroa.0.02, 1 ; call playground::square tail call fastcc void @_ZN10playground6square17haf375fd7efae74b5E(i32 noundef %iter.sroa.0.02) %exitcond.not = icmp eq i32 %_9.0, 101 br i1 %exitcond.not, label %bb4, label %bb3
В общем, скажу спасибо за демонстрацию "квалификации" классического опеннетного Воена Супротив Раста. Ты случайно не автор https://veresov.pro/rustmustdie/ ?
- Ты уверен, что это до промежуточных оптимизаций, которые делаются посредством ll, Аноним (82), 12:18 , 10-Авг-25 (380)
> Потому что код оптимизируется еще до этого: Ты уверен, что это до промежуточных оптимизаций, которые делаются посредством llvm? Например, при генерации mir - вызовы итератора видны
- Извини, онлайн-инстанс с этой возможностью я тебе поднимать не буду https doc , Аноним (26), 15:09 , 10-Авг-25 (389)
Извини, онлайн-инстанс с этой возможностью я тебе поднимать не буду: https://doc.rust-lang.org/rustc/codegen-options/index.html > When combined with -O --emit llvm-ir, it can be used to see the optimized LLVM IR emitted by rustc before any optimizations are applied by LLVM. % rustc -O -C no-prepopulate-passes --emit llvm-ir loop.rs define internal void @_ZN4loop4main17h5179398e685bdaa7E() unnamed_addr #0 { start: %iter = alloca [4 x i8], align 4 %_2 = alloca [8 x i8], align 4 call void @llvm.lifetime.start.p0(i64 4, ptr %iter) store i32 1, ptr %iter, align 4 br label %bb1 bb1: ; preds = %bb7, %start call void @llvm.lifetime.start.p0(i64 8, ptr %_2) %_6 = load i32, ptr %iter, align 4, !noundef !4 %_4 = icmp slt i32 %_6, 101 br i1 %_4, label %bb3, label %bb4 bb4: ; preds = %bb1 call void @llvm.lifetime.end.p0(i64 8, ptr %_2) call void @llvm.lifetime.end.p0(i64 4, ptr %iter) ret void bb3: ; preds = %bb1 %_5 = load i32, ptr %iter, align 4, !noundef !4 %0 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %_5, i32 1) %_9.0 = extractvalue { i32, i1 } %0, 0 %_9.1 = extractvalue { i32, i1 } %0, 1 %1 = call i1 @llvm.expect.i1(i1 %_9.1, i1 false) br i1 %1, label %bb5, label %bb7 bb7: ; preds = %bb3 store i32 %_9.0, ptr %iter, align 4 %2 = getelementptr inbounds i8, ptr %_2, i64 4 store i32 %_5, ptr %2, align 4 store i32 1, ptr %_2, align 4 %3 = getelementptr inbounds i8, ptr %_2, i64 4 %n = load i32, ptr %3, align 4, !noundef !4 ; call loop::square call void @_ZN4loop6square17h2c210414671ffe58E(i32 noundef %n) call void @llvm.lifetime.end.p0(i64 8, ptr %_2) br label %bb1
Т.е. тот самый "рантайм итератора" на самом деле
%_6 = load i32, ptr %iter, align 4, !noundef !4 %_4 = icmp slt i32 %_6, 101 br i1 %_4, label %bb3, label %bb4 ... %_5 = load i32, ptr %iter, align 4, !noundef !4 %0 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %_5, i32 1)
- [.... слишком большой тред, остальное см. в режиме смотреть все |+ ] (390)!!
- Аргумент я не придумал, он есть - требование к freestanding Те же самые требова, Аноним (26), 10:46 , 10-Авг-25 (372)
>> Сам придумал, сам опроверг. > Аргумент с GCC придумал ты. Причем тут баги в оптимизаторе gcc.Аргумент я не придумал, он есть - требование к freestanding. Те же самые требования есть и у шланга. А вот что это "баги" - лишь твоя фантазия. >> О, теперь итератры стали "рантаймом" > В расте нет рантайма. > По определению сообщества опеннет. Ну сообщество какое-то определение предоставить не может, лишь невнятное обобщенное мямлянье, по "логике" которого и у сишечки, в реальности -- "всегда есть рантайм". >> Ну и да, че там за for было? >> https://rust.godbolt.org/z/YKEs1EoMn > Старательно прописывал ключи оптимизации чтобы не видеть вызовы метотдов итератора и много чего из "отсутствующего рантайма"?
Старательно убрал ключи оптимизации для тыканья носом опеннетчиков -- чтобы оно вообще не оптимизировало все там нафиг. > И ссылка на официальный документ > https://doc.rust-lang.org/reference/expressions/loop-expr.ht... > A for expression is a syntactic construct for looping over elements provided > by an implementation of std::iter::IntoIterator. Еще бы ты прочитал тот "официальный" документ, заметил бы, что это Trait, т.е. интерфейс/абстракция.
- Это требование gcc В freestanding для Си не входит реализация string h Вызовы m, Аноним (82), 11:53 , 10-Авг-25 (376)
> Аргумент я не придумал, он есть - требование к freestanding.Это требование gcc. В freestanding для Си не входит реализация <string.h> Вызовы mem* - это следствие работы оптимизатора. До сих пор висит незакрытый баг 2013г. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 Оптимизатор, если видит код (вручную написанный), похожий на реализацию memset, memcpy и тд, заменяет этот код на вызов встроенной реализации. При этом не помогают ни -ffreestanding, ни -fno-builtin. Помогает запрет оптимизации подобного кода -fno-tree-loop-distribute-patterns. > Еще бы ты прочитал тот "официальный" документ, заметил бы, что это Trait, т.е. интерфейс/абстракция. И кто реализует этот интерфейс/абстракцию последовательности чисел 1..10? 1..10 - это языковая конструкция, которая генерирует реализацию интерфейса "итератор". Это тот самый код с вызовами методов итератора, который ты пытаешься спрятать оптимизацией (спасибо llvm). Без оптимизатора в rust резко становиться видным "отсутствующий рантайм".
- Пошел юлеж вида Чисто в теории этого нету Вот А практическая реализация тех, Аноним (26), 12:44 , 10-Авг-25 (385)
>> Аргумент я не придумал, он есть - требование к freestanding. > Это требование gcc. > В freestanding для Си не входит реализация <string.h> > Вызовы mem* - это следствие работы оптимизатора.Пошел юлеж вида "Чисто в теории этого нету! Вот!". А практическая реализация тех самых, используемых в реальности для freestanding компилеров -- опеннетным теоретикам, конечно же не интересна. > И кто реализует этот интерфейс/абстракцию последовательности чисел 1..10?
Каждый тип, в том числе и примитивный, что "немножечко" систематичнее хаков реализации циклов в самом компиляторе (ну или вообще отсутствия итераторов), не? > 1..10 - это языковая конструкция, которая генерирует реализацию интерфейса "итератор". > Это тот самый код с вызовами методов итератора, который ты пытаешься > спрятать оптимизацией (спасибо llvm). Без оптимизатора в rust резко становиться видным "отсутствующий рантайм". Это тот самый код с хайнтами "инлайн" и реализацией для последовательностей в примитивных типах вида: https://doc.rust-lang.org/src/core/iter/range.rs.html#201
#[inline] unsafe fn forward_unchecked(start: Self, n: usize) -> Self { // SAFETY: the caller has to guarantee that `start + n` doesn't overflow. unsafe { start.unchecked_add(n as Self) } }
который и превращается (причем, совсем без llvm, во что тебя уже ткнули носом выше) в
.LBB2_1: lea ebx, [rdi + 1] mov edi, ebx ... cmp ebx, 101 jne .LBB2_1
так что и тут унылая демагогия и попытки натягивания совы (дебагсборки) на глобус - никак не влияют на реальность генерируемого кода.
- На себя посмотри кексперт по расту До моего сообщения ты даже не знал семантик, Аноним (82), 13:09 , 10-Авг-25 (387) –1
> Пошел юлежНа себя посмотри "кексперт по расту". До моего сообщения ты даже не знал семантику цикла for. Когда теба носом ткнули, что это всего лишь декорация над iterator.next() и для банального цикла над _примитивными_ целыми числами, генерится "отсутствующий рантайм" из вызовов методов неизвестной глубины. > #[inline] > ... > который и превращается (причем, совсем без llvm, во что тебя уже ткнули носом выше) в Ты не показал, что это оптимизируется без llvm. Ты показал просто промежуточный код, который вполне может быть после (некоторых) оптимизаций llvm. LLVM не запрещает делать оптимизации над llvm-ir (пошагово, разные оптимизации). Зачем ты рандомно тыкаешь на исходники, которые тем более показывают глубину безопасТности "отстутствующего" рантама со своими unsafe на каждой строчке?
- [.... слишком большой тред, остальное см. в режиме смотреть все |+ ] (392)!
- gt оверквотинг удален Т е в dead code elimination эта штука не умеет Оок , Аноним (-), 12:06 , 10-Авг-25 (378)
>[оверквотинг удален] > main: > push > rbx > mov > edi, 1 > .LBB2_1: > lea > ebx, [rdi + 1] > call > example::square::h9a0e2fa1b9513288 ... > Т.е. в dead code elimination эта штука не умеет? Оок! Сишный компилер вообще сделал бы чуть ли не гольный ret. Потому что... 1) Side effects у всего этого просто нет. 2) Вычисленное значение нигде и никак не используется.
- Т е ты опять влез в обсуждение, даже не утрудившись пройти по ссылке там опти, Аноним (26), 12:59 , 10-Авг-25 (386)
> Т.е. в dead code elimination эта штука не умеет? Оок! Сишный компилер > вообще сделал бы чуть ли не гольный ret. Потому что... > 1) Side effects у всего этого просто нет. > 2) Вычисленное значение нигде и никак не используется.Т.е. ты опять влез в обсуждение, даже не утрудившись пройти по ссылке (там "оптимизатор" выставлен в режим "size", чтобы не анроллил цикл нафиг) и почитать весь код? Оок! Как раз сайд эффект вида #[inline(never)] fn square(num: i32) { println!("{:?}", num * num); } там для того самого - чтобы показал, во что превращается цикл, без инлайна и прочего. Выкинь принт, и оно тебе выдаст ассемблерный листинг main: ret
- причем тут эмоции к факту того что в расте есть статический гц да внезапно ст, Аноним (-), 19:18 , 08-Авг-25 (226) –2
- Скрыто модератором, Аноним (82), 09:33 , 09-Авг-25 (318) [---]
> в расте есть *статический* гцЭто не сборщик, это контролёр: если находит мусор, то программа не соберёться. И растоманы воюют с этим контролёрем: приходится прятать травку, ой, мусор более изощереннными методами, чтобы контролёр не нашёл. Так как без ... мусора полезных программ не существует (unsafe).
- В новостях про GCC и LLVM вы так не пишете 129317 , Голдер и Рита (?), 09:46 , 08-Авг-25 (13) –1
- Но ведь tokio не в базе раста , Анонирм (?), 11:08 , 08-Авг-25 (25)
- Когда ничего уникального нет приходится писать это в расчете на то что простачки, Аноним (6), 13:05 , 08-Авг-25 (86) –1
- ну вот 8 а говорили не нужен, в следующий ответ будет уже 16 , Аноним (4), 09:28 , 08-Авг-25 (4) +4

- А через выпуск - 32 , Аноним (5), 09:31 , 08-Авг-25 (5)
- Спасибо за новый мем Теперь если не хочется его называть, можно использовать 8 , Аноним (10), 14:06 , 08-Авг-25 (110) –3
- У них деньги на 12 закончаться такими темпами Их спасёт только если МС их купи, Аноним (193), 17:19 , 08-Авг-25 (193)
- Тащите WD40 - пригодится А то все ржавеет и скрипит , Аноним (-), 12:41 , 10-Авг-25 (383)
> ну вот 8% а говорили не нужен, в следующий ответ будет уже 16% Тащите WD40 - пригодится! А то все ржавеет и скрипит :)
- Скрыто модератором, Аноним (20), 10:31 , 08-Авг-25 (19) +1 [---]

- А что будут делать те доблесные воины, которые на полном серьезе утверждали, что, Аноним (20), 10:45 , 08-Авг-25 (21)

- Как это что Будут точно продолжать также утверждать , Аноним (-), 11:05 , 08-Авг-25 (23) –1
- Так тут есть куча народу, которые сидят на всяких ненужных бздях Плюс с л 124 р, Аноним (-), 11:05 , 08-Авг-25 (24) +1
- Будут пользоваться DragonflyBSD , Аноним (101), 16:00 , 08-Авг-25 (173)
- Эти воины успокоятся, когда gccrs будет достаточно для сборки ядра или firefox , Аноним (506), 18:36 , 09-Авг-25 (353)
> не допустят появления Раста на своих системахЭти воины успокоятся, когда gccrs будет достаточно для сборки ядра или firefox. C++ в gcc в очень редких случаях отключают (для совсем уж embedded роутеров). Ну вот примерно также и с rust будет. А тонна llvm примерно одинаковых версий, размазанных по всей системе, уже задолбала, если честно.
- Я себе ядра без всякого хруста билдую Потому что на хрусте на данный момент там, Аноним (-), 12:43 , 10-Авг-25 (384)
> Эти воины успокоятся, когда gccrs будет достаточно для сборки ядра или firefox. > C++ в gcc в очень редких случаях отключают (для совсем уж > embedded роутеров). Ну вот примерно также и с rust будет.Я себе ядра без всякого хруста билдую. Потому что на хрусте на данный момент там - полтора недопиленных драйвера. И зачем мне какой-то портитип драйвера нвидий "на 400 строк" в реальном кернеле? Вот чтобы что? Не, реально работать с видяхой ЭТО ессно не способно пока. А мозилла с хрустом свое servo делала, делала, делала и ... уволила разработчииков, и проект на мороз выпихнула. И вот цать лет спустя оно даже пару страничек открывать вроде смогло. Правда все равно никому нахрен не упавшее.
- Хороший язык Этакий 171 трёхколёсный велосипед 187 , который не даст неискуш, Аноним (40), 11:36 , 08-Авг-25 (40) +3

- Это называется Си главного мозга Особенно грустно на это смотреть, когда откр, Аноним (-), 15:12 , 08-Авг-25 (154) –1
- Ладно Линус, тоже необычно мягко для себя отзывающийся о Rust, так даже Грег Кро, Аноним10084 и 1008465039 (?), 11:13 , 09-Авг-25 (321)
> Ну а для ассов IT как был, так и остаётся - Си.Ладно Линус, тоже необычно мягко для себя отзывающийся о Rust, так даже Грег Кроа-Хантер говорит, что Rust - дельная вещь для борьбы с ошибками, на Опеннете даже новость была. Если уж он, со столькими годами в ядре, не ас IT, то я уж не знаю кто для вас ас
- pub fn all_false const LEN usize - bool LEN false _ Когда я вижу п, Анон1110м (?), 19:59 , 09-Авг-25 (357) +4
pub fn all_false<const LEN: usize>() -> [bool; LEN] { [false; _] }Когда я вижу примеры программ, то не понимаю как Rust смог стать хоть соль–нибудь популярным. Вырвиглазно вырвиглазие какое–то.
- Скрыто модератором, Аноним (145), 17:19 , 15-Авг-25 (421) [---]
> Хороший язык! Этакий «трёхколёсный велосипед», который не даст неискушённому программисту упасть. Ну а для ассов IT как был, так и остаётся - Си."Асс", который считает что никогда не ошибается, или считает что в его код не будут контрибутить люди широкого спектра компетенции - это не асс, а ass, некомпетентная зашкварина.
- rust-gpu - сила Именно этот подход надо было продвигать в Bevy, а не ещё один я, Аноним (41), 11:39 , 08-Авг-25 (41) –3
- типикал раст, Аноним (86), 12:00 , 08-Авг-25 (50) +5

- Спорный тезис Скорее всего были учтены все or-зависимости, где предоставлялась , freehck (ok), 13:03 , 08-Авг-25 (84) +2

- А в чем собственно махинация Раст-зависимость есть ЕстьС ней собрать можно Мож, Анонусс (-), 13:47 , 08-Авг-25 (102)
- Это стадия отрицания, прямо как в свое время Линус не допустит Раста в ядре С, Аноним (20), 14:24 , 08-Авг-25 (122) +3
- А в том, что фактически пакеты собирались скорее всего без этих зависимосте, freehck (ok), 15:12 , 08-Авг-25 (153)
- Невероятно круто Но все равно, как это противоречит связаны сборочными зависим, Анонусс (-), 17:10 , 08-Авг-25 (192)
- Формально -- не противоречит А тезис спорный потому, что добавить в depends-ы , freehck (ok), 17:24 , 08-Авг-25 (198) +1
- в заголовке там аж целый до ц дебиан на 8 процентов зависит от раста я вообще , мяв (?), 23:52 , 08-Авг-25 (288)
в заголовке там аж "целый до^ц дебиан на 8 процентов зависит от раста". я вообще подумала, что это о базовой системе. а о пакетиках рассуждать.. это глупость та еще. сегодня хаперленд добавили, завтра - выуинули - уже 7%. какая к черту разница, зачем это в заголовке и зачем это в принципе кто-то считал. не хотят эти счетоводы долю цэ в пакетиках посчитать ?
- Скрыто модератором, Аноним (6), 13:04 , 08-Авг-25 (85) [---]

- Я могу понять, что корпорациям и бизнесу раст, теоретически, удобнее и приятнее , анонимммм (?), 13:25 , 08-Авг-25 (93) –6 [V]

- Пользователям, кстати, тоже - мне было не очень приятно услышать, что в моем бра, Аноним (-), 13:32 , 08-Авг-25 (94) +2
- В этом и смысл Действительно, на расте программировать не интересно и даже муто, xsignal (ok), 13:50 , 08-Авг-25 (103)
- А где эти свободные Вы не могли бы показать их вклад Напр в ядро линукса Котор, Анонусс (-), 13:56 , 08-Авг-25 (107)
- Ахаха Ядро Линкс на 99 9 писалось сугубо корпорастами еще тогда, когда Раста, Аноним (20), 14:09 , 08-Авг-25 (112)
- Rust - мультипарадигменный язык, на нём можно программировать даже в стиле дыряш, Аноним (-), 15:01 , 08-Авг-25 (144)
- Программистам он интересен тем, что надо что-то жрать, ведь деньги на жратву про, Аноним (20), 14:03 , 08-Авг-25 (109)
- Вакансий по расту в данный момент решительно меньше вакансий на С и C Иногда , анонимммм (?), 14:13 , 08-Авг-25 (114)
- А при чем тут данный момент Видишь ли, некоторые смотрят чуть дальше своего н, Аноним (20), 14:28 , 08-Авг-25 (124)
- Как высокомерно Видишь ли, мой юнный друг, данный момент в рамках языков прогр, анонимммм (?), 14:34 , 08-Авг-25 (126)
- Так для раста десяток лет уже прошел Плюс сейчас все происходит быстрее Ты посмо, Аноним (-), 14:42 , 08-Авг-25 (134)
- Правильно В каких годах вышли C и C ты, надеюсь, знаешь Посчитай, сколько де, Аноним (20), 14:44 , 08-Авг-25 (136)
- Я ещё там кое-что писал про языки, которые плотно пролезли в инфраструктуру Пер, анонимммм (?), 14:53 , 08-Авг-25 (141)
- Я тебе еще раз повторяю вопрос не когда , а что потом Я вот одного не пойм, Аноним (20), 15:06 , 08-Авг-25 (149)
- Изначальный мой пост - вопрос, зачем раст нужен программистам, если то же самое , анонимммм (?), 15:16 , 08-Авг-25 (157)
- Разве Код на расте получается менее дырявым, отваливается куча ошибок по памяти , Аноним (-), 15:28 , 08-Авг-25 (163)
- В том то и дело что нельзя За 40 не научились писать недырявые сишные программ, Анонусс (-), 15:30 , 08-Авг-25 (166)
- Возможно, у программистов в часности, на C есть некий опыт, из-за которого о, Аноним (20), 15:30 , 08-Авг-25 (167)
- А вот на жабаскрипте и ПХП вакансий просто море Я это рассматриваю как большой п, Фнон (-), 14:35 , 08-Авг-25 (127)
- Тому у кого будет опыт работы на языках, которые будут использоваться через 2-3 , Аноним (96), 14:42 , 08-Авг-25 (133)
- Некоректно сравнивать пхп и раст Совершенно разные языки для разных задач В ост, анонимммм (?), 14:55 , 08-Авг-25 (142)
- тому, кто всё это время тренировал ответы на бихэвиорал вопросы а технологии все, anonymmmeer (?), 17:23 , 08-Авг-25 (195)
- ты лжёшь с первого предложения, дальнейшие манипуляции читать нет смысла, 12yoexpert (ok), 15:03 , 08-Авг-25 (147)
- Деньгами, которые 171 корпорации и бизнес 187 платят за разработку Но это п, Аноним (101), 16:18 , 08-Авг-25 (178)
- На счет последней есть огромные сомнения А вот чтобы раб хорошо зарабатывал на п, Анонусс (-), 16:36 , 08-Авг-25 (186)
- Ты городишь несусветную чушь - будто все корпорасты разом решили давайте испорт, Аноним (272), 22:49 , 08-Авг-25 (272) +1
Ты городишь несусветную чушь - будто все корпорасты разом решили "давайте испортим жизнь прогерам и выберем самый бестолковый и непопулярный язык!". Коропорация ПЕРВАЯ кто заинтересован в самом массовом И УДОБНОМ языке, на который найдётся не меньше сотни вакансий даже в Гваделупе. Раст в этом плане - обочечная лошадь, которую пинают, суют во все соревнования, но она всё равно приходит последней. КТО будет вваливать бабки в заведомое корыто??
- Перестань, единственная мечта корпораций всегда была чтобы софт писать могли дво, Аноним (193), 17:24 , 08-Авг-25 (196)
- Программисты - народ подневольный, на чём прикажут - на том и пишут А если посмо, Аноним (291), 00:52 , 09-Авг-25 (297)
> Изначальный мой пост - вопрос, зачем раст нужен программистам, если то же > самое можно делать на уже существующих языках программированияПрограммисты - народ подневольный, на чём прикажут - на том и пишут. А если посмотреть глобально - любой язык программирования связан с финансовыми интересами какой-либо компании. Если говорить конкретно про Rust, то эта компания, в первую очередь, - Google. Деньги она делает на услугах, сопутствующих Rust'у. Как до этого она делала (и сейчас тоже) деньги на Go.
- Ага, это сейчас, воюя в комментариях, вы так говорите А когда баг в программе п, ИмяХ (ok), 07:23 , 09-Авг-25 (310)
>>за написанный код отвечаешь целиком лишь сам программист. А это - Assm, CАга, это сейчас, воюя в комментариях, вы так говорите. А когда баг в программе превращается в повреждённое оборудование, в убытки в десятки тысяч долларов или массовый взлом с кражей данных, вас хвать за жoпу, так сразу: "кхм.. пук... ну понимаете... софта без багов не бывает... а 70% багов по статистике это небезопасная работа с памятью..." и прочие отмазки, всё валите на свой любимый язычок, пытаясь убедить, что баги - это нормально. Сколько программистов в мире садятся в тюрьму за свои бэкдоры? Да всех случаев за всё время можно по пальцам пересчитать, ибо а натуре хрен ваши намеренные бекдоры для судебной экспертизы выглядят как "случайные баги"
- Скрыто модератором, Аноним (183), 16:33 , 08-Авг-25 (183) –1 [---]
- Оставлю маленький коммент На будущее Когда-то в 2010ых в одной большой стране с, InuYasha (??), 18:44 , 08-Авг-25 (224) +2

- Не переживай, Rust это всего лишь маркетинговый ЯП, который случайно поймал хайп, Аноним (317), 19:00 , 08-Авг-25 (225) –3
- Случайностей в таких масштабах не бывает Это не на будущее, и не на настоящее , InuYasha (??), 19:23 , 08-Авг-25 (228) –2
- Я знаю о процедурных, объектно-ориентированных, функциональных, мультипарадигмен, Прохожий (??), 22:59 , 09-Авг-25 (364)
> Rust это всего лишь маркетинговый ЯПЯ знаю о процедурных, объектно-ориентированных, функциональных, мультипарадигменных языках программирования. Что означает этот новояз? > который случайно поймал хайпе на теме безопасности И больше десяти лет это всё как бы случайно длится? Причём "хайп" подхватили конторы-лидеры планеты по разработке ПО? 🤦♂️ > но не имеющий под собой ни теоретической основы, ни ключевых преимуществ, которые бы нельзя было реализовать на других языках До Rust подобных языков не было, чтобы всё было под одной крышей - и абстракции с околонулевой стоимостью, и безопасная работа с памятью, и поддержка афинных типов, и обеспечение совместимости за счёт редакций даже при ломании некоторых языковых конструкций, и удобнейшая инфраструктура. А так, чисто теоретически, конечно, можно создать язык, ни в чём не уступающий Rust. > Тот же самый С++ с помощью профилей превращается в точно такой же безопасный ЯП для работы с памятью Почему же до сих пор не превратился в точно такой же? Почему до сих пор в коде на C++ находятся банальнейшие ошибки по работе с памятью? Снова программисты не те?
- Поздравляю, теперь вы знаете, что язык программирования еще может не иметь каких, Аноним (317), 00:27 , 10-Авг-25 (367)
> Я знаю о процедурных ...Поздравляю, теперь вы знаете, что язык программирования еще может не иметь каких либо фундаментальных преимуществ перед другими, но позиционировать себя таковым. > Причём "хайп" подхватили конторы-лидеры планеты по разработке ПО? Ориентация на вопросы безопасности, это один из этапов развития любой технологии на определенном этапе своего развития. Поэтому не льстите себе, отнюдь не Rust является причиной хайпа. > До Rust подобных языков не было ... Я уже писал, что ничего уникального в этом нет и все это присутствует или реализуется в других языках. На Rust десять лет (точнее 5-7 лет) никто не обращал особого внимания по обозначенным выше причинам (что все это есть в других языках), и только после поднятия вопросов безопасности обратили на него внимание из-за маркетинговой шумихи и истеричного сообщества. > Почему же до сих пор не превратился в точно такой же? Потому что требуется обеспечение обратной совместимости с ранее написанным кодом (сейчас планируется добавить фичи безопасности в С++26 стандарт). Ведь никто в здравом уме не будет переписывать работающие исходники из-за того, что разработчики языка столкнувшись с очередной проблемой решили сломать обратную совместимость для поддержки новой фичи в языке или библиотеке.
- Не превращается Без вменяемой, _compile-time_ move-семантики он никогда не стан, Аноним (-), 11:46 , 11-Авг-25 (397)
> Тот же самый С++ с помощью профилей превращается в точно такой же безопасный ЯП для работы с памятьюНе превращается. Без вменяемой, _compile-time_ move-семантики он никогда не станет таким же безопасным ЯП для работы с памятью. Без лайфтамов в декларациях он может достичь того же уровня безопасности только уходя от локального анализа кода к анализу всего call tree для каждой функции, но проблема останова будет бить по яйцам за такое. Потенциально возможно затолкать в C++ и лайфтаймы, и вменяемую move семантику, но тогда код на этом C++ станет несовместим с кодом на любом другом C++. То есть даже стандартную библиотеку C++ тебе придётся использовать, заворачивая в unsafe, и самостоятельно доказывая те гарантии, которые по задумке должен доказывать твой профиль. Паника Страуструпа и его хаотические метания с профилями не смогут сделать из Rust из C++. Он туфтой занимается. C++ превращается в legacy язык, его нишу разъедают со всех сторон Rust и Go, и Страуструпу следовало бы не биться в истерике, а принять складывающуюся реальность, и заняться полировкой существующего C++. Можно было бы попробовать в interoperability, скажем стандартизовать ABI для C++.
- Она бьет по яйцам только в концепции Rust, так как основана на идее контроля за, Аноним (317), 13:06 , 11-Авг-25 (399)
> но проблема останова будет бить по яйцам за такое.Она бьет по яйцам только в концепции Rust, так как основана на идее "контроля заимствования", которая как раз и требует анализа всего стека вызовов при переходе владения. Но кто сказал, что это единственно верная концепция безопасного управления памятью? > Потенциально возможно затолкать в C++ и лайфтаймы ... Зачем делать Rust из С++? Изначально требуется внятно описать саму концепцию безопасного управления, и только после этого можно делать какие-либо изменения в семантике или добавлять новые атрибуты. > ... не смогут сделать из Rust из C++ И слава богу, так как концепция управления памятью в Rust не полная (она не может гарантировать безопасную работу с памятью в некоторых сценариях), а раз нет возможности обойтись без unsafe кода, то сперва нужно доработать теорию и только потом переходить к её реализации в одном из основных языков программирования.
- Я тебе раскрою секрет статические гарантии безопасного управления памятью -- эт, Аноним (-), 23:43 , 11-Авг-25 (412)
> кто сказал, что это единственно верная концепция безопасного управления памятью?Я тебе раскрою секрет: статические гарантии безопасного управления памятью -- это проблема останова. Раст эту проблему обходит на кривой, ограничивая класс программ, которые можно написать на safe-подмножестве языка. > Изначально требуется внятно описать саму концепцию безопасного управления Ну опиши мне эту концепцию, как её задумал Страуструп. > сперва нужно доработать теорию и только потом переходить к её реализации в одном из основных языков программирования. Ты не доработаешь её, потому что проблема останова. Я готов допустить, что можно иначе ограничить класс программ, которые возможно написать на языке, и получить возможность на этом классе доказывать безопасность статически. Но для общего случая ты ничего не докажешь. А это значит, что какую бы концепцию ты не напридумывал бы совместно со Страуструпом, тебе придётся подпирать её либо костылём unsafe, либо костылём рантайм проверок, либо и тем и другим. Последний вариант наиболее вероятен.
- Поздравляю, теперь ты уже соглашается, что безопасность Раст ограничена определе, Аноним (317), 10:13 , 12-Авг-25 (413)
> Раст эту проблему обходит на кривой, ограничивая класс программ, которые можно написать на safe-подмножестве языка.Поздравляю, теперь ты уже соглашается, что безопасность Раст ограничена определенным классом программ, но есть и такие, которые на Раст нельзя написать без использования unsafe кода. >> Изначально требуется внятно описать саму концепцию безопасного управления > Ну опиши мне эту концепцию, как её задумал Страуструп.
Он решал другую задачу, поэтому у него концепция "ручное управление памятью".
- Так в этом нет абсолютно ничего плохого У нас будут программы, которые удовлетво, Аноним (-), 11:40 , 12-Авг-25 (415)
> безопасность Раст ограничена определенным классом > программ, но есть и такие, которые на Раст нельзя написать без > использования unsafe кода.Так в этом нет абсолютно ничего плохого! У нас будут программы, которые удовлетворяют этому классу и они не будут требовать каких-то дополнительных доказательств. А остальные придется доказывать другими методами. Если бы раст мог доказать валидноть произвольной программы - то тогда и unsafe не понадобился. >> Ну опиши мне эту концепцию, как её задумал Страуструп. > Он решал другую задачу, поэтому у него концепция "ручное управление памятью". А разве он что-то задумывал? Как кривая вывезла так оно и получилось.
- Типа предсказателем себя возомнил Хочешь переплюнуть Вангу Если хочешь, то дава, Аноним (-), 11:53 , 11-Авг-25 (398)
> Оставлю маленький коммент. На будущее.Типа предсказателем себя возомнил? Хочешь переплюнуть Вангу? Если хочешь, то давай сформулируй нам на будущее критерий, фальсифицирующий твоё предсказание. Вот допустим гипотетически, что Rust - это не заговор, но популярность его продолжит расти ещё лет 20, до уровня когда 30% кода в дебиане будет на расте. При таких допущениях, по каким признакам мы сможем определить, что Rust это не заговор? Спорим, что у тебя нет таких признаков? Твоё предсказание сформулировано в лучших традициях теорий заговоров, оно нефальсифицируемо. Что бы не произошло, любое вообразоимое и невообразимое событие можно объяснить в рамках твоей теории заговора. Так что Вангу тебе не переплюнуть, у той хотя бы стиль был своеобразный, но у тебя никакой оригинальности, обычный заговоротеоретик, коих в интернете миллиарды.
- Вообще-то это апологеты Rust не горят желанием представлять доказательства своег, Аноним (317), 13:27 , 11-Авг-25 (400)
Вообще-то это апологеты Rust не горят желанием представлять доказательства своего величия, тогда как я написал всего про два факта:1. У Rust отсутствует внятно сформулированная теоретическая основа безопасной работы с памятью, т.е. хотя бы банальный список выполняемых проверок в компиляторе, которые обеспечивают "доказательную безопасность". Их нет, и кстати их и быть не может, так как изначальная концепция не покрывает некоторые алгоритмы работы с памятью в безопасном режиме (т.е. без использования unsafe). Именно поэтому разработчикам приходится придумывать новые библиотечные классы, так как их пришлось добавлять для реализации новых сценариев работы, которые вылезли уже после выхода языка и отсутствовали в изначальной концепции. Либо вообще признаваться, что "это сделать невозможно, поэтому мы не будет считать такое поведение ошибкой" (https://doc.rust-lang.org/book/ch15-06-reference-cycles.html) 2. С чего вы решили, что Rust является единственным ЯП, который озаботился безопасной работой с памятью? Java и даже Ada так или иначе пытались решать данные вопросы. У С++ так же есть подвижки в этом направлении. Поэтому тут нет никакой теории заговора против Rust. Его разработчики молодцы, что подняли идею безопасности на первый план, но они забыли про множество других вопросов (удобство, обратная совместимость и пр.)
- Это не так Crust A bounded verifier for Rust alastairreid github io RelatedW, Аноним (-), 19:03 , 11-Авг-25 (407)
> 1. У Rust отсутствует внятно сформулированная теоретическая основа безопасной работы с > памятьюЭто не так. "Crust: A bounded verifier for Rust" alastairreid.github.io/RelatedWork/papers/toman:ase:2015/ "Stacked Borrows: An Aliasing Model for Rust" plv.mpi-sws.org/rustbelt/stacked-borrows/paper.pdf "Leveraging Rust types for modular specification and verification" alastairreid.github.io/RelatedWork/papers/astrauskas:oopsla:2019/ Плюс часть идей были взяты из Cyclone "Region-Based Memory Management in Cyclone" cs.umd.edu/projects/cyclone/papers/cyclone-regions.pdf "Safe Manual Memory Management in Cyclone" cs.umd.edu/projects/PL/cyclone/scp.pdf https://rustc-dev-guide.rust-lang.org/appendix/bibliography.... > хотя бы банальный список выполняемых проверок в компиляторе, которые > обеспечивают "доказательную безопасность". Вообще-то правила "доступа" к памяти четко определены. Each value in Rust has an owner. There can only be one owner at a time. When the owner goes out of scope, the value will be dropped. At any given time, you can have either one mutable reference or any number of immutable references. References must always be valid. > Их нет, и кстати их и быть не может, так как изначальная концепция > не покрывает некоторые алгоритмы работы с > памятью в безопасном режиме (т.е. без использования unsafe). Примеры в студию. > Либо вообще признаваться, что "это сделать невозможно, поэтому мы не будет считать такое поведение ошибкой" (https://doc.rust-lang.org/book/ch15-06-reference-cycles.html) В этом нет ничего постыдного. Назовите другой ЯП без GC с решенной проблемой Reference Cycles. Да и оно укладывается в модель безопасности раста - утечки не портят память. > Java и даже Ada JAVA вообще мимо, с ее то жирнючим рантаймом. А под Ada наверное имеется в виду Ada Spark, безопасное подмножество Ada. > так или иначе пытались решать данные вопросы. И как? Хорошо получилось? Теперь нас окружают сплошные безопасные программы :) ? > У С++ так же есть подвижки в этом направлении. Угу, комитет раскололся на два враждующих лагеря)) > но они забыли про множество других вопросов (удобство, обратная совместимость и пр.) Как раз раст уделяет огромного внимание удобству и обратной совместимости. Идея с edition оказалась просто шикарной. Она позволяет как легко добавлять новое в mainline, так и оставаться стабильной в рамках edition и выбрасывать неудачные решения между ними. Это все позволило расту получить сертификацию для автомотив, медицины и других критиченых областей применения.
- Я видел эти документы, а вы сами их читали В них приводится доказательства с уч, Аноним (317), 19:28 , 11-Авг-25 (409)
> Это не так ...Я видел эти документы, а вы сами их читали? В них приводится доказательства с учетом некоторых ограничениях корректной реализации некоторых библиотечных функций, в том числе и реализация unsafe кода. Но это не описание концепции, это доказательство реализации, причем с некоторыми допущениями и ограничениями. > There can only be one owner at a time... > At any given time, you can have either one mutable reference ... > Примеры в студию Вот это как раз и есть описание самой концепции безопасного управления памятью, но проверку который невозможно реализовать статически из-за фундаментальных ограничений некоторых сценариев использования (циклические ссылки, изменение данных в двух потоках и т.д.) Как раз в этом и состоит проблема Rust, что он замахнулся на все возможные сценарии, безопасность некоторых реализовать не в состоянии, после чего начинает юлить "это проверить невозможно, поэтому мы считаем это безопасным"
- М а вы как ожидали Что будет доказательство без ограничений для сферической п, Аноним (-), 11:31 , 12-Авг-25 (414)
> Но это не описание концепции, это доказательство реализации, причем с некоторыми допущениями и ограничениями.М... а вы как ожидали? Что будет доказательство без ограничений для сферической программы в вакууме? Или просто концепция без доказательства?)) > циклические ссылки, Циклические ссылки без GC это нигде не решенная проблема. Я не понимаю почему вы докопались до этого. (не, точнее понимаю, что нужно хоть к чему-то докопаться) > изменение данных в двух потоках Safe-Раст как раз исключает возможность менять данные с разных потоков без правильного доступа к ним. > Как раз в этом и состоит проблема Rust, что он замахнулся на все возможные сценарии, Как раз нет. Напр. они сразу сказали - утечки памяти не проблема. Потому что она не портит память, не приводт к выполнению кода и так далее. > после чего начинает юлить "это проверить невозможно, поэтому мы считаем это безопасным" Это "юление" только в вашей фантазии. А аргументов у вас никаких нет, и привести языки где это сделано лучше вы тоже не в состоянии. За сим в дальнейшем споре смысла не вижу.
- Ты точно не перепутал пост, на который отвечаешь И тред прочитал Чот не похоже, Анонм (-), 23:37 , 11-Авг-25 (410)
> Поэтому тут нет никакой теории заговора против RustТы точно не перепутал пост, на который отвечаешь? И тред прочитал? Чот не похоже, больше выглядит, будто ты решил поговорить со своими собственными тараканами.
- Чёрт, красиво Это ж насколько расстрельной будет должность CEO компании, кото, freehck (ok), 19:25 , 11-Авг-25 (408)
> Оставлю маленький коммент. На будущее.Чёрт, красиво! =) > принять закон о криминальной ответственности за дыры в софте Это ж насколько расстрельной будет должность CEO компании, которая возьмётся разрабатывать софт после того, как данный закон будет принят? Инуяша, ну вряд ли всё настолько плохо. > Ошибки ведь нельзя запретить? Да нет, это в прошлом. Если подумать, скорее всего мы все были бы не против такого расклада?
- У меня вопрос серьёзный для Rust а есть анализатор памяти, наподобие AddressSan, Аноним (242), 20:42 , 08-Авг-25 (242)

- Они дают честное слово - , Аноним (317), 20:44 , 08-Авг-25 (243) +1
- Если ты серьезно, то можешь почитать тутrustc-dev-guide rust-lang org sanitizers, Аноним (-), 20:52 , 08-Авг-25 (246) +1
- Ok , Аноним (242), 21:04 , 08-Авг-25 (251)
- Если речь про data race - то Rust тебя защищает от data race, если ты сам не буд, morphe (?), 21:15 , 08-Авг-25 (255) +3
> Как при программировании на Rust'е ловят ошибки многопоточностиЕсли речь про data race - то Rust тебя защищает от data race, если ты сам не будешь что-то делать через unsafe. Miri однако может даже в случае unsafe сказать где ты передаёшь между потоками что-то, что безопасно передавать между потоками нельзя, и аналогично с другими уязвимостями с unsafe. Race conditions по определению автоматически не поймать Утечки памяти - всё тот же valgrind
- Нет такого определения, просто модель управления памятью Rust такого не умеет, т, Аноним (317), 21:44 , 08-Авг-25 (266) –2
> Race conditions по определению автоматически не поймать Нет такого определения, просто модель управления памятью Rust такого не умеет, точно так же как в Rust не решается проблема и с утечками памяти при циклических ссылках.
- Ложь ---Safe Rust guarantees an absence of data races, which are defined as , Аноним (270), 22:15 , 08-Авг-25 (270) –4 [V]
> Race conditions по определению автоматически не пойматьЛожь. --- Safe Rust guarantees an absence of data races, which are defined as: two or more threads concurrently accessing a location of memory one or more of them is a write one or more of them is unsynchronized A data race has Undefined Behavior, and is therefore impossible to perform in Safe Rust. --- https://doc.rust-lang.org/nomicon/races.html
- Тогда уж цитируйте полностью , Аноним (317), 23:36 , 08-Авг-25 (280) +2
Тогда уж цитируйте полностью > However Rust does not prevent general race conditions. > > This is mathematically impossible in situations where you do not control the scheduler, which is true for the normal OS environment. ...
- Серьезный ответ - если разобраться, то Раст это как если к плюсам прикрутить ан , Аноним (324), 11:46 , 09-Авг-25 (325) –1
Серьезный ответ - если разобраться, то Раст это как если к плюсам прикрутить ан.ьный анализатор, который тебе программировать не даёт.
- Джентльменам верят на слово , Аноним (322), 12:23 , 09-Авг-25 (332)
Джентльменам верят на слово.
- США уже призвало всех отказаться от небезопасных языков А количество rust кода , Аноним (51), 21:00 , 08-Авг-25 (249) –2
США уже призвало всех отказаться от небезопасных языков! А количество rust кода в ядре только увеличится! Не нравится - форкайте)))

- ты не так понял оно призвало использовать только раст без этого отказываться о, 12yoexpert (ok), 00:46 , 09-Авг-25 (295)
ты не так понял: оно призвало использовать только раст. без этого отказываться от свободных языков смысла нет, нужен тотальный вендорлок
- Все он правильно понял Они ещё и Go рекламируют, ну и платформы js, java, net, Аноним (-), 00:56 , 09-Авг-25 (299) –3
>> ты не так понял: оно призвало использовать только растВсе он правильно понял. Они ещё и Go рекламируют, ну и платформы: js, java, .net
- какое наглое вранье думаешь рк забаннил все ссылки media defense gov 2023 Dec 06, Fyjy (-), 00:57 , 09-Авг-25 (300) –1
> ты не так понял: оно призвало использовать только раст. какое наглое вранье? > C#, Go, Java, Python, Rust, and Swift думаешь рк забаннил все ссылки? media.defense.gov/2023/Dec/06/2003352724/-1/-1/0/THE-CASE-FOR-MEMORY-SAFE-ROADMAPS-TLP-CLEAR.PDF
- Ах, питон забыл Как же без него Хотя я лично вот не понимаю Я юы сказал это н, Аноним (-), 01:03 , 09-Авг-25 (302) –4 [V]
Ах, питон забыл. Как же без него? Хотя я лично вот не понимаю. Я юы сказал это недосказанность. Они ещё и старье рекламируют, но совсем по другим причинам и тем не менее у этих языков все же везде есть фанаты - Fortran, Cobol. Хотя вот есть то что они не рекламируют, но ничуть не хуже - тот же Haskell.
- Это же небезопасно, а вдруг там трояна разместят Кто модерирует содержимое паке, Аноним (63), 21:20 , 08-Авг-25 (256)
> Для размещения библиотек поддерживается репозиторий crates.io. Это же небезопасно, а вдруг там трояна разместят? Кто модерирует содержимое пакетов?

- Это вам не AppStore, по этому вряд-ли кто то будет на линукс использовать серьёз, Аноним (262), 21:38 , 08-Авг-25 (262) –3
Это вам не AppStore, по этому вряд-ли кто то будет на линукс использовать серьёзный софт. Конечно кто-то может обходя васянское ПО с блэкдорами поставить платёжный терминал или банковский софт... Но разраб не будет соберать своё ПО на 100500 дистрибутивов, он сделает только на Mac и Win. Остальное сделают Васи - а блэкдор это монетизация))))
- cargo предоставляет возможность установить троян без crates io dependencies hors, Аноним (270), 22:11 , 08-Авг-25 (269)
cargo предоставляет возможность установить троян без crates.io [dependencies] horselib = { version = "1.13", git = "https://git.sr.ht/trojan/horse.git", branch = "totally-legit" }
В случае, если исходник с трояном есть локально, собрать зависимость тоже можно: [dependencies] horselib = { path = "/usr/src/malware/horse", version = "1.13" }
- И только амазон, гугл и майкрософт трояны не раздают А в их ToS, AUP и EULA воо, Аноним (-), 12:19 , 10-Авг-25 (381)
> В случае, если исходник с трояном есть локально, собрать зависимость тоже можно: И только амазон, гугл и майкрософт трояны не раздают. А в их ToS, AUP и EULA вообще-то написано немного другое и их неихло бы порой почитывать. Для понимания кто там трояны раздает и вообще. > [dependencies] > horselib = { path = "/usr/src/malware/horse", version = "1.13" } Это все прекрасно но 1) crates.io сделан персональный фавор относительно других -> вендорлок 2) по дефолту куча проектов юзает crates io с его вендорлоком на ту троицу. Т.е. в целом откровенно подмятый корпами проект с характерным эксперименсом вида "так и быть, можете облобызать нам ботинки, мы сегодня добрые".
- Скрыто модератором, Аноним (-), 14:47 , 10-Авг-25 (388) [---]
> Это все прекрасно но > 1) crates.io сделан персональный фавор относительно других -> вендорлок Ой, а у дебиана сделан персональный фавор для реп дебиана! Да, другие можно подключить, но это все равно вендерлок! > 2) по дефолту куча проектов юзает crates io с его вендорлоком на ту троицу. Проекты используют то, что им удобно. Если вы белка-истеричка, то кнопочка fork находится вооон там. Кликайте, делайте свои зависимости и сами их мейнтейньте. > Т.е. в целом откровенно подмятый корпами проект с характерным эксперименсом вида "так > и быть, можете облобызать нам ботинки, мы сегодня добрые". У тебя странные фантазии. Можете тебе стоит сходить к психиатру?
- При чем тут твоян Если ты сам ставишь такую зависимость, значит понимаешь что д, SubGun (ok), 00:16 , 13-Авг-25 (416)
При чем тут твоян? Если ты сам ставишь такую зависимость, значит понимаешь что делаешь. И делаешь это злонамеренно.
- Используйте Mos Hub На платформе доступен публичный каталог готовых решений Ка, Аноним (291), 23:34 , 08-Авг-25 (278) –3
Используйте Mos.Hub. На платформе доступен публичный каталог готовых решений. Каждое из них проходит несколько стадий проверки на безопасность, так что пользователи могут быть уверены в том, что ПО не содержит уязвимостей и не нанесет вреда при внедрении. Любой участник сообщества Mos.Hub может переиспользовать решения из каталога, участвовать в развитии или выложить в общий доступ свой opensource проект.
- решений чего кто задачку задавал уравнений ты зря загон сообществом называешь, 12yoexpert (ok), 00:45 , 09-Авг-25 (294)
решений чего? кто задачку задавал? уравнений? ты зря загон сообществом называешь
- в случае, если проверка на бэкдоры не проходит, ввиду их отсутствия - их добавля, нейм (?), 08:33 , 09-Авг-25 (312)
в случае, если проверка на бэкдоры не проходит, ввиду их отсутствия - их добавляют?
- А кто модерирует коммиты в сишные либы, типа ХЗ Или кто смотрит, чтобы на сайте , Аноним (-), 23:50 , 08-Авг-25 (286)
> Это же небезопасно, а вдруг там трояна разместят? Кто модерирует содержимое пакетов? А кто модерирует коммиты в сишные либы, типа ХЗ. Или кто смотрит, чтобы на сайте кернел.огр не было бекдоров? Почему в ядре 10 лет жил бекдор от NSA?
- Похоже, люди стали понимать, зачем создавался запутанный язык, и почему его так , Аноним (63), 00:24 , 09-Авг-25 (289)
Похоже, люди стали понимать, зачем создавался запутанный язык, и почему его так активно продвигают.
- Запутанный Ты про тот, который будет тебе в выхлопе копилятора подсказки кидать , Аноним (-), 00:30 , 09-Авг-25 (290) +1
> Похоже, люди стали понимать, зачем создавался запутанный язык, и почему его так активно продвигают.Запутанный? Ты про тот, который будет тебе в выхлопе копилятора подсказки кидать и по рукам бить? Или про то где a+b это undefined behavior, он вышли за границы буфера, подарим атакующему рут? В гугле расту учат ГОшников. ГОшников, Карл! И они его за 3-4 месяца осваивают. А сколько нужно учить СИ или читать 2000 страниц стандарта С++?
- Его не нужно учить На нем нужно думать Если не можете, это не для вас , Аноним (187), 08:45 , 09-Авг-25 (313) +1
> А сколько нужно учить СИЕго не нужно учить. На нем нужно думать. Если не можете, это не для вас.
- О, не, на C думать противопоказано Особенно если ты пишешь на C Язык C наприме, Аноним (-), 11:28 , 11-Авг-25 (395)
> Его не нужно учить. На нем нужно думать. Если не можете, это не для вас.О, не, на C думать противопоказано. Особенно если ты пишешь на C. Язык C например, в большинстве ситуаций, не позволяет описать разницу между указателем и массивом, потому что массив и есть указатель. Поэтому при написании программ на C надо думать на чём-то другом, как правило люди выбирают ассемблер и думают на нём. Если же ты думаешь на C, то это временно, с практикой пройдёт.
- Во первых не смешивай 2 разных языка Си можно выичить за неделю Си плюс-плюс з, Аноним (-), 15:06 , 09-Авг-25 (344)
>А сколько нужно учить СИ или читать 2000 страниц стандарта С++?Во первых не смешивай 2 разных языка. Си можно выичить за неделю. Си плюс-плюс за год. Весь Си плюс-плюс никогда не сможешь выучить.
- Вам или между Си и С ни на что не намекает Если бы я хотел их смешать, то н, Аноним (-), 17:47 , 09-Авг-25 (348)
> Во первых не смешивай 2 разных языка. Вам "или" между Си и С++ ни на что не намекает? Если бы я хотел их смешать, то написал бы как некоторые кексперты "С/С++" > Си можно выичить за неделю. Вот прям все 190+ UB (gist.github.com/Earnestly/7c903f481ff9d29a3dd1) можно выучить на неделю?)) Да вы просто гений! > Весь Си плюс-плюс никогда не сможешь выучить. Вот тот и оно.
- Нельзя Не, то есть, если под выучить ты понимаешь способность пройти тест с в, Аноним (-), 11:31 , 11-Авг-25 (396)
> Си можно выичить за неделю.Нельзя. Не, то есть, если под "выучить" ты понимаешь способность пройти тест с вариантами ответов, то да, можно. Но такому знанию цена ноль. За полгода можно выучить C, если за плечами есть знание другого языка, причём вполне практическое знание, которое позволяет писать грамотный код. Но не за месяц, и тем более не за неделю.
- От того, что из названия этого бекдора убрали слово NSA , он из ядра не исчез , Аноним (322), 12:20 , 09-Авг-25 (330)
>Почему в ядре 10 лет жил бекдор от NSA?От того, что из названия этого бекдора убрали слово "NSA", он из ядра не исчез.
- Любая система пакетов - зло и опасна, если установщик не привязывается к контрол, SubGun (ok), 00:21 , 13-Авг-25 (417)
Любая система пакетов - зло и опасна, если установщик не привязывается к контрольной сумме, а только к версии.
- Пример ХЗ библиотеки показывает, что даже в проекте на недоязыке без пакетов, с , Аноним (-), 18:08 , 15-Авг-25 (422)
> Любая система пакетов - зло и опасна, если установщик не привязывается к контрольной сумме, а только к версии.Пример ХЗ библиотеки показывает, что даже в проекте на недоязыке без пакетов, с самыми "вкусно" пахнущими БШ-п0ртянками и надежнейшими тарболами... ты получишь бекдор в супер распространенной либе)
- Вот-вот Им главное завязать на себя побольше ПО А там , Аноним (274), 22:52 , 08-Авг-25 (274) +2
Вот-вот. Им главное завязать на себя побольше ПО. А там ...

- Скрыто модератором, Аноним (-), 00:44 , 09-Авг-25 (293) –4 [---]
Вопрос такой. Компилятор до сих пор с закрытым исходным кодом?
- А ещё такой вопрос - локальный сервер пакетов cargo можно какой поднять И пакет, Аноним (-), 00:54 , 09-Авг-25 (298) –1
А ещё такой вопрос - локальный сервер пакетов cargo можно какой поднять? И пакеты только для rust годятся или для чего угодно?

- Cargo работает только с Rust-крейтами Локальный сервер Зеркало Зачем Мож, Аноним (291), 01:06 , 09-Авг-25 (303)
Cargo работает только с Rust-крейтами. Локальный сервер ...? Зеркало? Зачем? Можно просто локальный репозитарий. На crates.io есть программка которая скачивает самые популярные крейты. А можно и не скачивать , а устанавливать крейты из linux-дистрибутива, например, Debian или Ред ОС
- Быстрый ответ - да, можно Подробный тут - там дофига возможностей локальный гло, Аноним (-), 11:02 , 09-Авг-25 (320)
> А ещё такой вопрос - локальный сервер пакетов cargo можно какой поднять? Быстрый ответ - да, можно. Подробный тут - там дофига возможностей (локальный/глобальный, зеркала и тд) doc.rust-lang.org/cargo/reference/specifying-dependencies.html > И пакеты только для rust годятся или для чего угодно? что значит "чего угодно"?)) если ты имеешь в виду сидную либу или видос рикки рола, то нет - так нельзя))
- Скорее всего можно, раз в расте есть публикация пакетов Думаю, простейший можно, SubGun (ok), 00:28 , 13-Авг-25 (418)
Скорее всего можно, раз в расте есть публикация пакетов. Думаю, простейший можно на nginx с поддержкой webdav поднять. Я так с java сделал.
- А я правильно понимаю, что если условно zlib написан на Rust, то все использующи, Аноним (315), 09:09 , 09-Авг-25 (315) +1
А я правильно понимаю, что если условно zlib написан на Rust, то все использующие его пакеты согласно этой статистике считались бы "завязанными на Rust"?

- Не парьтесь, там просто каждый крейт собирается отдельным пакетом, и вот эта ве, Аноним (316), 09:18 , 09-Авг-25 (316) +1
Не парьтесь, там просто каждый крейт собирается отдельным пакетом, и вот эта "великая статистика" обусловлена тем что там librust-* пакетов примерно как python-* пакетов будет.

- Вот что интересно - а сколько кода на Rust в винде и маке Есть ли там все эти о, abu (?), 11:54 , 09-Авг-25 (327)
Вот что интересно - а сколько кода на Rust в винде и маке? Есть ли там все эти отчетности про 8 процентов?

- Я провёл небольшое исследование из любопытства Вот результаты code check sh, freehck (ok), 21:42 , 14-Авг-25 (419)
Я провёл небольшое исследование из любопытства.Вот результаты: % ./check.sh === bookworm/main === Total: 34341 With librust deps: 1175 Percent: 3.42%=== sid/main === Total: 39315 With librust deps: 2210 Percent: 5.62%
Если кому-то интересно, то вот скрипт: #!/bin/bashreleases="bookworm sid" #sections="main contrib non-free" # NB: 1 librust-dependent package in contrib doesn't change anything sections="main" for release in $releases; do for section in $sections; do sources="$release.$section.sources" curl -s http://deb.debian.org/debian/dists/$release/$section/source/Sources.gz | gunzip -c > $sources pkgs_total=$(grep ^Package: $sources | wc -l) pkgs_with_librust_dep=$(grep -B6 '^Build-Depends' $sources | grep -E '^Build-Depends|^Package' | grep -B1 'librust' | grep Package | wc -l) if [ "$pkgs_with_librust_dep" != "0" ]; then percent=$(echo "$pkgs_with_librust_dep * 100 / $pkgs_total" | bc -S2) else percent=0 fi cat <<EOF === $release/$section === Total: $pkgs_total With librust deps: $pkgs_with_librust_dep Percent: ${percent}% EOF done done
|