1.1, Аноним (-), 16:23, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +9 +/– |
В общем Чуда не произошло.
Накладные расходы в 5.5-8% потребления памяти и торможение на 1.5% думаю допустимы, но неприятны.
Особенно учитывая улучшение 'немного лучше 50%' - "защиту от 57% уязвимостей класса use-after-free"
Может после этого попросят андроид команду поделиться опытом испроьзования Rust.
| |
|
2.4, _kp (ok), 16:50, 23/01/2024 [^] [^^] [^^^] [ответить]
| –5 +/– |
А в Rust безопасный код типа только при компиляции проверяется?
| |
|
|
4.76, Аноним (76), 03:23, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Если бы ты сам почитал хотя бы википедию, то знал бы, что во время выполнения программы также выполняются некоторые проверки безопасности. Например, при обращении к срезам (slices) или использовании небезопасных функций и блоков кода, Rust может проверять индексы, границы массивов и другие условия безопасности. Естественно, небесплатно.
| |
|
|
2.24, Аноним (24), 20:08, 23/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Может после этого попросят андроид команду поделиться опытом испроьзования Rust.
Так поделились же год назад. Надо свежЕе? Предполагаю не сильно статистика поменялась. Кратко: в андроидовском раст-коде ошибок работы с памятью (это не только use-after-free, но и всякие выходы за границы буфера, двойное освобождение и прочее ) - ровно ноль. Это в 1.5 млн строк кода разных системных компонент, 21% всего нового нативного кода системы. Собираются и дальше выкидывать си/плюсы и внедрять больше раста. Уже даже посматривают и облизываются на раст-подсистему, создаваемую в линукс-ядре. Короче, очень довольны растом:
https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.ht
| |
|
3.25, Аноним (-), 20:19, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не, рамарка была про "андроид команда своими программерами делиться не захочет, а своих еще переучить нужно или новых набрать".
С другой стороны, я видел их отчет по поводу "Rust fact vs. fiction: 5 Insights from Google's Rust journey in 2022"
и там людей с переучивали весьма быстро.
| |
|
2.26, Аноним (26), 20:24, 23/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
57% это даже не стакан на половину пуст, а пуст на 7 % меньше чем на половину
| |
|
3.55, n00by (ok), 11:51, 24/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> стакан на половину пуст
Стакан априори пуст (с завода-изготовителя). Если в нём что-то есть, значит, его наполняли. То есть единственно верная оценка: стакан наполовину полон. Кто заявляет обратное, у того проблемы с пониманием проходящего.
| |
|
2.70, 12yoexpert (ok), 23:00, 24/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Может после этого попросят андроид команду поделиться опытом испроьзования Rust.
думаю, просто перейдут на firefox
| |
2.81, Бывалый смузихлёб (?), 10:47, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> внедрение MiraclePtr предоставило защиту от 57% уязвимостей класса use-after-free
> для указателей требуется хранить дополнительные 4 байта со счётчиком ссылок
Ну вообще-то, очень неплохо. Весьма незначительными изменениями сделали раст наполовину не нужным даже теоретически.
Такими темпами может оказаться, что на него и даром не надо ничего переписывать, ведь сверхъестественными способностями он не обладает
| |
|
1.2, anonymmm (?), 16:34, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
The owner of the memory must free it when the time is right, don‘t assume raw_ptr<T> will free it for you (it won’t). Unlike std::unique_ptr<T>, base::scoped_refptr<T>, etc., it does not manage ownership or lifetime of an allocated object.
if the pointer is the owner of the memory, consider using an alternative smart pointer.
Так я не понял, а почему они просто std::unique_ptr и прочие smart указатели из стандартной библиотеки не используют.
| |
|
|
3.57, n00by (ok), 11:55, 24/01/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это психологический треннинг? Если пример кода (на 19:32) поместить в реальный мир, то foo() будет встроена, с соответствующей оптимизацией.
| |
|
|
5.78, n00by (ok), 10:10, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Аноним пусть делает, что хочет. Я велосипедил std::unique_ptr<> до принятия в стандарт и очень внимательно изучал генерируемые MSVC 7-й версии листинги. Потому для себя выводы сделал ещё тогда, а с тех пор оптимизаторы шагнули вперёд. Пользуясь случаем, передаю привет секте свидетелей экономии углеродного следа за счёт разделяемых библиотек.
| |
|
|
|
2.6, 12yoexpert (ok), 16:56, 23/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
это аналоги обычных std-шных указателей, только с тормозными проверками, принудительным падением и крешдампом
| |
2.18, unix greybeard (?), 19:22, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вероятно для этого придется переписывать слишком много кода. А так можно просто заменить обычные указатели на raw_ptr и заиметь Профит.
| |
|
3.43, mister_0 (?), 23:52, 23/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
но если всё переписать на unique, shared и weak ptrs, то double free и use after free станут невозможными, разве это не профит???
| |
|
4.50, 12yoexpert (ok), 00:51, 24/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
разыменовывать нулевые smart pointers законом запретили? кажется, я что-то пропустил
| |
|
5.59, anonymmm (?), 12:08, 24/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
такое разименование легко заменить, процесс грохнется с pagefault, проблема же, что используются адреса, по которым уже освобождён объект и состояние памяти в неизвестном состоянии.
| |
|
6.61, n00by (ok), 12:17, 24/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> используются адреса, по которым уже освобождён объект
Очень хочется увидеть пример кода для unique_ptr<>.
| |
|
5.60, n00by (ok), 12:15, 24/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> разыменовывать нулевые smart pointers законом запретили?
20.11.1.2.4 Observers [unique.ptr.single.observers]
add_lvalue_reference_t<T> operator*() const;
1 Preconditions: get() != nullptr.
2 Returns: *get().
16.5.4.11 Expects paragraph [res.on.expects]
1 Violation of any preconditions specified in a function’s Preconditions: element results in undefined behavior.
> кажется, я что-то пропустил
Совершенно точно. Момент, когда программистов заменили на пользователей библиотек и упаковщиков кода.
| |
|
6.62, 12yoexpert (ok), 12:32, 24/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> 1 Violation of any preconditions specified in a function’s Preconditions: element results in undefined behavior.
ты такой остряк, в квн не пробовал выступать?
специально для тебя разжую: что мешает ошибочно или специально разыменовать нулевой автоматический указатель? выше написано "то double free и use after free станут невозможными," - в каком месте use after free станет невозможным?
с появлением поколения "тред не читал, комментить побежал" мы и заимели electron и rust
| |
|
7.66, n00by (ok), 17:23, 24/01/2024 [^] [^^] [^^^] [ответить] | –2 +/– | Тебе ничего не мешает Я могу это запретить - мне это разрешил стандарт 3 30 ... большой текст свёрнут, показать | |
|
|
9.79, n00by (ok), 10:25, 25/01/2024 [^] [^^] [^^^] [ответить] | +/– | Прекрасно вижу, что ты принялся подменять _свой_ тезис, оказавшись в неудобном п... текст свёрнут, показать | |
|
|
|
|
|
|
|
2.80, anonymous (??), 10:41, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Им раньше shared/unique ptr использовать религия не позволяла. Им их совсем недавно разрешили использовать (где-то в конце 2010-х).
| |
|
1.3, Аноним (3), 16:38, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Эффективность оценили, а приемлемость? Веб приложения и так работают небыстро.
| |
|
2.7, Аноним (-), 16:59, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
"Просто обновите себе комп", как говорил Тодд-купи-скайрим-Говард)
С учетом развития железа, просто поставят в новый хромбук процессор на 5% мощнее.
Ну и скажут 'минимум 8/16 гигов оперативки'.
| |
|
3.33, Аноним (33), 22:27, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> просто поставят в новый хромбук процессор на 5% мощнее
На 3%, не более: жирный софт должен тормозить.
| |
|
2.11, Аноним (11), 17:43, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Веб приложения и так работают небыстро.
Можешь конкретные урлы назвать или так, от пацанов во дворе слышал?
| |
2.15, Самый Лучший Гусь (?), 19:06, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Веб приложения работают достаточно быстро на современном железе. Я имею в виду железо хотя бы не старше 2014 года (Lenovo ThinkPad T440p)
| |
|
1.13, ox (?), 18:43, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> для защиты от уязвимостей, вызванных обращением к уже освобождённым областям памяти
Может, учебник по С++ почитать?
| |
|
|
3.46, 12yoexpert (ok), 00:44, 24/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
How to program c++, Харви Дейтел, Пол Дейтел (одно из первых изданий, жёлтая обложка), там хорошо объясняются актуальные до сих основы языка и вообще программирования (у меня до сих пор переводы систем счисления от зубов отскакивают), чего нет в новых изданиях
Deitel P., Deite H. C++20 for Programmers 3ed 2021
Худшее, что видел - все книги скотта мейерса, бесполезный набор букв, и все книги от o'really - бесполезный мусор (не только по плюсам)
Потом можно по приколу почитать александреску, страуструпа по плюсам или всяких кнутов по алгоритмам, но, скорее всего, ты уже начнёшь кодить и будешь сам знать, что тебе читать.
| |
|
2.16, Аноним (16), 19:08, 23/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
И как это поможет от обычных человеческих ошибок? Или ты из тех самых «настояших сишников», которые ошибок никогда не допускают?
| |
|
3.17, Аноним (-), 19:22, 23/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ты сначала научись отличать си плюс-плюсника от чистосишника.
| |
|
|
|
|
|
4.64, Минона (ok), 14:11, 24/01/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> это как бы основная фишка плюсов, есличо
Основная фишка С/С++ - UB.
| |
|
|
6.67, n00by (ok), 17:36, 24/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> кто ж вас, детей, так запугал этим UB?
Вон в #62 эксперт меня пугал.
| |
6.77, Аноним (77), 09:47, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Пугает время на поиск и отладку проблемы, потраченные нервы пользователей, не говоря уже возможных финансовых и репутационных потерях. Хеловорды конечно можно абыкак и на абычом писать.
| |
6.83, Минона (ok), 15:26, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> кто ж вас, детей, так запугал этим UB? из каждого утюга о
> нём кукарекаете
Сам создатель.
| |
|
|
|
|
|
1.22, Аноним (22), 19:40, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>так как для указателей требуется хранить дополнительные 4 байта со счётчиком ссылок.
Чем это отличается от std::shared_ptr?
| |
|
2.28, Аноним (26), 20:49, 23/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Для shared_ptr хранить нужно больше, да ещё по умолчанию и в отдельном чанке памяти, Садись, два
| |
|
3.44, mister_0 (?), 23:53, 23/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
с shared будет 100% багов пофикшено, а так только 57% остальные для performance review на следующий год
| |
|
4.63, Аноним (26), 12:48, 24/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Передача указателя по указателю может же быть не просто так. Собственно, вопрос чтобы вытянуть на троекчку: какая новая бага может появиться, если все такие сырые указатели заменить на shared_ptr сссылки?
| |
|
5.82, anonymous (??), 11:42, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
О каких таких сырых указателях идет речь? Гугл использует собственную реализацию shared_ptr, вопрос заключался в том, а почему сразу не использовать их вместо собственной реализации неизвестного радиуса кривизны?
| |
|
6.85, Аноним (26), 21:16, 25/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Гугл может и использует свою реализацию google::shared_ptr, как и многие другие древние компании, т.к. гугл существует много дольше чем с++11 с std::shared_ptr. Однако научить же читать, выше речь не о shared_ptr.
| |
|
|
|
|
|
1.29, лютый жабби.... (?), 20:51, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
хромоног просто ужасен - запускаю его всегда из консоли, за несколько часов "работы" несколько экранов всяких failed, unable итд.... а периодически закрывается с сегфолтом.
хромиум что дебианий, что арчевский - один фиг. значит не в сборщиках дело, а в косом гугле
| |
|
2.30, Аноним (26), 20:57, 23/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну запусти теперь так ФФ. У него уже, например, несколько десятков последних релизов табы зависают
| |
|
1.32, Печенька (?), 22:13, 23/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> Кроме того, при использовании MiraclePtr зафиксированы отдельные регрессии, приводящие к снижению производительности, но не связанные с ключевыми метриками, такими как время загрузки и отрисовки страницы.
Я может что не понимаю, но какая метрика ключевая для программы, которая загружает и отрисовывает страницы?
| |
1.52, Аноним (52), 08:55, 24/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
30 придумывают разные виды указателей, и угомониться никак не могут, и даже расширили синтаксис метапрограммирования. Вот уж действительно С++ - это Си на костылях. Вместо того, что бы переложить управление памятью на среду выполнения, они непрерывно создают макросы для реализации очередной разновидности указателей, которые "ни такие как те, что были раньше, а намного лучше и безопаснее".
| |
|
2.53, tty0 (?), 09:21, 24/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вместо того, чтобы переложить мыслительный процесс на человека, продолжают говнокодить и терять указатели.
Ошибки и опечатки случаются, но искать их должен компилятор. И не так как в расте.
| |
|
1.75, Аноним (76), 03:20, 25/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>While there are performance costs associated with the implementation of MiraclePtr, our analysis suggests that the benefits in terms of security improvements far outweigh these. We are committed to continually refining and expanding the feature to cover more areas.
Короче гуглятам понравилось, будут пользоватся. Еще бы, половина проблем с памятью решена почти бесплатно, память сейчас дешевая.
| |
|