|
|
|
|
5.60, Аноним (-), 19:07, 14/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| –3 +/– |
> Что, разыменновывание нулевого указателя в крестах больше не UB?
Все еще UB. К сожалению, это тяжелое наследие сишки.
> А может ещё и за границу массива нельзя вылезти?
Используй итераторы.
> И двойных освобождений там нет?
Используй smart pointer'ы.
В с++ намного больше современных инструментов чтобы не выстрелить себе в ногу.
Другое дело что ими не все пользуются - вот как раз люди с си головного мозга.
А вот нормальные разрабы пишут на с++ на порядок более надежный софт.
Иначе как объяснить, что сишка сейчас осталась только в легаси, а все нормальные проекты не на си, не на расте, не на фортране или аде, а на плюсах?
| |
|
|
7.103, Александр (??), 00:43, 15/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> Если я вижу файл с расширением cpp, то не вчитываясь в код, я не могу быть уверенным в том, что там нет таких серьёзных проблем
Если я вижу файл с расширением rs, то не могу быть уверен в том, что там не используются unsafe конструкции, а соответственно нет уверенности, что там нет проблем.
> >Задействован новый парсер формата JSON, переписанный с C++ на язык Rust, и обеспечивающий более высокую защищённость
Это только время может показать
| |
|
|
|
|
|
|
5.63, Аноним (53), 19:15, 14/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
>В современной разработке никому не придет в голову принимать и мерджить патч присланный по почте (слава богу машине, не голубиной))
Ядро до сих пор примерно так и пишут
>Тут будет куча CI, тестов, может линтер и тд
На всех линтеров не напасёшься.
https://www.opennet.dev/opennews/art.shtml?num=56449
>Опубликован набор патчей, ускоряющих сборку ядра Linux на 50-80%
Сколько ещё разных проблем, не пойманных анализаторами - неизвестно
>Утверждение сомнительное, не уверен, что тогда бы линукс взлетел.
Популярности линукса способствовали: свободная лицензия, возвращающая наработки в апстрим, нежелание Таненбаума принимать патчи в миникс, позволяющие им нормально пользоваться, долгострой Hurd, который постоянно переписывался и не был пригоден для реального применения.
| |
|
|
7.84, Аноним (53), 19:42, 14/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
>а также тонны денег, которые были влиты в линукс, пока эти суды шли.
Деньги начали вливаться гораздо позже, чем была опубликована самая первая версия ядра, для начала ядру нужно было показать свою жизнеспособность.
>Это была самая существенная причина. Все остальное мелочи
Там было очень маленькое окно, условно в пару лет, в которое можно было запрыгнуть. Поторопись GNU, и деньги полились бы в Hurd. Или если бы кто-то написал свой аналог Minix-а.
| |
|
|
|
|
|
|
3.40, Аноним (-), 18:05, 14/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +1 +/– |
> А что, на rust уже стало принято писать код без unsafe
Вообще-то так всегда было.
У них принято использовать unsafe только тогда, когда иначе написать невозможно.
Собственно за это накидали в панамку истеричке-аффтору Actix - он пытался игнорировать правила использования unsafe (тут подробнее opennet.ru/opennews/art.shtml?num=52208)
Многие либы используют атрибут #![forbid(unsafe_code)], который просто запрещает использование unsafe во всем крейте. А для карго есть cargo geiger, который проверяет все зависимости на наличие или отсутствие unsafe_code.
Как результат - на середину 2024 года 80% пакетов не используют unsafe.
opennet.ru/opennews/art.shtml?num=61251
Но есть ситуации когда ты его не имеешь права не использовать.
Напр. при взаимодействии с чужим кодом через FFI.
| |
|
|
5.62, Аноним (-), 19:14, 14/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> то без unsafe блоков обойтить нельзя
Да. И это абсолютно нормально.
> И все преимущества безопасного языка улетучиваются.
Нет, не улетучивается. У тебя unsafe код лежит отдельными кучками с большими предупредительными знаками, а не размазан равномерным слое по полу, стенам и так далее.
Ну а то что кучек много... ну так это предметная область такая, ничего тут поделать нельзя.
> А не проще ли сразу взять чистый Си.
Проще. А потом имеем что имеем))
Раст же это не столько safe и unsafe.
Тот же боровинг и лайфтаймы проверяются и для unsafe code, если это не pointer'ы (которые по умолчанию unsafe). В расте есть нормальные типы, которые позволяют писать более строгий код.
| |
|
|
|
2.51, Аноним (-), 19:00, 14/02/2025 [^] [^^] [^^^] [ответить] [↓] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> Вот почему стоит сосредоточиться на улучшении инструментов для C/C++, таких как статический и динамический анализ кода, Address Space Layout Randomization и Data Execution Prevention,
Напомни когда СИ был представлен? Или хотя бы стандартизирован?
Почему это не было сделано раньше, а шевелиться начали только когда появились какие-то смузихлебы с новым модным языком?
Фигня в том, что им было пофигу. На ошибки, на постоянные CVE.
Они просто говорили "мы так привыкли, идите отсюдова".
И люди шли, на джаву, сишарп, котлин и прочие языки которые заменили СИшку практически во всех областях.
С С++ ситуация немного лучше - там добавили smartpointer'ы и прочие блага цивилизации.
Надеюсь они смогут внедрить модули и хотя бы часть из планов по Safe-C++
| |
|
|
|
|
|
|
|
7.131, Прохожий (??), 11:33, 17/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
>Для этого есть git blame и история git в целом. Комменты редко в таких случаях помогают, потому что они имеют тенденцию устаревать и не соответствовать действительности.
Что проще: прочитать один комментарий или перелопачивать историю комитов? А комменты надо просто поддерживать в актуальном состоянии.
>Мало того, иногда есть возможность связаться с автором изменений и потрясти его, чтобы узнать что именно он думал, когда писал код, и может даже получить консультацию на тему того, как лучше внести в этот код те модификации, которые ты хочешь внести.
Иногда автор сам не помнит, зачем он это сделал. И только адекватные комментарии помогают.
| |
|
|
|
|
|
|
|
2.121, Аноним (-), 14:46, 15/02/2025 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> я помню много проектов, которые начинались как musl, типа деды переусложняли код, понять невозможно.
А это была не правда)?
> Так начинался MySQL, wayland и даже гуглохром. В итоге эти проекты неизменно становятся тем, против кого выступаали.
Э...? Может они и стали сложными, но дают гораздо больше возможностей.
MySQL стал фактически стандартом, до появления новых БД.
Wayland это отличный пример как надо делать: выкинули все, добавляем только необходимое (а не всякую чушь типа сетевой прозрачности)
Хром - это наверное один из самых успешных проектов в мире, по кол-ву пользователей.
| |
|
|