[devel] slang

Dmitry V. Levin ldv на altlinux.org
Пн Апр 8 22:29:29 MSK 2019


On Mon, Apr 08, 2019 at 11:18:29PM +0400, Sergey Y. Afonin wrote:
> On Monday 08 April 2019, Dmitry V. Levin wrote:
> 
> > > И да, я не отрицаю, что UB в Slang - это не хоршо.
> > 
> > Вы не поняли.  UB - это не просто нехорошо, UB - это смертельно.
> > 
> > Компилятор вправе определить результат UB так, как ему будет удобно,
> > и применить к результату оптимизацию, которая превратит ваш исходный
> > код в бинарный мусор.
>  
> 1. В случае Slang есть тесты, которые, как уже выяснилось, вполне
> показывают ситуацию вида "превратилось в бинарный мусор". Хотя допускаю,
> что что-то могут и не показать.
> 
> 2. Компилятор, надеюсь, не делает это случайным образом? И без смены
> версии компилятора другой код не получается?

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

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

> > Утверждение "UB работало" звучит довольно странно.
> 
> UB согласно спецификации ещё не означает же UB в рамках конкретной
> версии компилятора? Иначе бы все UB вылезали на белый свет быстро и
> больно, а такого не происходит.

Что значит "UB в рамках конкретной версии компилятора"?
UB - это свойство кода, а не компилятора.

> > Результат применения следующей версии компилятора к UB - это примерно
> > то же самое, что и получение следующего псевдослучайного числа. Не стоит
> > полагаться на то, что источник псевдослучайных чисел будет всегда выдавать
> > вам подходящие числа. 
> 
> Это понятно, но результат, тем не менее, можно так или иначе проверить на
> предмет "всё сломалось". Если взять прямо данный конкретный случай, то
> я пока не вижу на пакете, например, mc багов, связанных с неправильной
> сборкой Slang.

Значит, от этого класса UB в slang сломалось не всё.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20190408/fce11f10/attachment-0001.bin>


Подробная информация о списке рассылки Devel