The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..., opennews (ok), 13-Июн-14, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


48. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (-), 13-Июн-14, 17:12 
> Это не первый такой баг. Помнится не так давно gcc ломал сборку
> ядра или добавлял дыры убирая такие проверки.

Оптимизаторы вообще своеобразная штука, которая может подгадить.

Ответить | Правка | Наверх | Cообщить модератору

52. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Vkni (ok), 13-Июн-14, 17:14 
> Оптимизаторы вообще своеобразная штука, которая может подгадить.

Так к ним главное требование - не гадить.

Ответить | Правка | Наверх | Cообщить модератору

67. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (-), 13-Июн-14, 20:21 
> Так к ним главное требование - не гадить.

Используйте -O0, только чур не плеваться на качество кода. А так - в данном случае оптимизатор формально прав. Как ни странно. Я конечно понимаю что у некоторых возникает батхерт, когда программы получаются умнее человека. Но это даже не столько заслуга программы, сколько недостаток человека, клавшего на стандарты с прибором и почему-то думавшего что undefined behavior будет работать именно так как ему удобно, а вовсе не...

Ответить | Правка | Наверх | Cообщить модератору

71. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –3 +/
Сообщение от Vkni (ok), 13-Июн-14, 20:55 
>> Так к ним главное требование - не гадить.
> Используйте -O0, только чур не плеваться на качество кода. А так -
> в данном случае оптимизатор формально прав.

Оптимизатор - это не субъект, чтобы быть правым. А вставивший это в него несколько безответственен.

Мало ли что формально разрешено. Скажем, в месте с undefined behavior формально можно вставить всё, что угодно, включая вызов "rm -rf $HOME". Однако, если не быть идиотом, понятно, что компилятор должен обрабатывать это максимально безопасно.

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

Ответить | Правка | Наверх | Cообщить модератору

74. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +5 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 21:03 
> Мало ли что формально разрешено. Скажем, в месте с undefined behavior формально
> можно вставить всё, что угодно, включая вызов "rm -rf $HOME". Однако,
> если не быть идиотом, понятно, что компилятор должен обрабатывать это максимально
> безопасно.

Хочется такой безопасности и вождения за ручку — не надо называть себя программистами на C и писать на сях.

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

Культура есть. Флаг -std никто не отменял. Авторы проекта всё-таки, наверное, лучше компилятора знают, с каким стандартом у них кодовая база написана? И -std=c89 лично мне sane default'ом не кажется, например.

Ответить | Правка | Наверх | Cообщить модератору

75. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –3 +/
Сообщение от Vkni (ok), 13-Июн-14, 21:12 
> Хочется такой безопасности и вождения за ручку — не надо называть себя
> программистами на C и писать на сях.

Я давно за то, чтобы сбросить язык Цэ с парохода современности, как Фортран и ассемблер.

> Культура есть. Флаг -std никто не отменял. Авторы проекта всё-таки, наверное, лучше
> компилятора знают, с каким стандартом у них кодовая база написана? И
> -std=c89 лично мне sane default'ом не кажется, например.

Ну, а теперь немного подумаем о том, как совместно собирать код, написанный до 99-го года и после. Скажем, вот вы в 2002-м году пишете программу, использующую заголовки из 1992-го.

Ответить | Правка | Наверх | Cообщить модератору

76. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 21:16 
> Я давно за то, чтобы сбросить язык Цэ с парохода современности, как
> Фортран и ассемблер.

Современный Цэ++ вполне годен, не надо его сбрасывать.
Да и вообще, инструментом полезно уметь пользоваться, хоть джавой, хоть хаскелем.

>> Культура есть. Флаг -std никто не отменял. Авторы проекта всё-таки, наверное, лучше
>> компилятора знают, с каким стандартом у них кодовая база написана? И
>> -std=c89 лично мне sane default'ом не кажется, например.
> Ну, а теперь немного подумаем о том, как совместно собирать код, написанный
> до 99-го года и после.

Собирать часть с одним -std, часть — с другим. В C вроде даже вплоть до C11 нет проблем с разными ABI, не вижу проблемы.

> Скажем, вот вы в 2002-м году пишете программу, использующую заголовки из 1992-го.

Так исходная проблема-то в другом — там люди из 1992-го года писали программу, использующую заголовки из 2002-го. И это как раз решаемо вообще на раз-два. Обратная совместимость легче реализуема, чем forward.

Ответить | Правка | Наверх | Cообщить модератору

77. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Vkni (ok), 13-Июн-14, 21:20 
> Современный Цэ++ вполне годен, не надо его сбрасывать.

Синтаксис уже такой, что ужас. Увы, но Цэ++ уже давно ужасен.

> Собирать часть с одним -std, часть — с другим.

Ещё раз - директива #include включает заголовок, написанный до 99-го года.

> В C вроде даже вплоть до C11 нет проблем с разными ABI, не вижу проблемы.

Ну вот GCCшники успешно внесли проблему несовместимости.

> Так исходная проблема-то в другом — там люди из 1992-го года писали программу, использующую заголовки из 2002-го. И это как раз решаемо вообще на раз-два. Обратная совместимость легче реализуема, чем forward.

Каждый отдельный случай решается на раз-два. Проблема в том, что этих раз-два миллионы за 50 лет накопилось. И большая часть этих раз-два неизвестна.

Ответить | Правка | Наверх | Cообщить модератору

78. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 21:22 
>> Современный Цэ++ вполне годен, не надо его сбрасывать.
> Синтаксис уже такой, что ужас. Увы, но Цэ++ уже давно ужасен.

Вполне типичный синтаксис для сиподобного языка.

>> Собирать часть с одним -std, часть — с другим.
> Ещё раз - директива #include включает заголовок, написанный до 99-го года.

Системный инклюд? С чего бы.

Свой собственный, пользовательский — ну так разные стандарты языка и так могут быть не до конца совместимы.

>> В C вроде даже вплоть до C11 нет проблем с разными ABI, не вижу проблемы.
> Ну вот GCCшники успешно внесли проблему несовместимости.

Не в ABI.

>> Так исходная проблема-то в другом — там люди из 1992-го года писали программу, использующую заголовки из 2002-го. И это как раз решаемо вообще на раз-два. Обратная совместимость легче реализуема, чем forward.
> Каждый отдельный случай решается на раз-два. Проблема в том, что этих раз-два
> миллионы за 50 лет накопилось. И большая часть этих раз-два неизвестна.

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

Ответить | Правка | Наверх | Cообщить модератору

79. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Vkni (ok), 13-Июн-14, 21:29 
> Свой собственный, пользовательский — ну так разные стандарты языка и так могут
> быть не до конца совместимы.

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

Страшно подумать, что бы было, если бы Цэ/Цэ++ начал меняться как Бидон.

> Не в ABI.

Но тем не менее - стандарты 99/89 в этом месте совместимы, а gcc пока нет. Я не сомневаюсь, что и в этот раз кому надо дадут по мозгам и исправят проблему. Слишком много денег крутится вокруг gcc.

