The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Уязвимости в ядре Linux, позволяющие поднять свои привилегии..."
Отправлено Аноним, 27-Мрт-24 16:17 
> Если хотите, чтобы всё было просто - добро пожаловать в каменный век.

Не передергивайте. Мы сравниваем потенциальные плюсы и минусы замены сишки на один из двух языков.
Мы как раз не хотим попасть в каменный век из-за одного залетевшего дятла.

> А при использовании Rust не жрёт? Машинные инструкции в конечном итоге одни и те же.

Нет, инструкции разные. Просто чтобы добиться эквивалентного кода в с++ вы напр. должны присвоить переменной null  после освобождения памяти, чтобы потом не сделать double free.
А в расте эту проверку сделает компилятор, который гарантирует что вы не сделаете double free. И присваивание не потребуется. И так еще в куче мест.

> как уже написал выше - машинные инструкции везде одни и те же.

То что вы так написали выше совсем не значит что инструкции одни и те же))

> "Умные" указатели

это рантайм сущность. В расте они тоже есть.
Но вам ничего не мешает в с++ читать и писать с любого потока просто в переменную.
Ну будет пару рейсов, делов-то.
А раст это не позволит - будет ошибка компиляции, где вам прозрачно намекнут что "или ты ошибся, или используй соответствующие примитивы синхронизации"

> Впрочем, можете не приводить.

Ну чего же вы так! Мне не сложно привести примеры))
codeproject.com/Questions/5331052/Cplusplus-different-output-on-different-compilers
learn.microsoft.com/en-us/answers/questions/119430/different-results-in-different-compilers-c
stackoverflow.com/questions/5158014/why-do-different-c-compilers-give-different-results-for-this-code
qna.habr.com/q/1320980
ru.stackoverflow.com/questions/1508112/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%B9-%D0%BF%D1%80%D0%B8-%D0%BE%D0%B4%D0%B8%D0%BD%D0%B0%D0%BA%D0%BE%D0%B2%D1%8B%D1%85-%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%B0%D1%85-%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0-%D0%A1
и тыщщи их

А всё потому, что в распрекрасный стандарт с++ напихали undefined behaviour и implementation defined behaviour. Что гарантировано стреляет на лобой маломальски большой программе.
Кроме того, погромисту нужно учить не только стандарт, но и все безумные реализации конкретных компиляторов.
Вот поэтому стандарт плохой.

> Для Rust уже больше одного компилятора.

Насколько я знаю - нет.
gccrs только разрабатывают и он еще не релизился.
mrustc еще не релизился и это не generic compiler, а просто чтобы бустрапит раста.
Ferrocene просто надстройка для rustc.

> Всё можно, было бы желание.

Значит у сишников нет желания?))

> любая автоматическая проверка тоже написана людьми.

Да, но проверка будет занимать напр. 1000 строк кода. И проверять сотни тысяч строк с одинаковым качеством.
А теперь посади погромиста вычитывать 100к сорцов. Посмеемся))

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру