On Mon, Apr 08, 2019 at 10:39:20PM +0400, Sergey Y. Afonin wrote: > On Monday 08 April 2019, Sergey Y. Afonin wrote: > > > > В slang'е был и остаётся UB, т.е. он полагался на undefined behaviour. > > > По хорошему, slang не должен был собираться раньше, и мне очень жаль, > > > что slang в таком виде вообще кем-то используется. > > > > То есть, аргумент majioa@, что в новом Руби починили загрузку so - это > > плохой аргумент? Или он не прав в том, что починили? > > И да, я не отрицаю, что UB в Slang - это не хоршо. Вы не поняли. UB - это не просто нехорошо, UB - это смертельно. Компилятор вправе определить результат UB так, как ему будет удобно, и применить к результату оптимизацию, которая превратит ваш исходный код в бинарный мусор. Почитайте на досуге https://bugzilla.altlinux.org/36038 > Но я не вижу различий > в конечной аргументации вида "после обновления A сломалось B, которое раньше > работало -> обновление A - это плохо". Утверждение "UB работало" звучит довольно странно. Есть разница между "должно работать, но не работает" и "не должно было работать, но повезло и работало". Результат применения следующей версии компилятора к UB - это примерно то же самое, что и получение следующего псевдослучайного числа. Не стоит полагаться на то, что источник псевдослучайных чисел будет всегда выдавать вам подходящие числа. -- ldv