> Это как раз целый класс отдельных случаев, который и встретился в исходном
> посте.
> А что мы там обсуждаем инклюды 1992-го кода из 2002-го
> — это совсем другое дело, любопытное в качестве умственных разминок, но
> совершенно не имеющее отношения к исходной проблеме.

За огромное кол-во лет накопилось всякое. А включение старых библиотек в новые проекты более чем естественно.

Тем не менее, это казуистика. А факт - gcc поломал совместимость стандартов 99 и 89.

Ответить | Правка | Наверх | Cообщить модератору

83. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:01 
> На поддержание совместимости стандартов тратятся огромные силы. Собственно, из-за этой
> совместимости языком Цэ++ и пользуются до сих пор. Да и вообще
> начали пользоваться.

Не всегда. move semantics могут кое-какой код поломать (я на это сам натыкался, деталей не помню, правда), например.

> Но тем не менее - стандарты 99/89 в этом месте совместимы, а
> gcc пока нет.

Почему? Несовместимы. В более новом стандарте более сильные требования на параметры, как я понял. Какая же тут обратная совместимость?

Ответить | Правка | Наверх | Cообщить модератору

85. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от Vkni (ok), 13-Июн-14, 22:06 
> Не всегда. move semantics могут кое-какой код поломать (я на это сам
> натыкался, деталей не помню, правда), например.

Могут. Это неприятно и очень дорого.

> Почему? Несовместимы. В более новом стандарте более сильные требования на параметры, как
> я понял. Какая же тут обратная совместимость?

в ЭТОМ месте. Код 89-го года вполне компилируется с qsort 99-го.

Ответить | Правка | К родителю #83 | Наверх | Cообщить модератору

86. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:08 
> в ЭТОМ месте. Код 89-го года вполне компилируется с qsort 99-го.

«Компилируется» — не значит «работает». Что мы и наблюдаем тут.

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

88. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от Vkni (ok), 13-Июн-14, 22:12 
> «Компилируется» — не значит «работает». Что мы и наблюдаем
> тут.

До "тут" он работал. Каждое такое место - это большие денежные потери на ровном месте (тяжёлый труд высококвалифицированных разработчиков, хорошо знающих С, по разгребанию старого кода).

Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

90. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:15 
> До "тут" он работал.

И это большая удача, не более. Вообще, мы говорили о совместимости стандартов. Если новый стандарт налагает более серьёзные требования на значения аргументов, чем старый, то совместимым со старым его назвать нельзя. Это к тому, виноват gcc или нет, нарушил он совместимость или нет.

А что там деньги тратятся — ну да, тратятся. Но это в данном случае дело десятое.

Ответить | Правка | К родителю #88 | Наверх | Cообщить модератору

95. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Vkni (ok), 13-Июн-14, 22:29 
> Если новый стандарт налагает более серьёзные требования на значения аргументов, чем
> старый, то совместимым со старым его назвать нельзя.

Стандарты слишком сложны, чтобы быть 100% совместимыми. Уже введение нового ключевого слова поломает часть программ. Поэтому можно говорить лишь о большей и меньшей совместимости. В С/С++ её поддерживают значительно лучше, чем в том же Python'е.

Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

127. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 14-Июн-14, 13:47 
> Тем не менее, это казуистика. А факт - gcc поломал совместимость стандартов
> 99 и 89.

слушай, ну хватит уже, всё, не надо больше, я не могу столько смеяться!

Ответить | Правка | Наверх | Cообщить модератору

80. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Vkni (ok), 13-Июн-14, 21:32 
> Вполне типичный синтаксис для сиподобного языка.

Это лямбды-то? Шаблоны в современном применении - вообще ужас ужасный.

Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

84. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:06 
> Это лямбды-то?

Чем [] (auto x, auto y) { return x + y; } сильно так сложнее (x, y) => x + y ?

Это для такого банального случая скобочек-палочек чуть больше у плюсов, а для сколь угодно нетривиальной лямбды различия ещё слабее.

Причём, в C++17 ЕМНИП есть пропозал, что auto в параметрах вообще можно будет не писать, будет полагаться по дефолту.

> Шаблоны в современном применении - вообще ужас ужасный.

В тривиальных случаях всё очень просто, а нетривиальные так не обязательны :)

Ответить | Правка | Наверх | Cообщить модератору

87. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Vkni (ok), 13-Июн-14, 22:09 
> Чем [] (auto x, auto y) { return x + y; }
> сильно так сложнее (x, y) => x + y ?

Какое отношение имеют скобки, означающие массив, к лямбда-функциям?

> Причём, в C++17 ЕМНИП есть пропозал, что auto в параметрах вообще можно
> будет не писать, будет полагаться по дефолту.

Вывод типов предложили в 1969-м году. В С++ он не вставлен, по-видимому, из-за обратной совместимости с нестрого типизированным C.

> В тривиальных случаях всё очень просто, а нетривиальные так не обязательны :)

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

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

89. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:13 
>> Чем [] (auto x, auto y) { return x + y; }
>> сильно так сложнее (x, y) => x + y ?
> Какое отношение имеют скобки, означающие массив, к лямбда-функциям?

Эм, они вообще-то обозначают начало лямбды. Ну и какой массив обозначают скобки вида [x = std::move (y)] ?

> Вывод типов предложили в 1969-м году. В С++ он не вставлен, по-видимому,
> из-за обратной совместимости с нестрого типизированным C.

Однако, C++ и так чуть более строго типизирован, чем C (например, void* к T* сходу не приведётся). Кроме того, вывод типов уровня auto и так уже есть, что-то вроде утиной типизации в темплейтах — тоже, а Хиндли-Милнера вы едва ли найдёте в хотя бы одном сиподобном языке. Хоть в джаве, хоть в C#, хотя им уж точно совместимость с C поддерживать не нужно.

Впрочем, там всё равно не вывод типов, а шаблонный operator(), соответствующий структуре-функтору, генерирующейся по лямбде.

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

В 100% случаев выходить не обязательно. Да, нетривиальное применение шаблонов может существенно сэкономить время и количество строк кода, но ведь мощные инструменты не обязаны быть простыми.

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

91. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Vkni (ok), 13-Июн-14, 22:17 
> Эм, они вообще-то обозначают начало лямбды. Ну и какой массив обозначают скобки
> вида [x = std::move (y)] ?

О! Вот это и вопрос - глаз видит скобки, 25 лет означающие массив, а реально там что-то другое.

> Однако, C++ и так чуть более строго типизирован, чем C (например, void*
> к T* сходу не приведётся).

В 1986-м году основное требование - код на С должен компилироваться без проблем.

> а Хиндли-Милнера вы едва ли найдёте в хотя бы одном
> сиподобном языке.

Ну и что? Разве это хорошо?

> Хоть в джаве, хоть в C#, хотя им уж
> точно совместимость с C поддерживать не нужно.

Java и C#, по-видимому, устарели с самого своего появления.

> но ведь мощные инструменты не
> обязаны быть простыми.

Чем проще, тем лучше при прочих равных. А С++ уже очень сложен.

Ответить | Правка | К родителю #89 | Наверх | Cообщить модератору

93. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:21 
>> Эм, они вообще-то обозначают начало лямбды. Ну и какой массив обозначают скобки
>> вида [x = std::move (y)] ?
> О! Вот это и вопрос - глаз видит скобки, 25 лет означающие
> массив, а реально там что-то другое.

Я, конечно, не 25 лет пишу на плюсах, а всего лет 10, но глаз у меня видит начало лямбды.

>> а Хиндли-Милнера вы едва ли найдёте в хотя бы одном
>> сиподобном языке.
> Ну и что? Разве это хорошо?

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

Хотя, конечно, бывает, пишешь очередной костыль с type erasure на плюсах, например, и очень сильно жалеешь об отсутствии экзистенциальных типов. Но это такое.

>> но ведь мощные инструменты не
>> обязаны быть простыми.
> Чем проще, тем лучше при прочих равных. А С++ уже очень сложен.

И тут возвращаемся к тому, что в 100% случаев вся мощь темплейтов не обязательна.

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

97. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Vkni (ok), 13-Июн-14, 22:32 
> Я, конечно, не 25 лет пишу на плюсах, а всего лет 10,
> но глаз у меня видит начало лямбды.

А у меня он сперва видит какую-то инициализацию массива, которую уже потом я воспринимаю, как лямбду. Т.е. читаемость значительно ухудшилась.

> Х-М без каких-нибудь там тайпклассов и тому подобного не
> очень-то и полезен, ИМХО.

Так классы типов хотели ввести.

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

99. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:34 
> Так классы типов хотели ввести.

Эм, это где? Опять я всё пропустил.

Ответить | Правка | К родителю #97 | Наверх | Cообщить модератору

100. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Vkni (ok), 13-Июн-14, 22:38 
>> Так классы типов хотели ввести.
> Эм, это где? Опять я всё пропустил.

Так концепты.

Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

101. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:40 
>>> Так классы типов хотели ввести.
>> Эм, это где? Опять я всё пропустил.
> Так концепты.

Ох, да им до тайпклассов таки… далеко, в общем.

Да и это для темплейтов всё равно. Ограниченный Х-М получится.

Ответить | Правка | К родителю #100 | Наверх | Cообщить модератору

102. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Vkni (ok), 13-Июн-14, 22:43 
> Ох, да им до тайпклассов таки… далеко, в общем.
> Да и это для темплейтов всё равно. Ограниченный Х-М получится.

auto тоже далеко до pattern matching'а. Увы, другого C++ у меня для вас нет - всё упирается в сложность языка и поддержку совместимости с имеющимся кодом.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

103. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??), 13-Июн-14, 22:44 
> auto тоже далеко до pattern matching'а. Увы, другого C++ у меня для
> вас нет - всё упирается в сложность языка и поддержку совместимости
> с имеющимся кодом.

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

Впрочем, конечно, если охота писать на каком-нибудь хаскеле, лучше писать на хаскеле, а не издеваться над бедными компиляторами и прочим тулчейном. Вон, gdb 7.7 от особо наркоманских шаблоновывертов успешно падает.

Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

128. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 14-Июн-14, 13:50 
>> Эм, они вообще-то обозначают начало лямбды. Ну и какой массив обозначают скобки
>> вида [x = std::move (y)] ?
> О! Вот это и вопрос - глаз видит скобки, 25 лет означающие
> массив, а реально там что-то другое.

нет, оказывается, всё ещё могу.

const int a[] = {1,2,42}.

глаз видит скобки, пол-века обозначающие «начало блока операторов или определений», а это на самом деле — инициализация массива. вот когда обоснуешь, почему тут скобки фигурные, а не квадратные — тогда можно будет продолжить по поводу лямбд и их скобок.

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

137. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 20:46 
> глаз видит скобки, пол-века обозначающие «начало блока операторов или определений»,
> а это на самом деле — инициализация массива. вот когда обоснуешь,
> почему тут скобки фигурные, а не квадратные — тогда можно будет
> продолжить по поводу лямбд и их скобок.

Молодец! Вот и я пишу, что с синтаксисом в Цэ++ полный трындец. Большое спасибо за пример.

Ответить | Правка | К родителю #128 | Наверх | Cообщить модератору

140. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 20:50 
> Молодец! Вот и я пишу, что с синтаксисом в Цэ++ полный трындец.
> Большое спасибо за пример.

пожалуйста. правда, я привёл пример сишного синтаксиса, но так же неинтересно, это же окажется, что цпп просто следует традициям.

Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

148. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Vkni (ok), 14-Июн-14, 21:01 
> пожалуйста. правда, я привёл пример сишного синтаксиса, но так же неинтересно, это
> же окажется, что цпп просто следует традициям.

Цэ просто более-менее обозрим, хотя с синтаксисом уже плохо - см. ещё указатель на функцию. :-) А у ЦэПП уже полный Ԥ, потому как количество переходит в качество.

Ответить | Правка | К родителю #140 | Наверх | Cообщить модератору

150. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 21:04 
> Цэ просто более-менее обозрим, хотя с синтаксисом уже плохо - см. ещё
> указатель на функцию. :-) А у ЦэПП уже полный Ԥ, потому
> как количество переходит в качество.

я вот недавно ещё страшнее вещь заметил: куча имён функций может начинаться на «p». ты представляешь, какой это ужас? ведь я как вижу «p», так сразу ожидаю, что там будет «printf»! а тут такой облом…

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

154. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:10 
>> пожалуйста. правда, я привёл пример сишного синтаксиса, но так же неинтересно, это
>> же окажется, что цпп просто следует традициям.
> Цэ просто более-менее обозрим, хотя с синтаксисом уже плохо - см. ещё
> указатель на функцию. :-) А у ЦэПП уже полный Ԥ, потому
> как количество переходит в качество.

Самое интересное, что в C++ это уже и не нужно вовсе, есть же std::function.

Хотя, конечно, если мы захотим передать лямбду в G_CALLBACK без временных переменных и тому подобного, то начнут вылезать всякие интересности вроде конструкций типа G_CALLBACK (+[] (...) { ... }). Плюсик тут прелестен, да.

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

159. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Vkni (ok), 14-Июн-14, 21:14 
> Самое интересное, что в C++ это уже и не нужно вовсе, есть же std::function.

В С++ есть десятки способов реализовать одну и ту же задачу. Это одновременно и хорошо, и плохо.

Ответить | Правка | К родителю #154 | Наверх | Cообщить модератору

163. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:17 
> В С++ есть десятки способов реализовать одну и ту же задачу. Это
> одновременно и хорошо, и плохо.

Как мне десятком способов передать замыкание в роли этакого коллбека или функтора? Я сходу только два придумал.

Ответить | Правка | К родителю #159 | Наверх | Cообщить модератору

167. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:19 
> Как мне десятком способов передать замыкание в роли этакого коллбека или функтора?
> Я сходу только два придумал.

Если чутка обобщить задачу, получится - класс, шаблон, макрос, указатель на функцию.

Ответить | Правка | К родителю #163 | Наверх | Cообщить модератору

289. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Аноним (-), 16-Июн-14, 09:27 
> указатель на функцию. :-) А у ЦэПП уже полный Ԥ, потому
> как количество переходит в качество.

