The OpenNET Project / Index page

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



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

Исходное сообщение
"Red Hat представил Nova, драйвер для GPU NVIDIA, написанный ..."
Отправлено Аноним, 21-Мрт-24 22:36 
> Пруфай.

Я тебе даже номера искомых пунктов из "стандарта" си дал.
Пройдись и посмотри что у них implementation-defined behavior и unspecified behavior.

Но я тебе помогу! Держи пару штук! Разумеется не все, их слишком много))
>> All other negative values for FLT_EVAL_METHOD characterize implementation-defined behavior
>> Implementation-defined behavior is the propagation of the high-order bit when a signed integer is shifted right.
>> unspecified behavior is the order in which the arguments to a function are evaluated
> Не "хз как делать", а "разработчики компиляторов лучше знают, как им и их юзерам надо".

Ну-ну. А на выходе всё равно получается хз как))
gcc.gnu.org/bugzilla/show_bug.cgi?id=107238
github.com/llvm/llvm-project/issues/11644
stackoverflow.com/questions/22785705/different-results-between-clang-and-gcc-with-same-code
stackoverflow.com/questions/60973073/implementation-defined-behavior-in-c
и куча других

А потом у тебя "переносимый код" спокойно себе компилируется, но результат получаешь другой))

> как нечто ужасное и недопустимое UB

Ох сколько уязвимойстей было из-за того что в сришечке переполнение signed это UB)))

Но если заглянуть в пункт 4. Conformance, то там как раз написано, что
"A program that is correct in all other aspects, operating on correct data, containing unspecified behavior shall be a correct program"
Т.е. с unspecified behavior программа еще корректная, а вот с undefined - нет.
И компилятор, по хорошему, может просто заменить UB на noop.

Но разрабы компиляторов конечно так не сделали, потому что надо было бы что-то делать с сотнями тысяч строк быдлокода, который уже успели выпрограммировать до принятия стандарта.

На самом деле, если знать историю си и то, как принимался этот "стандарт", то сразу понятно почему так сделали. Но это их не оправдывает.

> Где противоречие, если вся остальная часть, кроме каких-то минорных и не нужных фич

О, так оказывается в Стандарте есть обязательное к исполнению и не обязательные))
Причем сам стандарт это не определяет, это решают имплементирующие его.

> combination of variance and implied bounds for nested references opens a hole in the current type system

Да, штука неприятная, не спорю.
С другой стороны, в си с 89 года signed overflow не исправили))

 

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



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

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