Да, всякие слабаки уходят программить на яве и питоне. Поэтому программами на си++ даже пользоваться реально. Их писали настоящие программисты.

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

295. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 16-Июн-14, 11:43 
тебя кто-то жестоко обманул, когда сказал, что «настоящее программирование» — это анальные мучения с языком, придуманым идиотом и десятки лет развиваемым комитетом идиотов.
Ответить | Правка | К родителю #289 | Наверх | Cообщить модератору

303. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (??), 16-Июн-14, 17:33 
> тебя кто-то жестоко обманул, когда сказал, что «настоящее программирование»
> — это анальные мучения с языком, придуманым идиотом и десятки лет
> развиваемым комитетом идиотов.

Анальные мучения там чаще всего возникают с реализацией. Чего далеко ходить, вот из моего сегодняшнего, например: http://0xd34df00d.point.im/nwddi

В языке местами тоже есть лажа и недоработки, но они либо из-за совместимости с С, либо фиксятся в следующих стандартах (вроде отсутствия std::future::then).

Ответить | Правка | К родителю #295 | Наверх | Cообщить модератору

306. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 16-Июн-14, 17:49 
тут такое дело, что я просто на дух не переношу цпп. там ВСЁ плохо. особенно то, что пытались сделать хорошо.
Ответить | Правка | К родителю #303 | Наверх | Cообщить модератору

316. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Vkni (ok), 17-Июн-14, 01:13 
>> указатель на функцию. :-) А у ЦэПП уже полный Ԥ, потому
>> как количество переходит в качество.
> Да, всякие слабаки уходят программить на яве и питоне.

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

Ответить | Правка | К родителю #289 | Наверх | Cообщить модератору

241. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Anonym2 (?), 14-Июн-14, 23:39 
> const int a[] = {1,2,42}.
> глаз видит скобки, пол-века обозначающие <<начало блока операторов или определений>>,
> а это на самом деле - инициализация массива. вот когда обоснуешь,
> почему тут скобки фигурные, а не квадратные - тогда можно будет
> продолжить по поводу лямбд и их скобок.

Это значит что уже не важно что видит ваш глаз.
(инициализация массивов - далеко не нововведение в C)...

Ответить | Правка | К родителю #128 | Наверх | Cообщить модератору

242. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 14-Июн-14, 23:43 
> Это значит что уже не важно что видит ваш глаз.

иншалла! действительно, это всего лишь дело привычки, об этом я и писал.

Ответить | Правка | К родителю #241 | Наверх | Cообщить модератору

126. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 14-Июн-14, 13:47 
> Ну, а теперь немного подумаем о том, как совместно собирать код, написанный
> до 99-го года и после. Скажем, вот вы в 2002-м году
> пишете программу, использующую заголовки из 1992-го.

да запросто. раздельную компиляцию придумали ещё в прошлом веке.

Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

136. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 20:43 
> да запросто. раздельную компиляцию придумали ещё в прошлом веке.

А читать тебя научили 30-40 лет назад. А всё равно, про включённые заголовки не прочёл.

Ответить | Правка | Наверх | Cообщить модератору

139. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 20:48 
>> да запросто. раздельную компиляцию придумали ещё в прошлом веке.
> А читать тебя научили 30-40 лет назад. А всё равно, про включённые
> заголовки не прочёл.

прочёл. и что?

Ответить | Правка | Наверх | Cообщить модератору

143. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 20:52 
> прочёл. и что?

Теперь вспоминаем, что такое раздельная компиляция.

Ответить | Правка | Наверх | Cообщить модератору

144. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 20:54 
>> прочёл. и что?
> Теперь вспоминаем, что такое раздельная компиляция.

то, что я каждый день использую. там даже можно делать такие штуки, как подпихивать разным исходникам разные инклюды, представляешь? а потом собирать объектники в библиотеки и линковать код с этими библиотеками.

Ответить | Правка | Наверх | Cообщить модератору

147. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 20:59 
> то, что я каждый день использую.

Молодец, правильно рассказал. А теперь представь, что у тебя есть замшелый софт (пост 99), использующий ещё более замшелые библиотеки (пре 99). Оно работает, ты просто его перекомпилируешь под систему. И, внезапно, на 4.9 получаем опа из-за оптимизации. И ты либо сидишь на древнем говно-Линуксе, либо тратишь тонны времени на отладку.

Ответить | Правка | К родителю #144 | Наверх | Cообщить модератору

149. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 21:03 
>> то, что я каждый день использую.
> Молодец, правильно рассказал. А теперь представь, что у тебя есть замшелый софт
> (пост 99), использующий ещё более замшелые библиотеки (пре 99). Оно работает,
> ты просто его перекомпилируешь под систему. И, внезапно, на 4.9 получаем
> опа из-за оптимизации. И ты либо сидишь на древнем говно-Линуксе, либо
> тратишь тонны времени на отладку.

нет, у меня такого «внезапно» не бывает. потому что я немножко в курсе стандартов, в курсе поведения оптимизатора и в курсе того, что в «замшелом софте» с вероятностью 100% куча UB, поэтому прежде всего я буду собирать его с -O0, а уж потом — если надо — шерстить код на предмет того, что там следует починить в соответствии с нынешними реалиями.

Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

155. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:10 
> нет, у меня такого «внезапно» не бывает. потому что я немножко в
> курсе стандартов, в курсе поведения оптимизатора и в курсе того, что
> в «замшелом софте» с вероятностью 100% куча UB, поэтому прежде всего
> я буду собирать его с -O0, а уж потом — если
> надо — шерстить код на предмет того, что там следует починить
> в соответствии с нынешними реалиями.

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

Ответить | Правка | К родителю #149 | Наверх | Cообщить модератору

192. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +3 +/
Сообщение от arisu (ok), 14-Июн-14, 21:45 
> Оно хорошо, что ты делаешь качественно, но кругом бывает по-разному.

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

Ответить | Правка | К родителю #155 | Наверх | Cообщить модератору

152. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:07 
>> то, что я каждый день использую.
> Молодец, правильно рассказал. А теперь представь, что у тебя есть замшелый софт
> (пост 99), использующий ещё более замшелые библиотеки (пре 99). Оно работает,
> ты просто его перекомпилируешь под систему. И, внезапно, на 4.9 получаем
> опа из-за оптимизации. И ты либо сидишь на древнем говно-Линуксе, либо
> тратишь тонны времени на отладку.

Или еще вариант: не пользуешься софтом за авторством людей, не знающих свои инструменты. Если человек включает хедеры пре99-версии языка, то он не имеет права писать код на пост99-версии языка, по крайней мере, без очень тщательной инспекции этих хедеров.

А оптимизаторы — дело тут десятое.

Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

157. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:12 
> Или еще вариант: не пользуешься софтом за авторством людей, не знающих свои
> инструменты.

Ну это ты крут. Прелагаю тебе попробовать и выписать тут программы, которыми можно пользоваться. Ядро, я так понимаю, только l4.

Ответить | Правка | К родителю #152 | Наверх | Cообщить модератору

161. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:15 
Зачем? Можно на самом деле спокойно пользоваться и чинить баги, а не обвинять плохие компиляторы.
Ответить | Правка | К родителю #157 | Наверх | Cообщить модератору

164. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:18 
> Зачем? Можно на самом деле спокойно пользоваться и чинить баги, а не
> обвинять плохие компиляторы.

Ну бред-то не надо писать, а? Берёте wc -l, исходники ядра, libc считаете кол-во строк и думаете, сколько вам времени понадобится на исправление ошибок.

Ответить | Правка | К родителю #161 | Наверх | Cообщить модератору

171. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:23 
> Ну бред-то не надо писать, а? Берёте wc -l, исходники ядра, libc
> считаете кол-во строк и думаете, сколько вам времени понадобится на исправление
> ошибок.

А их так и так исправлять придется. Ошибка из исходного поста — так, индикатор отношения к стандартам, не более. Если есть такая ошибка, наверняка будет и множество других. Все из них отключением оптимизатора не «исправишь».

Ответить | Правка | К родителю #164 | Наверх | Cообщить модератору

187. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:41 
> А их так и так исправлять придется.

Почему? У софта есть время жизни, после которого софт становится не нужен => больше ошибки в нём искать не нужно.

Типичный пример - игра Prince of Persia. После того, как он ушёл в антиквариат, в нём находили ошибки.

P.S.
Я не пишу про отключение оптимизатора, хоть предупреждение выбрасывайте.

Ответить | Правка | К родителю #171 | Наверх | Cообщить модератору

191. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:45 
> Почему? У софта есть время жизни, после которого софт становится не нужен
> => больше ошибки в нём искать не нужно.

Какое время жизни у linux kernel или glibc, про которые шла речь в комментарии, на который я отвечал?

Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

199. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:54 
> Какое время жизни у linux kernel или glibc, про которые шла речь
> в комментарии, на который я отвечал?

Ядро Линукса и glibc состоят из частей, которые периодически заменяются на другие. Поэтому, хотя время жизни целого весьма велико, время жизни каждой части вполне ограничено.

Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

209. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 22:09 
> Ядро Линукса и glibc состоят из частей, которые периодически заменяются на другие.
> Поэтому, хотя время жизни целого весьма велико, время жизни каждой части
> вполне ограничено.

Тогда это вырождается во «взять и переписать», так критикуемое вами.

Ответить | Правка | К родителю #199 | Наверх | Cообщить модератору

250. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 15-Июн-14, 00:12 
> Тогда это вырождается во «взять и переписать», так критикуемое вами.

Не вырождается, т.к. там "две страницы вырванных выкладок".

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

В случае Xorg и Wayland или init и systemd я не вижу плюсов от переписывания, зато вижу минусы. Могу раскрыть, если интересно, подробнее.

Ответить | Правка | К родителю #209 | Наверх | Cообщить модератору

193. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 21:47 
> Ну бред-то не надо писать, а? Берёте wc -l, исходники ядра, libc
> считаете кол-во строк и думаете, сколько вам времени понадобится на исправление
> ошибок.

и поэтому ошибки чинить не будем: всё равно это нереально, не так ли? про декомпозицию, верификацию и прочие умные слова если и слышали, то давно и краем уха.

Ответить | Правка | К родителю #164 | Наверх | Cообщить модератору

202. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Vkni (ok), 14-Июн-14, 21:57 
> и поэтому ошибки чинить не будем: всё равно это нереально, не так
> ли? про декомпозицию, верификацию и прочие умные слова если и слышали,
> то давно и краем уха.

Арису, вернись из Валинора и убери ребёнка с компьютера. До 20-ти лет он не сможет понять, что мир не чёрно-белый. Ошибки, разумеется, чинить надо, но в зависимости от времени жизни, серьёзности софта и других параметров. В ряде случаев лучше сделать так, чтобы проявления ошибок были не столь разрушительны - вставить защиту памяти, защиту системы от rm -rf, запускать программу в песочнице и т.д.

Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

204. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 22:00 
знаешь, есть такое практическое наблюдение у меня: когда кто-то говорит про «нечёрнобелый мир», в подавляющем большинстве случаев он пытается этим замаскировать свою лень и рукожопие.

такие дела.

Ответить | Правка | К родителю #202 | Наверх | Cообщить модератору

207. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 22:04 
> знаешь, есть такое практическое наблюдение у меня: когда кто-то говорит про «нечёрнобелый
> мир», в подавляющем большинстве случаев он пытается этим замаскировать свою лень
> и рукожопие.

У вас, в Валиноре всё именно так, да. Возвращайся обратно, пожалуйста.

Ответить | Правка | К родителю #204 | Наверх | Cообщить модератору

211. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 22:11 
нет, спасибо, хрюкайте без меня.
Ответить | Правка | К родителю #207 | Наверх | Cообщить модератору

290. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от Аноним (-), 16-Июн-14, 09:30 
> тратишь тонны времени на отладку.

Если ты завинтил древнему коду мега-оптимизации не имея понятия о том насколько этот код следует стандартам и прочее - не очень понятно на кого тут можно жаловаться кроме самого себя. Оптимизатор имеет право делать все что угодно в рамках стандарта. А если кто полагался на UB - наверное это не оптимизатор виноват?

Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

317. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 17-Июн-14, 01:16 
> Если ты завинтил древнему коду мега-оптимизации

Там в Makefile как было -O2, так и осталось. Только с увеличением версий gcc это -O2 стало означать несколько другое.

Ответить | Правка | К родителю #290 | Наверх | Cообщить модератору

288. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (-), 16-Июн-14, 09:25 
> Я давно за то, чтобы сбросить язык Цэ с парохода современности,

Сбросьте.

> ассемблер.

А вон та пачка свежих коммитов в libvpx на хардкорном ассемблере с AVX и Neon - это вам как? Куда вы там кого сбросили? Хотя да, академики типа вас предложат нам запускать кодек VP9 на Cray, ведь у них под рукой есть - можно мувик для ютуба за разумное время компреснуть. А то что юзеры на писюках будут неделю ффтыкать на расово верный и безопасный, но жутко тормозной код - академиков не парит :).

> Скажем, вот вы в 2002-м году пишете программу, использующую заголовки из 1992-го.

Это, мягко говоря, довольно нишевой случай. И при столь экзотичном случае (криокамера разморозилась и програмер не заметил что прошло 10 лет?) - немного запатчить код может и придется.

Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

110. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Anonym2 (?), 14-Июн-14, 02:18 
>>> Так к ним главное требование - не гадить.
>> Используйте -O0, только чур не плеваться на качество кода. А так -
>> в данном случае оптимизатор формально прав.
> Оптимизатор - это не субъект, чтобы быть правым. А вставивший это в
> него несколько безответственен.
> Мало ли что формально разрешено. Скажем, в месте с undefined behavior формально
> можно вставить всё, что угодно, включая вызов "rm -rf $HOME". Однако,
> если не быть идиотом, понятно, что компилятор должен обрабатывать это максимально
> безопасно.

:-) Не должен...
Это вам к любителям Java, скорее.
> Это только в глубоком детстве кажется, что "вот мы напишем правила, и
> всё будет зашибись". Нет, люди нарушают правила, правила не учитывают все
> возможные ситуации и т.д. Поэтому есть такое понятие "культура". Вот у
> создателей компиляторов промышленных языков с 50-ти летним багажом должна быть определённая
> культура поддержания совместимости.

При чём здесь совместимость? С точки зрения C 80х годов всё обстоит отнюдь не лучше...

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

94. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от pv47 (ok), 13-Июн-14, 22:26 
> думавшего что undefined behavior будет работать именно так как ему удобно

потому что всю жизнь ub относилось не к компилятору а к процессору. си был высокоуровневым ассемблером. и ub подразумевало, что компилятор скомпилирует как есть, а сможет ли это выполнить процессор - это уже и будет ub. и си-программисты это понимали. и смело использовали, например, (unsigned)-1 для получения максимального беззнакового целого числа на архитектурах типа x86, где это работало.

теперь же пришли "оптимизаторы", и наоптимизировали так, что си скатился в убогий паскаль, где без лишней головной боли нельзя даже преобразовать Integer в Word. программа это уже не инструкция компьютеру, что он должен сделать, а оправдательная записка компилятору, с просьбой разрешить выполнение алгоритма.

а по сути, современный "оптимизированный" /bin/sleep занимает 20КБ, хотя исходного кода там на 20 строк. зато соптимизировали лишние проверки, ага.

Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

129. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 14-Июн-14, 13:51 
> потому что всю жизнь ub относилось не к компилятору а к процессору.
> си был высокоуровневым ассемблером. и ub подразумевало, что компилятор скомпилирует как
> есть, а сможет ли это выполнить процессор - это уже и
> будет ub.

школоло, покажи эти слова в стандарте.

Ответить | Правка | Наверх | Cообщить модератору

141. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 20:50 
Ну очевидно же, что подобные штуки в стандартах не пишут. Точно также, как в УК не написано, что воровать плохо (только тюремные сроки).

Т.е. если ты хочешь подтверждений тезиса, нужны статьи или рассуждения Кернигана и Ричи с объяснениями, что и зачем. Было бы неплохо, если бы предыдущий комментатор их предоставил.

Ответить | Правка | Наверх | Cообщить модератору

145. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от arisu (ok), 14-Июн-14, 20:57 
> Ну очевидно же, что подобные штуки в стандартах не пишут.

поэтому «подобные штуки» — не более чем досужие измышления.

> Точно также, как в УК не написано, что воровать плохо (только тюремные сроки).

это как раз потому, что воровать — не плохо, а уголовно наказуемо.

> Т.е. если ты хочешь подтверждений тезиса, нужны статьи или рассуждения Кернигана и
> Ричи с объяснениями, что и зачем.

какое отношение k&r имеют к текущим стандартам?

Ответить | Правка | Наверх | Cообщить модератору

153. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:08 
> поэтому «подобные штуки» — не более чем досужие измышления.

Естественно, нет. Вокруг каждого ЯП есть определённая культура - то, что плохо формализуется. То, что ты её не видишь, очень плохо.

> это как раз потому, что воровать — не плохо, а уголовно наказуемо.

А почему воровать уголовно наказуемо?

> какое отношение k&r имеют к текущим стандартам?

Если ты таки прочитаешь внимательно комментатора, которого несправедливо обосрал, ты поймёшь, что он писал про дела минувших дней.

Ответить | Правка | Наверх | Cообщить модератору

158. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:13 
>> поэтому «подобные штуки» — не более чем досужие измышления.
> Естественно, нет. Вокруг каждого ЯП есть определённая культура - то, что плохо
> формализуется. То, что ты её не видишь, очень плохо.

Очень плохо ссылаться на плохо формализуемые вещи.

Ответить | Правка | Наверх | Cообщить модератору

162. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:16 
> Очень плохо ссылаться на плохо формализуемые вещи.

??? В школе что-нибудь, кроме арифметики проходили?

Ответить | Правка | Наверх | Cообщить модератору

168. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok), 14-Июн-14, 21:20 
>> Очень плохо ссылаться на плохо формализуемые вещи.
> ??? В школе что-нибудь, кроме арифметики проходили?

Да, но последние N лет исключительно всякими формальными вещами занимаюсь. Профдеформация, видимо.

Ответить | Правка | Наверх | Cообщить модератору

170. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:23 
> Да, но последние N лет исключительно всякими формальными вещами занимаюсь. Профдеформация,
> видимо.

Видимо. Потому, что есть масса нужных, но плохо формализуемых вещей, которыми мы пользуемся ежедневно. Таких, как, например, умение писать хорошо читаемый код, хорошо читаемые статьи.

Ответить | Правка | К родителю #168 | Наверх | Cообщить модератору

165. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от arisu (ok), 14-Июн-14, 21:18 
>> поэтому «подобные штуки» — не более чем досужие измышления.
> Естественно, нет. Вокруг каждого ЯП есть определённая культура - то, что плохо
> формализуется. То, что ты её не видишь, очень плохо.

естественно, да. то, что кучка людей договорилась чесать левое ухо и делать три приседания перед тем, как запускать компилятор — это их личная проблема и местечковый обычай. ни авторы компилятора, ни авторы библиотек не обязаны обращать внимание на местечковые обычаи, у них есть документ, которым они руководствуются. всё, что в этом документе не описано, они поддерживать не должны.

>> это как раз потому, что воровать — не плохо, а уголовно наказуемо.
> А почему воровать уголовно наказуемо?

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

>> какое отношение k&r имеют к текущим стандартам?
> Если ты таки прочитаешь внимательно комментатора, которого несправедливо обосрал, ты поймёшь,
> что он писал про дела минувших дней.

а если ты удосужишься почитать его стенания, то увидишь, что он писал напрямую о сегодняшнем дне, и рассказывал, что раньше трава была зеленей. кто ему запрещает взять софт из старых добрых дней и сидеть на нём — не ясно.

стандарт си (как и любой стандарт, где встречаются слова UB, да и вообще любой стандарт, созданный комитетом) — конечно, гуано. но так сложилось, что это последняя инстанция, основополагающий документ. и если этот документ что-то позволяет, то это правильно. если, исходя из документа, некоторые проверки можно удалить — оптимизатор вправе их удалить. особенно если — повторяю в очередной раз — корректная работа оптимизатора гарантирована только для программ, в которых нет UB.

Ответить | Правка | К родителю #153 | Наверх | Cообщить модератору

176. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 21:31 
> ни авторы компилятора, ни авторы библиотек не
> обязаны обращать внимание на местечковые обычаи, у них есть документ, которым
> они руководствуются. всё, что в этом документе не описано, они поддерживать
> не должны.

Ещё раз тебе пишу - давай вставлять rm -rf $HOME там, где появилось UB.

> потому что общество так договорилось.

В УК в статье про воровство это написано?

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

Эволюция культуры - обычное дело. То, что он пишет - вполне правдоподобно, но надо проверять. А возврата к С == ассемблер, быть, разумеется, не может.

> если, исходя из документа, некоторые проверки можно
> удалить — оптимизатор вправе их удалить.

Исходя из документа, оптимизатор может ставить rm -rf $HOME в любое место, где есть UB. Но наличие определённой культуры написателям оптимизатора это делать мешает. Поэтому не надо мне рассказывать про то, что написатели оптимизатора должны руководствоваться ИСКЛЮЧИТЕЛЬНО стандартом и желанием оптимизировать.

Я просто желаю, чтобы они выдали предупреждение в том месте, где удаляют проверку. И они, судя по предыдущему подобному косяку, который я видел, это сделают.

Ответить | Правка | Наверх | Cообщить модератору

198. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 21:53 
> Ещё раз тебе пишу - давай вставлять rm -rf $HOME там, где
> появилось UB.

с удовольствием. количество говнокода (и говнокодеров) хотя бы на си после этого сократится в разы.

>> потому что общество так договорилось.
> В УК в статье про воровство это написано?

это принцип формирования конституции, знаешь ли.

> Исходя из документа, оптимизатор может ставить rm -rf $HOME в любое место,
> где есть UB. Но наличие определённой культуры написателям оптимизатора это делать
> мешает. Поэтому не надо мне рассказывать про то, что написатели оптимизатора
> должны руководствоваться ИСКЛЮЧИТЕЛЬНО стандартом и желанием оптимизировать.

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

> Я просто желаю, чтобы они выдали предупреждение в том месте, где удаляют
> проверку. И они, судя по предыдущему подобному косяку, который я видел,
> это сделают.

да вообще на каждое действие по 100500 предупреждений, чего мелочиться-то? совместил оптимизатор две переменные на стеке — предупреждение. убрал «+0» — предупреждение. а уж если посмел переписать выражение в CSE — вообще весь экран должно предупреждениями завалить.

Ответить | Правка | Наверх | Cообщить модератору

208. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 22:07 
> разупарывайся уже, пожалуйста. потому что вот этот процитированный мной абзац — это
> просто несвязный бред.

Это ты, лучше возвращайся из Валинора.

> да вообще на каждое действие по 100500 предупреждений, чего мелочиться-то? совместил оптимизатор
> две переменные на стеке — предупреждение. убрал «+0» — предупреждение.
> а уж если посмел переписать выражение в CSE — вообще весь
> экран должно предупреждениями завалить.

На каждое не надо, а на такие приколы ставят.

Именно GCCшники ставят, это же не первый раз замужем. В прошлый раз, который я помню, SPEC поломали. Тоже воплей было, что UB, что можно всё, хоть маму убить. Но кончилось победой разума над идиотизмом - вставили предупреждение.

Ответить | Правка | К родителю #198 | Наверх | Cообщить модератору

212. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 22:14 
> Это ты, лучше возвращайся из Валинора.

даже если я громче всех захрюкаю, твой текст всё равно останется бредом. я, честно говоря, удивлён, что ты сам этого не видишь: ведь бред он не потому, что «мне не нравятся утверждения», а потому, что они не имеют никакой логической связи, хотя претендуют на то, чтобы иметь.

> На каждое не надо, а на такие приколы ставят.

какие «такие»? соблюдение стандартов? говнокодеры от этого всё равно не начнут учить языки, на которых говнокодят.

> Именно GCCшники ставят, это же не первый раз замужем.

потому что их тоже говнокодеры задалбывают.

> Но кончилось победой разума над идиотизмом

увы, победой идиотов, которые считают, что разумны именно они.

Ответить | Правка | К родителю #208 | Наверх | Cообщить модератору

220. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 22:26 
> какие «такие»? соблюдение стандартов? говнокодеры от этого всё равно не начнут
> учить языки, на которых говнокодят.

Да, на Цэ написаны тонны говнокода. И что изменится от того, что ты объявишь его неправильным? Ничего.

> потому что их тоже говнокодеры задалбывают.

Если ты поддерживаешь компилятор для языка с 50-ти летней историей, ты подписываешься под ответственностью держать совместимость. Даже с говнокодом. Не хочешь - иди пили компилятор для Rust'а. Или Python'а.

Ответить | Правка | К родителю #212 | Наверх | Cообщить модератору

229. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 22:44 
> Да, на Цэ написаны тонны говнокода. И что изменится от того, что
> ты объявишь его неправильным? Ничего.

ещё раз: это не причина делать костыли.

>> потому что их тоже говнокодеры задалбывают.
> Если ты поддерживаешь компилятор для языка с 50-ти летней историей, ты подписываешься
> под ответственностью держать совместимость.

лолвут? оригинальный сишный код сейчас не соберёт *ни* *один* компилятор. нет, не k&r C, а оригинал.

и да: собирает. и работает. с -O0. ещё раз настырно спрашиваю: в чём проблема прочитать документацию, где говорится о том, какие гарантии даются на оптимизатор?

Ответить | Правка | К родителю #220 | Наверх | Cообщить модератору

232. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 22:53 
> ещё раз: это не причина делать костыли.

Причина. Та же эпопея со SPEC - либо корректируем SPEC2006 => все предыдущие результаты SPEC2006 на помойку, либо gcc больше не проходит SPEC2006, либо костыль. Папа, что ты хочешь - крокодильчика, удавчика или хомячка?

Тут, где кругом говно, грязь и соответствующий код, почему-то выбирают костыль в gcc. И я даже не понимаю, почему так? В Валиноре, конечно, выбрасывают SPEC.

Ответить | Правка | К родителю #229 | Наверх | Cообщить модератору

233. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 23:02 
> Тут, где кругом говно, грязь и соответствующий код, почему-то выбирают костыль в
> gcc.

и поэтому там вечно будет говно, грязь и говнокод. по буквам:
в
е
ч
н
о

и, само собой, живущие в этом говне всегда будут завидовать «валинору», и от этой зависти требовать, чтобы нормальные разумные существа тоже барахтались в грязи и хрюкали.

Ответить | Правка | К родителю #232 | Наверх | Cообщить модератору

235. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Vkni (ok), 14-Июн-14, 23:12 
> и поэтому там вечно будет говно, грязь и говнокод. по буквам:
> в
> е
> ч
> н
> о

Буквы не те. Правильно О П Ж А, а составить нужно слово ВЕЧНОСТЬ. Но ты прав - в реальном мире даже после самой чистой уборки есть место, где лежит грязь. И это, тем не менее, не отменяет необходимости уборки.

Такая, блин, диалектика. Короче, возращайся из Валинора, посмотри вокруг, на реальный мир.

Ответить | Правка | К родителю #233 | Наверх | Cообщить модератору

238. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 23:27 
я предлагаю перестать сорить (и за попытку насорить бить канделябром), а ты предлагаешь нанять побольше уборщиков. спасибо, живи в своём мире сам, а мне в моём намного комфортней.
Ответить | Правка | К родителю #235 | Наверх | Cообщить модератору

243. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 14-Июн-14, 23:49 
> я предлагаю перестать сорить (и за попытку насорить бить канделябром), а ты
> предлагаешь нанять побольше уборщиков. спасибо, живи в своём мире сам, а
> мне в моём намного комфортней.

Ты предлагаешь перестать сорить вообще. На намёки, что это невозможно, и при большом стечении народу будет груда мусора, даже при наличии канделябров, ты обижаешься.

Я предлагаю:

а) сорить по-меньше, включив канделябр.

б) набрать больше уборщиков.

Т.е. стандартный комплексный подход.

P.S.
Разумеется, мы оба живём в моём мире, т.к. он реален.

Ответить | Правка | К родителю #238 | Наверх | Cообщить модератору

246. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 14-Июн-14, 23:57 
> Ты предлагаешь перестать сорить вообще.

в перспективе — да. начать это с того, что прекратить проявлять терпимость к тем, кто сорит. нет, не «они не виноваты, может, потом поймут», а «подобрал и сожрал, скотина!»

> P.S. Разумеется, мы оба живём в моём мире, т.к. он реален.

конечно, реален — в этом ты прав. а вот в том, что мы там оба — нет. я по необходимости иногда захаживаю к вам (надев предварительно костюм биозащиты, потому как место гиблое), быстро делаю то, за чем зашёл и ухожу.

Ответить | Правка | К родителю #243 | Наверх | Cообщить модератору

248. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 15-Июн-14, 00:07 
> в перспективе — да. начать это с того, что прекратить проявлять терпимость
> к тем, кто сорит. нет, не «они не виноваты, может, потом
> поймут», а «подобрал и сожрал, скотина!»

Это лишь красивые слова. Ты лучше скажи, что со SPEC'ом делать? Ну расстрелял ты того, кто внёс ошибочный код (если он ещё не помер, конечно), дальше что?

Простая проблема, чётко по теме: gcc последней версии генерирует вылетающий код в одном из тестов SPEC'а, все остальные компиляторы, проходящие SPEC, генерируют работающий. Что делать?

Ответить | Правка | К родителю #246 | Наверх | Cообщить модератору

249. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 15-Июн-14, 00:10 
> Что делать?

разобраться, где баг и починить его именно там. если по стандарту gcc прав, то баг в тесте, и чинить надо тест.

Ответить | Правка | К родителю #248 | Наверх | Cообщить модератору

251. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 15-Июн-14, 00:15 
> разобраться, где баг и починить его именно там. если по стандарту gcc
> прав, то баг в тесте, и чинить надо тест.

Ты понимаешь, что все тесты с этим багом станут автоматом невалидны? И их нельзя будет сравнивать с твоим "исправленным"?

Ответить | Правка | К родителю #249 | Наверх | Cообщить модератору

252. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 15-Июн-14, 00:20 
> Ты понимаешь, что все тесты с этим багом станут автоматом невалидны?

и это правильно. какой смысл в тесте, защищающем ошибку? я-то, наивный, думал, что задача тестов — ошибки как раз выявлять.

> И их нельзя будет сравнивать с твоим "исправленным"?

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

Ответить | Правка | К родителю #251 | Наверх | Cообщить модератору

253. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –2 +/
Сообщение от Vkni (ok), 15-Июн-14, 00:42 
> и это правильно. какой смысл в тесте, защищающем ошибку?

Он не защищает ошибку, а содержит. Эта ошибка - выход за границы массива при чтении никак себя не проявляет на всех компиляторах, кроме одного.

Если просчитать затраты сил на переделывание всех тестов и вставку костыля окажется, что костыль поставить на несколько порядков дешевле.

Ответить | Правка | К родителю #252 | Наверх | Cообщить модератору

254. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 15-Июн-14, 00:44 
> Если просчитать затраты сил на переделывание всех тестов и вставку костыля окажется,
> что костыль поставить на несколько порядков дешевле.

и то верно. уборка? да ну, намного дешевле замести мусор под ковёр: там же никто не видит, а, значит, никакого мусора и нет.

Ответить | Правка | К родителю #253 | Наверх | Cообщить модератору

255. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –2 +/
Сообщение от Vkni (ok), 15-Июн-14, 01:10 
> и то верно. уборка? да ну, намного дешевле замести мусор под ковёр:
> там же никто не видит, а, значит, никакого мусора и нет.

Это лозунги. Ты сам, внутри себя, чётко осознаёшь правильное решение. И, более того, в подобной ситуации - когда нужно либо вставить костыль, либо переделать сотни тестов, выберешь первое.

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

Ответить | Правка | К родителю #254 | Наверх | Cообщить модератору

257. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 15-Июн-14, 01:34 
> Это лозунги. Ты сам, внутри себя, чётко осознаёшь правильное решение. И, более
> того

…я не менее чётко пишу об этом решении. но, конечно, механизмы компенсации никогда не позволят признать, что кто-то может отказаться жить с говном под ковром. ну, извини, это уже проблема из другой области.

Ответить | Правка | К родителю #255 | Наверх | Cообщить модератору

291. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от Аноним (-), 16-Июн-14, 09:35 
> ты объявишь его неправильным? Ничего.

Его или пофиксят, или выкинут. И так и эдак хорошо.

> под ответственностью держать совместимость.

...со стандартами. А не чужим кривым гомнокодом, которого много и весь все-равно не изучишь. Поэтому логично ориентироваться на стандарты, а кто на них забил - ССЗБ. Единственный продолб - отсутствие warning о такой деятельности компилера. Это да, нехорошо.

> пили компилятор для Rust'а. Или Python'а.

Вот пусть гомнокодеры и валят на этом программить, если соблюдать стандарты слишком сложно. Только нефиг потом удивляться что у ЯПов репутация - как у вьюжлвасика, и код такой же. Даже если он идеально отформатирован и без странностей в стандарте - лучше он не становится и работает соответствующе.

Ответить | Правка | К родителю #220 | Наверх | Cообщить модератору

297. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok), 16-Июн-14, 11:45 
> Вот пусть гомнокодеры и валят на этом программить, если соблюдать стандарты слишком
> сложно.

вообще-то конкретно сишный — сложно. ты его читал хоть? это из разряда системды: куча крапа, логически который вывести почти невозможно, и потому надо зазубривать.

Ответить | Правка | К родителю #291 | Наверх | Cообщить модератору

319. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 17-Июн-14, 09:50 
> ты его читал хоть?

Конечно, нет. Тут, по-видимому, вдумчиво читала С-шный стандарт не больше пары человек. А С++-ный, как известно, вообще никто не читал. Однако, и на С, и на С++ пишут.

Так что, про массовые чтения Release Notes, стандартов и т.д. - это прекраснодушные мечтания.

Ответить | Правка | К родителю #297 | Наверх | Cообщить модератору

322. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok), 17-Июн-14, 13:27 
вот в том и беда, что пишут.

ну, и в том ещё, что соответствующие стандарты делали комитеты.

Ответить | Правка | К родителю #319 | Наверх | Cообщить модератору

329. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok), 17-Июн-14, 16:39 
> вот в том и беда, что пишут.
> ну, и в том ещё, что соответствующие стандарты делали комитеты.

Я и пишу, что ты всё прекрасно понимаешь внутри себя.

Ответить | Правка | К родителю #322 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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