The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от opennews (ok) on 13-Июн-14, 09:03 
Доступны корректирующие выпуски DNS-сервера BIND 9.10.0-P2 (http://permalink.gmane.org/gmane.network.dns.bind.announce/502), 9.9.5-P1 (http://permalink.gmane.org/gmane.network.dns.bind.announce/501) и 9.8.7-P1 (http://permalink.gmane.org/gmane.network.dns.bind.announce/500), в которых устранена серия уязвимостей и решена проблема (https://kb.isc.org/article/AA-01167), способная привести к краху процесса в непредсказуемые моменты обработки запросов. Примечательно, что проблема проявляется только при сборке с использованием GCC 4.9.0 и более новых выпусков и вызвана изменением работы оптимизатора GCC. В частности,  начиная с GCC 4.9 по умолчанию включается режим удаления лишних операций сравнения с указателями NULL, при использовании которого из-за удаления из кода важных для работы проверок в BIND начинают проявляться непредсказуемые проблемы в работе. Для решения проблемы следует обеспечить сборку BIND с опцией "CFLAGS=-fno-delete-null-pointer-checks".

Кроме отмеченной проблемы, в новых выпусках устранена порция DoS-уязвимостей:


-  CVE-2014-3859 (http://permalink.gmane.org/gmane.network.dns.bind.announce/499) (только BIND 9.10) - крах при обработке специально оформленных EDNS-пакетов (механизм работы с пакетами, размером более 512 байт);
-  CVE-2014-3214 (только BIND 9.10) - крах в процессе использования технологии prefetch;
-  CVE-2013-6230 (только BIND 9.9) - ошибочный расчёт нулевых масок в localnets acl на платформе Windows;
-  CVE 2014-0591 (только BIND 9.9) - крах при обработке некоторых подписанных зон NSEC3.

URL: http://permalink.gmane.org/gmane.network.dns.bind.announce/499
Новость: http://www.opennet.ru/opennews/art.shtml?num=39992

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

Оглавление

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


1. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от АнониМ (ok) on 13-Июн-14, 09:03 
>удаления лишних операций сравнения с указателями NULL,
>при использовании которого из-за удаления из кода важных для работы проверок в BIND начинают проявляться непредсказуемые проблемы в работе.

я чего-то не понял - это баг гцц ? Или как лишние сравнения, могут одновременно  важными?

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

14. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от рлрлро on 13-Июн-14, 11:53 
volatile
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

35. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 15:40 
Оптимизатор не удалит. Ну или тогда это баг в gcc, да.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

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

очень просто: стандарты не читай @ на си пиляй!

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

если компилятор удалил проверку и «всё пропало, шеф, всё пропало!» — то это 99.(9)% вероятность не ошибки в компиляторе, а того, что на вход компилятору подали некорректный говнокод, полагающийся на то, что UB совсем не UB.

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

2. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +10 +/
Сообщение от Аноним (??) on 13-Июн-14, 09:16 
> режим удаления лишних операций сравнения с указателями NULL

Какая чудесная оптимизация.

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

8. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –4 +/
Сообщение от YetAnotherOnanym (ok) on 13-Июн-14, 10:54 
Модные мальчики пробрались в команду GCC.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

45. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +9 +/
Сообщение от Аноним (??) on 13-Июн-14, 16:54 
Это нормальная оптимизация. И, как правильно сказали выше, ломается на ней именно [censored]код.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

132. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от YetAnotherOnanym (ok) on 14-Июн-14, 16:37 
Если кода не очень много - чтобы его мог вычитать и вылизать один человек (или несколько достаточно близко контактирующих) - тогда да. А когда контрибутит большое сообщество, плюс либы от третьей стороны - прилететь может всё что угодно, поэтому проверять данные надо.
Переформулирую - код, который ты не вычитал сам, считай априори [censored]кодом, и допускай, что на выходе от него можно получить значение NULL там, где оно не может быть NULL.
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

265. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 15-Июн-14, 16:07 
man "code review"

Во всех крупных свободных проектах. Если вы не применяете — никто вам не виноват.

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

321. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от YetAnotherOnanym (ok) on 17-Июн-14, 11:54 
Ладно, предположим, проверил я код всех сторонних либ, которые юзает мой проект. Нашёл "недоработку". Отправил багрепорт, может быть даже с патчем. А тот проект пилит один анонимус в своё свободное время, и реакции на багрепорт - никакой. Если я знаю, что везде, где мой софт будет использоваться, стоит эта либа с непофиксенным багом, из-за которого может прилететь NULL где не надо, что делать? Форкать либу и пропихивать свой форк в дистрибы? Включать в тарбол её исходники со своим фиксом? Я всё-таки выберу поставить в нескольких местах проверку на NULL, пусть это и не согласуется с чьими-то представлениями о красоте.
Ответить | Правка | ^ к родителю #265 | Наверх | Cообщить модератору

324. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от arisu (ok) on 17-Июн-14, 13:29 
для начала — прекратить использовать неподдерживаемые библиотеки. как раз потому, что в них никто не чинит баги.

впрочем, говнокодеры о таких нюансах никогда не думают, хватают первое попавшееся и радуются. недолго, правда.

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

327. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от rob pike on 17-Июн-14, 15:54 
Главное - заранее угадать какая библиотека станет неподдерживаемой завтра.

Опыт и интуиция to the rescue

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

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

не так уж и сложно, на самом деле.

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

36. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 15:43 
>> режим удаления лишних операций сравнения с указателями NULL
> Какая чудесная оптимизация.

Нормальная оптимизация.

Foo *foo = ...
foo->bar;
if (foo) ...;

Вот последнюю проверку компилятор вполне имеет право удалить, ибо foo не может быть нулём, тогда foo->bar было бы обращением по нулевому указателю, а это UB, и компилятор волен обрабатывать как хочет. Делать вид, что обращений по нулевому указателю не бывает, например, и, следовательно, foo всегда не ноль.

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

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

В мире эльфов - да. Всё-таки, вера в то, что компилятору не придётся обрабатывать код с ошибками, в высшей степени наивна.

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

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

Есть баланс между толерантностью к ошибкам и качеством оптимизации. Включаешь оптимизатор — будь готов к тому, что кривой код он не простит.

Ну и статический анализ специально для этого придумали. clang'овский static-analyzer такие вещи отлично находит.

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

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

Ну так -O3 уже никто и не включает. Или пацаны хотят добиться, что и -O2 включать не будут?

Баланс, разумеется есть, но gcc регулярно шагает за баланс в сторону оптимизации. Нижеприведённый код qsort в стандарт был введён в 1999 году, а на C писали и до этого года. Т.е. оптимизация ярковыраженно ломает нормальный код, написанный 20 лет назад.

Причём, как это обычно у gccшников, без объявления войны. Хотя бы предупреждения о выбрасывании кода можно было выкинуть. Ну, типа unreachable code.

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

59. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +3 +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 19:00 
>> Есть баланс между толерантностью к ошибкам и качеством оптимизации. Включаешь оптимизатор — будь готов к тому, что кривой код он не простит.
> Ну так -O3 уже никто и не включает. Или пацаны хотят добиться,
> что и -O2 включать не будут?

Включаю -O3 в продакшене на корректно написанном коде, брат жив.

> Баланс, разумеется есть, но gcc регулярно шагает за баланс в сторону оптимизации.

Есть у меня один знакомый, который как раз поэтому gcc и обожает, что там код работает на 5-10% быстрее, чем в clang, как правило.

> Нижеприведённый код qsort в стандарт был введён в 1999 году, а
> на C писали и до этого года. Т.е. оптимизация ярковыраженно ломает
> нормальный код, написанный 20 лет назад.

-std=c90 или подобное никто не запрещает передавать. Если при этом gcc откуда-то возьмёт требование к ненулёвости соответствующего аргумента qsort — вот тогда это проблема и баг в gcc. А если авторы пишут на C до 99 года, а передают ключи, соответствующие более свежему стандарту — ну, чо, ССЗБ.

> Причём, как это обычно у gccшников, без объявления войны. Хотя бы предупреждения
> о выбрасывании кода можно было выкинуть. Ну, типа unreachable code.

Unreachable code в этом случае выкидывать — это либо прокидывать какой коллбек из optimization pass в морду, что, вполне возможно, с текущей архитектурой gcc фиг сделаешь, либо делать полноценный статический анализ на этапе разбора кода, а это на времени компиляции скажется не очень позитивно.

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

А вообще, за хорошим анализом кода при обычной компиляции и предупреждениями — это к clang :)

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

60. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от Vkni (ok) on 13-Июн-14, 19:12 
> Включаю -O3 в продакшене на корректно написанном коде, брат жив.

Я очень рад за вас и вашего брата. Но таки вы - исключение. Стандартные флаги оптимизации в дистрибутивах (т.е. в 99% открытого софта) - O2.

> Есть у меня один знакомый, который как раз поэтому gcc и обожает,
> что там код работает на 5-10% быстрее, чем в clang, как
> правило.

Про clang пока даже речи не было. Совершенно неизвестно, что тамошние бравые парни наворотили. Есть отдельные места - http://clang.llvm.org/doxygen/ToolChains_8cpp_source.html
которые заставляют несколько усомниться в их квалификации.

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

Есть такое. Но если место столь неприятно опасное, то стоило бы.

> А вообще, за хорошим анализом кода при обычной компиляции и предупреждениями —
> это к clang :)

Он совершенно никакого сравнения с PVS-кой не выдерживает.

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

61. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 19:17 
>> Включаю -O3 в продакшене на корректно написанном коде, брат жив.
> Я очень рад за вас и вашего брата. Но таки вы -
> исключение. Стандартные флаги оптимизации в дистрибутивах (т.е. в 99% открытого софта)
> - O2.

Ну, это дело другое, и я бы на самом деле поспорил, что дело именно в ломающем код оптимизаторе. Впрочем, это оффтопик.

>> Есть у меня один знакомый, который как раз поэтому gcc и обожает,
>> что там код работает на 5-10% быстрее, чем в clang, как
>> правило.
> Про clang пока даже речи не было. Совершенно неизвестно, что тамошние бравые
> парни наворотили. Есть отдельные места - http://clang.llvm.org/doxygen/ToolChains_8cpp_source.html

Какой-то файл с костылями, честное слово.

> которые заставляют несколько усомниться в их квалификации.

Да, там тоже есть свои проблемы. Но, по опыту, для кода, написанного по стандартам, а не по gcc, clang лучше себя ведёт.

>> А вообще, за хорошим анализом кода при обычной компиляции и предупреждениями —
>> это к clang :)
> Он совершенно никакого сравнения с PVS-кой не выдерживает.

У меня совершенно обратный опыт. Гонял один товарищ PVS по кое-чему из моего кода, ни единого сообщения по делу. В основном ругается на 32 и прочие подобные константы, считая это хардкодом битности машины, в коде вроде

auto pixmap = icon.pixmap (32, 32);

Ну и местами предлагает T на const T& заменить, не всегда по делу. Итого, сложилось впечатление, что это какая-то мешанина на регекспах, а не статический анализатор кода на плюсах.

clang'овский static-analyzer же, в свою очередь, несколько действительно проблемных мест мне нашёл.

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

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

А в чём ещё? Какой смысл ставить -O2, если -O3 быстрее и не ломает код?

> Какой-то файл с костылями, честное слово.

Ну достаточно элементарного понимания, что такое дистрибутивы Linux'а, чтобы не писать подобных скриптов не просто на C++, а даже на bash'е. Достаточно же одной символьной ссылки на gcc или макроса с расположением gcc в коде, поставленного мейнтейнером пакета clang.

> Ну и местами предлагает T на const T& заменить, не всегда по
> делу. Итого, сложилось впечатление, что это какая-то мешанина на регекспах, а
> не статический анализатор кода на плюсах.

Да, отчасти на регекспах, отчасти стат. анализатор. Много положительных срабатываний.

> clang'овский static-analyzer же, в свою очередь, несколько действительно проблемных мест
> мне нашёл.

У меня - ни одного.

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

63. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 19:37 
> А в чём ещё? Какой смысл ставить -O2, если -O3 быстрее и
> не ломает код?

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

>> clang'овский static-analyzer же, в свою очередь, несколько действительно проблемных мест
>> мне нашёл.
> У меня - ни одного.

Ну вот это PVS'ом не нашлось, например: https://github.com/0xd34df00d/leechcraft/commit/8b8156678474... , а кланг после вот этого вот я прямо зауважал. Хотя дело под год назад было, да.
Да и PVS очень плохо относился к C++11, было суммарно с дюжину файлов, где он упал. clang сдох всего на двух.

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

96. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от pv47 (ok) on 13-Июн-14, 22:31 
> Есть у меня один знакомый, который как раз поэтому gcc и обожает,
> что там код работает на 5-10% быстрее, чем в clang, как
> правило.

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

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

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

98. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 22:33 
>> Есть у меня один знакомый, который как раз поэтому gcc и обожает,
>> что там код работает на 5-10% быстрее, чем в clang, как
>> правило.
> если код твоего знакомого работает на 10% быстрее в gcc, чем в
> шланге, за счёт таких оптимизаций, то у меня для него плохие
> новости: у него в коде куча лишних проверок, которые он почему-то
> не выкинул сам. наверное, это как раз тот случай, когда компилятор
> умнее человека.

Не код моего знакомого. Он всякими там povray бенчмаркает.

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

Нечем тут гордиться. И не гордиться, впрочем, тоже.

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

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

вышепроцитированное — реакция школоты на assert()'ы, например.

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

131. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Reinar (ok) on 14-Июн-14, 16:36 
> если код твоего знакомого работает на 10% быстрее в gcc, чем в шланге, за счёт таких оптимизаций, то у меня для него плохие новости: у него в коде куча лишних проверок

Если код работает на 10% быстрее после выкидывания "лишних" проверок, то этот код практически целиком состоит из проверок.

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

245. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Demo (??) on 14-Июн-14, 23:54 
$ traceroute 0xd34df00d
traceroute to 0xd34df00d (211.77.240.13) 211-77-240-13.adsl.fetnet.net
...
10  h33-192-72-155.seed.net.tw (192.72.155.33)  320.941 ms
...
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

247. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??) on 15-Июн-14, 00:00 
> $ traceroute 0xd34df00d
> traceroute to 0xd34df00d (211.77.240.13) 211-77-240-13.adsl.fetnet.net
> ...
> 10  h33-192-72-155.seed.net.tw (192.72.155.33)  320.941 ms
> ...

0xd34df00d.me трейсить надо.

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

117. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 13:32 
> Ну так -O3 уже никто и не включает. Или пацаны хотят добиться,
> что и -O2 включать не будут?

пацаны хотят, чтобы говнокодеры документацию читали сначала.

уж от тебя-то я не ожидал такой позиции.

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

266. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 15-Июн-14, 16:08 
> Причём, как это обычно у gccшников, без объявления войны. Хотя бы предупреждения
> о выбрасывании кода можно было выкинуть. Ну, типа unreachable code.

Release Notes к gcc 4.9 почитайте. И Porting to, если вам мало.

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

109. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Anonym2 on 14-Июн-14, 01:46 
>> Вот последнюю проверку компилятор вполне имеет право удалить
> В мире эльфов - да. Всё-таки, вера в то, что компилятору не
> придётся обрабатывать код с ошибками, в высшей степени наивна.

И разработчики GCC вряд ли страдают этой верой.
Кстати, foo->bar компилятор тоже вправе удалить... >:-)

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

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

для идиотов есть режим -O0. в документации по gcc ясно написано, что корректность выхлопа оптимизатора гарантируется *только* для корректных программ. если авторы подсунули компилятору говнокод, то они сами и виноваты.

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

296. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от КО on 16-Июн-14, 11:44 
> корректность выхлопа оптимизатора гарантируется *только* для корректных программ

if (a) {
   mtx.lock();
    if (a) {  // явно же лишняя проверка - только что проверили.

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

298. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от arisu (ok) on 16-Июн-14, 11:53 
>> корректность выхлопа оптимизатора гарантируется *только* для корректных программ
>  if (a) {
>    mtx.lock();
>     if (a) {  // явно же лишняя
> проверка - только что проверили.

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

такие дела.

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

305. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok) on 16-Июн-14, 17:40 
>>> корректность выхлопа оптимизатора гарантируется *только* для корректных программ
>>  if (a) {
>>    mtx.lock();
>>     if (a) {  // явно же лишняя
>> проверка - только что проверили.
> конечно, лишняя. если ты меняешь переменную из разных потоков и не объявил
> её volatile — ты идиот, а твой код говно.

Не всё так просто, см. страницу 7 здесь: http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf

Правда, то в приложении к синглтонам.

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

307. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 16-Июн-14, 20:43 
да, я в курсе, что volatile — не такая уж простая и лёгкая штука. ну, и welcome в область нестандартного — read and write barriers в gcc, например…
Ответить | Правка | ^ к родителю #305 | Наверх | Cообщить модератору

299. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 16-Июн-14, 11:54 
p.s. да, компилятор имеет право проанализировать метод lock(), увидеть, что a там не меняется и выкинуть проверку нафиг.
Ответить | Правка | ^ к родителю #296 | Наверх | Cообщить модератору

304. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (??) on 16-Июн-14, 17:37 
>  if (a) {
>    mtx.lock();
>     if (a) {  // явно же лишняя
> проверка - только что проверили.

Ну так в C++ до 11 не было memory model, машина представлялась однопоточной. Это уже проблема языка и стандарта, а не компилятора.

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

3. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 13-Июн-14, 09:18 
премию обратно не отдадут =D
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от freehck email(ok) on 13-Июн-14, 10:26 
Премия-то - 2500$. Деньжища-то какие. ;)
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 09:37 
я не понял, если это баг гцц, где патч? а если баг бинда, зафига этот костыль, вместо приведения кода в порядок?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 09:57 
Это похоже на универсальную закладку. Чтобы даже если программист все дыры закроет нужными проверками, всё равно в исполняемом файле дырочки бы остались.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

21. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 14:06 
> Это похоже на универсальную закладку. Чтобы даже если программист все дыры закроет
> нужными проверками, всё равно в исполняемом файле дырочки бы остались.

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

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

65. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (??) on 13-Июн-14, 20:16 
> Написал volatile - и оппа, сразу дырочка,

Вы там с головой в дружбе? Volatile как раз наоборот запрещает компилеру optimize out то что по его мнению можно выбросить, т.к. явно хинтит что помеченное как volatile может изменяться или использоваться неожиданным для компилятора образом и соответственно выбрасывать это ни в коем случае нельзя.

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

13. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от рлрлро on 13-Июн-14, 11:52 
Это не баг, просто компилятор не может, по компилируемому куску кода, самостоятельно определить, что эти переменные могут принять значение NULL. Почитай про ключевое слово volatile.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

26. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Пиу (ok) on 13-Июн-14, 14:22 
>volatile

откуда инфа, что виновато volatile? можно ссылочку? (ищу диффы, не могу найти)

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

40. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (??) on 13-Июн-14, 16:31 
Volatile не "виновато" а всего лишь указывает компилеру что переменная может изменяться неожиданным для него образом (в эмбедовке, например, обработчик прерывания может сильно сбоку туда что-то записать, etc) и что данную переменную по этому поводу нельзя удалять в целях оптимизации, даже если все выглядит так как будто она не используется.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

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

и поэтому удаляет код, который явно проверяет это и написан программистом, который МОЖЕТ это сделать самостоятельно. браво.

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

106. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Ordu email(ok) on 13-Июн-14, 23:31 
> написан программистом, который МОЖЕТ это сделать самостоятельно

Как факт, замечу, что программист не всегда это делает. Допустим есть функция:
static inline int first(char *str)
{
    return str ? str[0] : -1;
}


И вот примерчик её использования:
int char use_case()
{
    char str[] = "Hello world";
    return first(str);
}

В этом примерчике, программист МОЖЕТ проверить на NULL самостоятельно, и может даже самостоятельно выкинуть эту проверку, заинлайнив first вручную. Но, вообще-то, inline функции для того и придумали, чтобы их инлайнил компилятор.

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

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

107. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от pv47 (ok) on 14-Июн-14, 00:17 
> Допустим есть функция:

Я об этом как-то не подумал... хотя, ваш пример носит другой характер.

В вашем случае компилятор явно _видит_, что str!=NULL и выкидывает проверку в first. Это обычное вычисление констант на этапе компиляции.

В обсуждаемом же случае компилятор видит, что используется str[0], и _догадывается_, что str!=NULL и поэтому выкидывает проверку.

То есть в случае

static inline int first (char *str)
{
    int ret = str[0];
    if (!str) ret = -1;
    return ret;
}

компилятор выкидывает проверку !str, т.к. str[0] использовалось раньше. И в результате на системах, где чтение нулевого адреса не приведёт к ошибке, first() будет работать некорректно. Хоят с точки зрения программиста, от "высокоуровневого ассемблера" логично предполагать, что в этом случае функция либо выполнится правильно либо выдаст SIGSEGV. Компилятор же внёс вариант "выполнится успешно, но неправильно".

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

ИМХО, идеальным вариантом стала бы поддержка какого-нибудь -fno-optimize-undefined-behavior, который бы просто не оптимизировал подобные сомнительные случаи, т.е. перекладывал бы "неопределённое поведение" на процессор и библиотечные функции.

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

113. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Xasd (ok) on 14-Июн-14, 04:16 
> идеальным вариантом стала бы поддержка какого-нибудь -fno-optimize-undefined-behavior, который бы просто не оптимизировал подобные сомнительные случаи ...

где ты *сомнительный* случай нашёл?

если программист сделал для структуры (foo)


x = foo->bar
// other code

значит компилятор *БЕЗ* каких либо сомнений знает что foo всегда != 0.

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

119. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 13:38 
> ИМХО, идеальным вариантом стала бы поддержка какого-нибудь -fno-optimize-undefined-behavior,
> который бы просто не оптимизировал подобные сомнительные случаи, т.е. перекладывал бы
> "неопределённое поведение" на процессор и библиотечные функции.

есть такой ключ! -O0!

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

108. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от eganru on 14-Июн-14, 01:09 
по Вашему ассемблер так вообще для слабаков.
Ответить | Правка | ^ к родителю #106 | Наверх | Cообщить модератору

283. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 16-Июн-14, 09:15 
>     return str ? str[0] : -1;

А это вообще нормально - возвращать str[0] который char как знаковый int? Нет, си конечно по факту так позволяет. Но, как бы это сказать, неаккуратненько...

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

301. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 16-Июн-14, 12:04 
> А это вообще нормально - возвращать str[0] который char как знаковый int?

нормально, говнокодеры говорят малацца.

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

308. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Ordu email(ok) on 16-Июн-14, 21:47 
>>     return str ? str[0] : -1;
> А это вообще нормально - возвращать str[0] который char как знаковый int?
> Нет, си конечно по факту так позволяет. Но, как бы это
> сказать, неаккуратненько...

Ты знаешь назначение функции first? Видишь ли, при ней нет документационного комментария, поэтому я не знаю, для чего она вообще нужна. Если ты знаешь, расскажи мне, и мы обсудим, насколько уместно возвращение str[0].

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

309. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от arisu (ok) on 16-Июн-14, 22:18 
нинасколько, потому что никакой разумной причины возвращать или str[0] или -1 нет, ибо -1 входит во множество значений char. неразумных же причин можно выдумать много, но все они могут возникнуть только в говнокоде.
Ответить | Правка | ^ к родителю #308 | Наверх | Cообщить модератору

310. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Ordu email(ok) on 16-Июн-14, 22:55 
> нинасколько, потому что никакой разумной причины возвращать или str[0] или -1 нет,
> ибо -1 входит во множество значений char. неразумных же причин можно
> выдумать много, но все они могут возникнуть только в говнокоде.

Отлично. Тогда я предлагаю переписать тот примерчик, дабы продемонстрировать оптимизацию на идеологически верном коде. Удивите нас.

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

343. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Crazy Alex (ok) on 22-Дек-15, 15:33 
А что тут ненормального? Архитектур, где sizeof(char)==sizeof(int) уже и не осталось, разве что контроллеры какие-то. А для обычного рядового кода char, даже если он unsigned, в signed int поместится гарантированно.
Ответить | Правка | ^ к родителю #283 | Наверх | Cообщить модератору

345. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 22-Дек-15, 21:30 
> А что тут ненормального?

как я уже писал, ненормально тут то, что -1 — валидное значение для char, который по умолчанию signed. как этот код ни переписывай, он изначально говнокод, потому что использует для исключительной ситуации код возврата, который может появиться и без исключительной ситуации. у программиста при виде этого в голове ревёт сирена. сразу. вне зависимости от того, может ли во входном потоке встретиться \xff — если это никак не проверяется, и даже комментария нет, то может, и встретится, и всё сломается.

это как не проверять результат malloc'а: глаз мгновенно спотыкается, а руки автоматически тянутся вставить хотя бы проверку с abort'ом.

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

346. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (??) on 22-Дек-15, 21:31 
> char, который по умолчанию signed.

Нет, знаковость char зависит от платформы.

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

347. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 22-Дек-15, 21:59 
>> char, который по умолчанию signed.
> Нет, знаковость char зависит от платформы.

на большинстве платформ у большинства компиляторов char по‐умолчанию знаковый. без явных дополнительных уточнений это принимается умолчанием.

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

7. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 10:35 
clang пусть используют
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от YetAnotherOnanym (ok) on 13-Июн-14, 10:56 
> clang пусть используют

Порождение клятiх яблочников и вообще неправославно.

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

17. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 13:09 
яблочники делали предложение команде gcc по обьединению
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

18. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –4 +/
Сообщение от Аноним (??) on 13-Июн-14, 13:12 
А до этого делали предложение Столлману идти ***** со своей GPL v3 и, что характерно, Линус тоже не перешел.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

20. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +9 +/
Сообщение от Аноним (??) on 13-Июн-14, 14:05 
> Линус тоже не перешел.

Гражданин судья, а он не может перейти! :)

Для перехода ядра на GPLv3 нужно получить согласие у всех авторов коммитов в ядро за всю его историю. Долететь до Альфы Центавра будет быстрее и проще.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору
Часть нити удалена модератором

66. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +4 +/
Сообщение от Аноним (??) on 13-Июн-14, 20:18 
> Что за милая, чудесная, универсальная GPLv3, не правда ли? Ну и ее
> предшественница - так-то не сильно лучше.

Если бы некоторые не очень хорошие личности не находили лазейки в GPLv2 то и GPLv3 не требовался бы. Скажем тивоизаторам и прочим мошенникам спасибо, хренли. Как известно, если в законе закручивают гайки, этому обычно предшествует абуз какой-то фичи до состояния когда спокойно жить становится невозможно.

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

133. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Michael Shigorin email(ok) on 14-Июн-14, 18:08 
> Как известно

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

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

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

Ну вот, блин, опять меня бот на дискуссию развел :(.

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

111. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Куяврег on 14-Июн-14, 02:28 
я таки не понял, вам нравится, что GPLv3 требует согласия всех авторов или нет?
Ответить | Правка | ^ к родителю #343 | Наверх | Cообщить модератору

114. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Аноним (??) on 14-Июн-14, 05:37 
Мы просто найдем аналоги без GPL
Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

120. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 13:40 
> Мы просто найдем аналоги без GPL

вперёд. не понятно только, зачем «вы» при этом лезете в обсуждения gpl-ного софта со своими истериками.

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

285. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 16-Июн-14, 09:18 
> Мы просто найдем аналоги без GPL

Да, аналог линевому кернелу уж так искали, так искали. Только даже опач и яху задолбались искать чего-то. Бизибокс тоже грозились переписать. Года наверное 3 прошло, а воз и ныне там. Так и приходится бедным несчастным вендорам GPL tarball публиковать...

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

121. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 13:41 
> А до этого делали предложение Столлману идти ***** со своей GPL v3

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

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

41. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 16:38 
> яблочники делали предложение команде gcc по обьединению

Да, особенно хорошо все это заметно на примере swift, где они вообще не знают будет ли это опенсорсным. А оно надо - с такими объединяться?

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

10. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от YetAnotherOnanym (ok) on 13-Июн-14, 11:05 
Представляю, какое богатство лексикона продемонстрирует Линус, если выяснится, что ядро, собранное новым GCC ведёт себя не так, как должно.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

122. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 13:42 
> Представляю, какое богатство лексикона продемонстрирует Линус, если выяснится, что ядро,
> собранное новым GCC ведёт себя не так, как должно.

и по делу, само собой. то есть, напрямую тем идиотам, которые закомитили код, полагающийся на UB.

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

11. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (??) on 13-Июн-14, 11:23 
Правильный баг, вместо выполнения кода вылетает приложение :)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Xaionaro (ok) on 13-Июн-14, 12:55 
Просто не нужно собирать критические программы с помощью gcc версии x.y.0.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Аноним (??) on 13-Июн-14, 13:09 
Ну кто-то Арч юзает, не в продакшне конечно, но все-таки неприятно.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

22. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 14:07 
> Ну кто-то Арч юзает, не в продакшне конечно, но все-таки неприятно.

А википедия вообще на убунте :)

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

24. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 13-Июн-14, 14:18 
Да много кто на убунте, на самом деле. На 14.04 все-таки 4.8.х используется, 4.9 опционально.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

28. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 13-Июн-14, 14:42 
На самом деле, в убунте много других поводов для веселья.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

30. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (??) on 13-Июн-14, 14:55 
В Убунту на серваках зато гигантское комьюнити. И если не хочешь придумывать велосипеды и тестировать их у себя в продакшне,то это сейчас неплохой выбор, особенно если все завязано на средства автоматизации типа чефа, паппета и т.д, где есть куча всего готового именно под Убунту.
Сам, скрипя сердцем, в собственных поделках стал использовать Убунту вместо Опенсюзи из-за этого где-то год назад. :(
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

39. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –4 +/
Сообщение от Аноним (??) on 13-Июн-14, 16:24 
> В Убунту на серваках зато гигантское комьюнити.

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

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

42. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 13-Июн-14, 16:39 
> На самом деле, в убунте много других поводов для веселья.

А в чем они состоят? А то у меня на ряде серверов она пашет уже пятый год. Проблем - ноль.

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

34. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от bircoph (ok) on 13-Июн-14, 15:26 
Не нужно писать код, не соответствующий стандартам:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61236#c8
И всё будет хорошо.

The glibc prototype for qsort is:
extern void qsort (void *__base, size_t __nmemb, size_t __size,
                   __compar_fn_t __compar) __nonnull ((1, 4));
therefore when you pass x to it, gcc derives from that that x must not be NULL.
As ISO C99 says that qsort sorts an array of nmemb objects, I'd say the glibc prototype is correct and therefore BIND is buggy, because NULL is not an address of any object.

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

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

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

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

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

64. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +3 +/
Сообщение от mine (ok) on 13-Июн-14, 20:09 
Очевидно, что код до 99 года компилировали другими версиями GCC.

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

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

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

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

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

Солнце, до 99-го года этого стандарта не было.

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

82. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +3 +/
Сообщение от Аноним (??) on 13-Июн-14, 21:46 
а так же генерировать максимально быстрый код.
Разработчики предпочти второе.
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

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

Всегда можно сгенерировать мгновенно выполняющийся нерабочий код. :-)

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

286. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 16-Июн-14, 09:21 
{
return 0;
}

Очень быстрый код :). Компилер неплохо оптимизнет, наверное.

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

104. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от mine (ok) on 13-Июн-14, 23:07 
Ну так для совместимости есть специальные ключи. А если декларируется C99, то о чём речь?
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

105. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –2 +/
Сообщение от Vkni (ok) on 13-Июн-14, 23:14 
> Ну так для совместимости есть специальные ключи. А если декларируется C99, то
> о чём речь?

О том, что лучше не плодить несовместимость на ровном месте.

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

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

какое отношение авторы gcc имеют к glibc? ты что, перепил вчера, что ли?

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

123. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 13:43 
> Просто не нужно собирать критические программы с помощью gcc версии x.y.0.

собираю, брат жив, батя грит малацца.

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

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

19. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Аноним (??) on 13-Июн-14, 14:02 
Как компилятор мог сломать программу?
И какой самый без ошибок? Clang?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

37. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от 0xd34df00d (??) on 13-Июн-14, 15:45 
> Как компилятор мог сломать программу?
> И какой самый без ошибок? Clang?

Кланг, при всей моей любви к нему, тоже обожает подобные оптимизации.

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

43. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Аноним (??) on 13-Июн-14, 16:44 
> И какой самый без ошибок? Clang?

Clang? Без ошибок? Б$%, это ты не видел что LLVM вытворяет при сборке шейдеров для AMDшного драйвера. Там вообще адов багодром и полный сталинград. По милости этого глюкала постоянно вылетают программы которые им пользуются. Вообще, хорошее поведение для либы - не сообщить наверх "ну не смогла я, не смогла!" а просто вылететь нафиг, срубив при этом всю программу. Это в лучшем случае. В хучшем это гуано выдаст некорректный код который повесит GPU, что доставит много радости юзверю за монитором :)

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

25. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Нанобот (ok) on 13-Июн-14, 14:22 
дооптимизировались. "режим удаления лишних операций" теперь удаляет не только лишние операции, но и нужные.
фтопку такой компилятор, который собирает не тот код, который написал программист, а тот, который, по его мнению, хотел написать программист
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 14:44 
> фтoпку такой компилятор, который собирает не тот код, который написал программист, а
> тот, который, по его мнению, хотел написать программист

А других нынче и нет.
Точнее, есть, но они используются только для узкоспецифичных задач.

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

44. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Аноним (??) on 13-Июн-14, 16:46 
> тот, который, по его мнению, хотел написать программист

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

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

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

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

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

27. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +3 +/
Сообщение от Пиу (ok) on 13-Июн-14, 14:34 
короче говоря, вот ссылка на gcc'шную багзиллу: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61236 (Status: RESOLVED INVALID)

суть в том, что в qsort передается переменная-указатель, которая может быть NULL'ом.
с другой стороны эта функция промаркирована в glibc как такая, которая не может принимать NULL на входе (что соответствует стандарту). из этих соображений, gcc выводит, что в переменной не может быть NULL и убирает проверки.

обещают в gcc 4.10.0 вывод предупреждения на подобные случаи

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

31. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Crazy Alex (ok) on 13-Июн-14, 14:55 
Вывод - в glibc такое assert'ами прикрывать надо. В более продвинутых языках  он бы даже автоматом сгенерировался из атрибута nonnull, кстати. Наглядный пример неудобств слабой типизации сей.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

38. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +3 +/
Сообщение от Аноним (??) on 13-Июн-14, 15:49 
> Вывод - в glibc такое assert'ами прикрывать надо.

К.О. напоминает, что релизных сборках assert-ы не работают.

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

55. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +4 +/
Сообщение от pv47 (ok) on 13-Июн-14, 17:36 
> К.О. напоминает, что релизных сборках assert-ы не работают.

у людей, пишущих на "более продвинутых языках", любая сборка по определению отладочная.

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

81. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +1 +/
Сообщение от Аноним (??) on 13-Июн-14, 21:44 
Это в тех где все тормозит и ждет сотни мегабайт озу? (если не больше)
Так ничего не мешает отладочную выкладывать в качестве релиза.
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

344. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Crazy Alex (ok) on 22-Дек-15, 15:36 
Ясен пень, что не работают.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

32. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –3 +/
Сообщение от linux must _RIP__ on 13-Июн-14, 14:58 
Это не первый такой баг. Помнится не так давно gcc ломал сборку ядра или добавлял дыры убирая такие проверки.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Не в ABI.

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

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

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

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

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

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

> Не в ABI.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

такие дела.

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

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

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

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

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

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

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

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

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

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

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

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

Сбросьте.

> ассемблер.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я предлагаю:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от linux must _RIP__ on 13-Июн-14, 15:00 
> короче говоря, вот ссылка на gcc'шную багзиллу: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61236
> (Status: RESOLVED INVALID)
> суть в том, что в qsort передается переменная-указатель, которая может быть NULL'ом.
> с другой стороны эта функция промаркирована в glibc как такая, которая не
> может принимать NULL на входе (что соответствует стандарту). из этих соображений,
> gcc выводит, что в переменной не может быть NULL и убирает
> проверки.
> обещают в gcc 4.10.0 вывод предупреждения на подобные случаи

http://grsecurity.net/~spender/exploits/exploit2.txt

всего 4 года прошло..  История повторяется

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

49. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Аноним (??) on 13-Июн-14, 17:13 
> обещают в gcc 4.10.0 вывод предупреждения на подобные случаи

Круто, а между .9 и .10 что делать? :)

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

51. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +/
Сообщение от Vkni (ok) on 13-Июн-14, 17:13 
> Круто, а между .9 и .10 что делать? :)

.8

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

68. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  –1 +/
Сообщение от Аноним (??) on 13-Июн-14, 20:23 
> .8

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

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

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

Да. Собственно, я с практической точки зрения и подходил.

> Ибо если они не успели включить патчик с варнингом, но
> успели включить патчик с столь агрессивной оптимизацией - нарваться на тихую
> оптимизацию таких вещей не подпертую варнингом было бы не прикольно. Как
> будто в этом мире мало народа кладет на стандарты.

Более того, скажу, что в 96-м году как-то странно не класть на стандарт 99-го. Языку Цэ уже пол века, есть груда унаследованного кода, костылей и т.д. Их нужно учитывать при разработке компилятора.

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

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

292. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (??) on 16-Июн-14, 09:39 
> Более того, скажу, что в 96-м году как-то странно не класть на стандарт 99-го.

Если вы собираете код 96 года, сказав компилеру что надо использовать стандарт 99-го - благородный дон желает чего-то странного, не находите? И не кажется ли вам что единственный кого вы в этом процессе можете обмануть - это вы сами?

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

А зачем вы на код 96-го года врете компилеру что это C99 и закручиваете оптимизацию? "Если долго портить машину, она сломается".

> А если не хочется, то лучше уж запилить новый системный язык,

Запиливайте, разрешаю.

> GPU, параллельность и т.д.

ИЧСХ, в GCC все это пилят. ИЧСХ, основываясь на си.

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

300. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 16-Июн-14, 12:01 
> ИЧСХ, в GCC все это пилят. ИЧСХ, основываясь на си.

ИЧСХ, получается фигня.

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

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

Запоздало, т.к. люди над этим давно работают.

> ИЧСХ, в GCC все это пилят. ИЧСХ, основываясь на си.

От такого кол-ва изнасилований Слоник не выдержит и лопнет.

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

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

А до 1999-го года ни одной строчки на языке Цэ не написано!!!

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

69. "В DNS-сервере BIND устранен серьёзный сбой, возникший из-за ..."  +2 +/
Сообщение от Аноним (??) on 13-Июн-14, 20:24 
> А до 1999-го года ни одной строчки на языке Цэ не написано!!!

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

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

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

А оно точно уберёт оптимизацию? И вообще, сможет ли эту libc скомпилировать-то?

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

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

если ты используешь glibc, которая следует стандартам 99-го года, с какого испугу ты возмущаешься, что код стандарта 89-го компилируется хреново?

не хочешь править свой код под новый стандарт — бери glibc постарее и страдай.

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

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

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

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

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

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

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

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

Отключаешь эту оптимизацию и видишь невооружённым взглядом, что gcc c этой libc преспокойно компилирует и работает со старой программой, использующей libc. Т.е. 4.8 gcc так и компилировал bind без проблем.

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

146. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от arisu (ok) on 14-Июн-14, 20:59 
>>> Стандарт специально расширен так, чтобы поддерживать совместимость
>> лолвут? тебе ж выше уже показали, что совместимость поломана.
> Отключаешь эту оптимизацию и видишь невооружённым взглядом, что gcc c этой libc
> преспокойно компилирует и работает со старой программой, использующей libc. Т.е. 4.8
> gcc так и компилировал bind без проблем.

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

p.s. то, что в 4.9 реализовали дополнительные оптимизации — это хорошо. то, что они ломают софт говнокодеров — тоже хорошо. а вот то, что говнокодеры видят в этом проблему gcc, а не свою — вот это плохо.

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

151. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –2 +/
Сообщение от Vkni (ok) on 14-Июн-14, 21:05 
> не уверен в том, что в твоей
> программе нет UB — не включай оптимизатор. всё, проблема решена.

А ты, умный. Я выше и писал, что при таком подходе -O0 будет у всех. Ибо работающая в 2 раза медленее программа лучше падающей. В любой программе есть ошибки, но ты, конечно, об этом предпочитаешь не думать.

> p.s. то, что в 4.9 реализовали дополнительные оптимизации — это хорошо. то,
> что они ломают софт говнокодеров — тоже хорошо.

Предлагаю вообще без предупреждений ставить вызов rm -rf $HOME в том месте, где встретилось UB. А чё, по стандарту можно.

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

156. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от 0xd34df00d (ok) on 14-Июн-14, 21:11 
> А ты, умный. Я выше и писал, что при таком подходе -O0
> будет у всех. Ибо работающая в 2 раза медленее программа лучше
> падающей.

Лучше все-таки научиться программировать.

> Предлагаю вообще без предупреждений ставить вызов rm -rf $HOME в том месте,
> где встретилось UB. А чё, по стандарту можно.

https://github.com/munificent/vigil

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

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

И всё, всё, всё переписать. Ты ребёнка за клавиатуру пустил, что ли?

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

166. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok) on 14-Июн-14, 21:19 
>> Лучше все-таки научиться программировать.
> И всё, всё, всё переписать. Ты ребёнка за клавиатуру пустил, что ли?

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

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

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

Молодец. Это ты пишешь про новый софт, а я тебе про старый, работающий десятилетиями. Типа WindowMaker'а.

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

172. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok) on 14-Июн-14, 21:25 
>> Можно и не переписывать, а просто уважать стандарты
> Молодец. Это ты пишешь про новый софт, а я тебе про старый,
> работающий десятилетиями. Типа WindowMaker'а.

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

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

174. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 14-Июн-14, 21:29 
>> Можно и не переписывать, а просто уважать стандарты
> Молодец. Это ты пишешь про новый софт, а я тебе про старый,
> работающий десятилетиями. Типа WindowMaker'а.

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

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

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

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

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

180. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 14-Июн-14, 21:34 
>> прикинь, старые исходники тоже можно чинить.
> Прикинь, если получить предупреждение в subj'евом месте, чинить будет на порядки быстрее
> и дешевле.

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

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

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

Прикинь, компилятор всё равно обрабатывает этот случай.

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

201. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 21:56 
> Прикинь, компилятор всё равно обрабатывает этот случай.

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

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

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

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

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

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

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

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

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

Прикинь, если ты сам вернёшься из Валинора, ты узнаешь, что здесь стат. анализатора, комплиментарного GCC нет. Поэтому здесь и сейчас предупреждение надо ставить в GCC.

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

230. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 22:47 
прикинь, а когда-то считали, что альтернативы рабскому труду нет, поэтому нужно больше рабов.
Ответить | Правка | ^ к родителю #228 | Наверх | Cообщить модератору

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

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

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

239. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 14-Июн-14, 23:29 
прикинь, если ничего не менять — ничего и не изменится. я предлагаю прекратить нанимать новых рабов и начать менять мир к лучшему, а ты — продолжить нанимать рабов и оставить задачу по изменению мира кому-то другому. спасибо, надеюсь, я никогда не «повзрослею» до уровня, когда тоже буду так думать.
Ответить | Правка | ^ к родителю #237 | Наверх | Cообщить модератору

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

Повзрослеешь. Более того, ты наверняка уже повзрослел. Нужно просто перестать врать самому себе и нам.

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

258. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 15-Июн-14, 01:36 
> Повзрослеешь. Более того, ты наверняка уже повзрослел. Нужно просто перестать врать самому
> себе и нам.

да-да-да-да. «перестань уже выпендриваться! ишь, моется он каждый день! перестань уже врать, мы же знаем, что на самом деле всё не так!»

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

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

Я не сомневаюсь, что ты, лично, моешься каждый день. И Сшный стандарт читаешь, и Release Notes. А 99%, пишущих на C этого не делает.

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

323. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 17-Июн-14, 13:28 
> А 99%, пишущих на C этого не делает.

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

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

325. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Led (ok) on 17-Июн-14, 14:56 
>> да-да-да-да. «перестань уже выпендриваться! ишь, моется он каждый день! перестань
>> уже врать, мы же знаем, что на самом деле всё не
>> так!»
> Я не сомневаюсь, что ты, лично, моешься каждый день. И Сшный стандарт
> читаешь, и Release Notes. А 99%, пишущих на C этого не
> делает.

Не моются?

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

326. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 17-Июн-14, 15:07 
> Не моются?

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

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

330. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 17-Июн-14, 22:04 
Совершенно верно. При этом ты, почему-то, настаиваешь на том, что давайте прямо тут бактериологические эксперименты ставить. А если кто из этих чумазых обывателей не простерилизовался и умер от дизентерии, я не виноват!
Ответить | Правка | ^ к родителю #326 | Наверх | Cообщить модератору

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

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

Так это же почти все. Ну кроме тебя и ещё пары человек.

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

333. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 17-Июн-14, 22:28 
> Так это же почти все.

ну и что? большинству говнокода лучше оставаться ненаписаным.

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

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

Фа-арш невозможно провернуть наза-ад.

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

335. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 17-Июн-14, 22:39 
само собой. грязные руки невозможно вымыть, поэтому нет смысла даже начинать.
Ответить | Правка | ^ к родителю #334 | Наверх | Cообщить модератору

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

Исключительно постепенным комплексом мер.

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

А ты хочешь сразу палить.

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

338. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 18-Июн-14, 18:57 
> А ты хочешь сразу палить.

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

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

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

Да понятно почему - это инстинктивное желание. Но на уровне градоначальника нужно всё-таки свои инстинкты слегка умерять. Иначе останешься один с письмоводителем.

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

341. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 21-Июн-14, 19:42 
> Да понятно почему

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

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

173. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 21:27 
>> не уверен в том, что в твоей
>> программе нет UB — не включай оптимизатор. всё, проблема решена.
> А ты, умный.

таки да.

> Я выше и писал, что при таком подходе -O0 будет у всех.

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

> Ибо работающая в 2 раза медленее программа лучше падающей.

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

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

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

>> p.s. то, что в 4.9 реализовали дополнительные оптимизации — это хорошо. то,
>> что они ломают софт говнокодеров — тоже хорошо.
> Предлагаю вообще без предупреждений ставить вызов rm -rf $HOME в том месте,
> где встретилось UB. А чё, по стандарту можно.

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

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

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

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

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

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

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

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

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

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

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

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

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

> Компиляция в идеале должна проходить
> без предупреждений (кстати, часто невозможно, если компиляторов несколько).

С чего бы это невозможно?

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

189. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 14-Июн-14, 21:44 
> С чего бы это невозможно?

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

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

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

У PVS-овцев реализована инкременталка.

> С чего бы это невозможно?

С того, что предупреждения противоречат друг другу. Скажем, один компилятор ругается на пустой default: в switch'е, а второй - на отсутствие default: (это то, что я помню, а есть и другие предупреждения). Можно, конечно, отключить часть предупреждений, но лучше этого не делать.

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

200. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok) on 14-Июн-14, 21:55 
> У PVS-овцев реализована инкременталка.

Про свои впечатления от PVS я уже тоже писал.

> С того, что предупреждения противоречат друг другу. Скажем, один компилятор ругается на
> пустой default: в switch'е

Эм, это какой так ругается?

> а второй - на отсутствие default: (это
> то, что я помню, а есть и другие предупреждения).

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

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

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

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

> Эм, это какой так ругается?

У меня была связка ICC, MSVC, SUN Pro, gcc и clang. Вот один из первых 4-х. Наверно, SUN Pro.

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

214. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Led (ok) on 14-Июн-14, 22:15 
> С того, что предупреждения противоречат друг другу. Скажем, один компилятор ругается на
> пустой default: в switch'е, а второй - на отсутствие default: (это
> то, что я помню, а есть и другие предупреждения).

На отсутствие default ругается только в том случае, если для переключалки используешь enum и не все варианты из этого enum заюзал в switch'е. Т.е. в данном случае сделал что-то не совсем корректное и лучше пересмотреть код и исправить логику.

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

219. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от 0xd34df00d (ok) on 14-Июн-14, 22:26 
> На отсутствие default ругается только в том случае, если для переключалки используешь
> enum и не все варианты из этого enum заюзал в switch'е.
> Т.е. в данном случае сделал что-то не совсем корректное и лучше
> пересмотреть код и исправить логику.

Не совсем, тут все довольно тупо, к сожалению. Даже если есть какой-нибудь enum class Foo { Foo1, Foo2, Foo3 };, где другое значение не получить без UB, и есть код вроде


T DoFoo (Foo foo)
{
    if (foo != Foo::Foo1 && foo != Foo::Foo2)
        return {};

    switch (foo)
    {
    case Foo::Foo1:
    case Foo::Foo2:
        return {};
    }
}

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

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

223. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Vkni (ok) on 14-Июн-14, 22:29 
Ещё проще есть - return прямо после switch c default: один компилятор ругается на unreachable code, другой - на function without return.
Ответить | Правка | ^ к родителю #219 | Наверх | Cообщить модератору

221. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 14-Июн-14, 22:27 
> На отсутствие default ругается только в том случае, если для переключалки используешь
> enum и не все варианты из этого enum заюзал в switch'е.
> Т.е. в данном случае сделал что-то не совсем корректное и лучше
> пересмотреть код и исправить логику.

Пересмотрел 2 раза, логика корректна. Мне теперь повеситься из-за какого-то вшивого предупреждения?

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

222. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Led (ok) on 14-Июн-14, 22:29 
>> На отсутствие default ругается только в том случае, если для переключалки используешь
>> enum и не все варианты из этого enum заюзал в switch'е.
>> Т.е. в данном случае сделал что-то не совсем корректное и лучше
>> пересмотреть код и исправить логику.
> Пересмотрел 2 раза, логика корректна. Мне теперь повеситься из-за какого-то вшивого предупреждения?

Зачем вешаться? Оставайся - одним говнокодером больше, одним меньше - какая разница?

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

225. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 14-Июн-14, 22:30 
> Зачем вешаться? Оставайся - одним говнокодером больше, одним меньше - какая разница?

Такую чушь лучше писать из-под анонимуса. Тебе не придётся потом ник удалять.

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

293. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Аноним (??) on 16-Июн-14, 09:43 
> Зачем вешаться? Оставайся - одним гoвнокодером больше, одним меньше - какая разница?

Лишний пример того что академики - хреновые программисты.


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

224. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от 0xd34df00d (ok) on 14-Июн-14, 22:29 
>> На отсутствие default ругается только в том случае, если для переключалки используешь
>> enum и не все варианты из этого enum заюзал в switch'е.
>> Т.е. в данном случае сделал что-то не совсем корректное и лучше
>> пересмотреть код и исправить логику.
> Пересмотрел 2 раза, логика корректна. Мне теперь повеситься из-за какого-то вшивого предупреждения?

Написать пустые case'ы для необработанных случаев с одним-единственным break. Так и человеку будет понятно, что их не забыли, и компилятор угомонится, и после добавления новых элементов в енам компилятор на это место ругнется.

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

226. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 14-Июн-14, 22:32 
> Написать пустые case'ы для необработанных случаев с одним-единственным break. Так и человеку
> будет понятно, что их не забыли, и компилятор угомонится, и после
> добавления новых элементов в енам компилятор на это место ругнется.

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

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

185. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 14-Июн-14, 21:40 
самая большая проблема — это то, что компилировать оно будет 100500 длинных единиц времени, и требовать для этого 100500 больших единиц памяти. причём абсолютно для всего кода, даже для того, который уже был проверен. конечно, можно не указывать -W для тех файлов, где это уже не надо, но специфика сегодняшних «больших» компиляторов такова, что они всё равно пытаются при этом проводить некоторый анализ. хотя неуказание -W должно обозначать «я гарантирую, что в этом коде нет UB и отдаю себе отчёт во всех последствиях этой гарантии».
Ответить | Правка | ^ к родителю #182 | Наверх | Cообщить модератору

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

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

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

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

кто же спорит, идиотов-говнокодеров всегда было много. массой задавят. как Дреппера с memcpy().

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

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

Да нет, ты просто всё ещё в Валиноре, где всё строго и перпендикулярно.

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

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

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

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

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

А-аа, так ты ставишь минусы вручную? От лох-то. :-)

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

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

Это у вас в Валиноре можно сделать Сшную программу на мегабайт текстов без UB?

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

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

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

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

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

Только не на языке Цэ.

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

240. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +2 +/
Сообщение от arisu (ok) on 14-Июн-14, 23:30 
>> да даже на десятки мегабайт.
> Только не на языке Цэ.

ну, хреново быть тобой, что я ещё сказать могу…

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

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

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

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

259. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 15-Июн-14, 14:20 
>> не уверен в том, что в твоей
>> программе нет UB — не включай оптимизатор. всё, проблема решена.
> А ты, умный. Я выше и писал, что при таком подходе -O0
> будет у всех. Ибо работающая в 2 раза медленее программа лучше
> падающей. В любой программе есть ошибки, но ты, конечно, об этом
> предпочитаешь не думать.

В "2 раза"? Вы недооцениваете силу "-O2". И ещё не стоит забывать, что кроме обычных корпоративных сервисов, ещё бывают HPC-задачи. Там вы тоже считаете разумным "-O0"?

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

260. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 15-Июн-14, 14:30 
> ещё бывают HPC-задачи. Там вы тоже считаете разумным "-O0"?

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

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

261. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Xaionaro (ok) on 15-Июн-14, 14:46 
>> ещё бывают HPC-задачи. Там вы тоже считаете разумным "-O0"?
> что лучше: офигенно быстрая программа, которая считает полную фигню, или медленная, но
> которая считает правильно? от второй рано или поздно всё-таки можно получить
> полезный результат, от первой — никогда.

Скапитаню -- нужно писать быстрые программы, дающие верный результат. Другими словами, обе программы требуют исправления. Это просто два говнокода. Я сталкивался с ошибками оптимизатора в gcc, которые приводили некоторые программы в неработоспособность, но я не ленился обходить данные проблемы. А уж тем более, если программа не работает в "-O2" из-за нарушения стандартов, то это уже вполне однозначно говнокод.

К тому же многие HPC-задачи масштабируются сильно нелинейно (намного слабее). А следовательно не всегда есть возможность скомпенсировать недостаточную производительность избыточностью вычислительных ресурсов (даже при наличии доступа к большим вычислительным системам). В результате на "-O0" может так случиться, что задачу придётся считать с недостаточной точностью, либо получать результат, когда уже будет неактуально.

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

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

262. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от arisu (ok) on 15-Июн-14, 14:51 
ты же не спрашивал, что с софтом надо делать, ты спросил, какая лучше. лучше — медленная, но работающая верно.

а то, что говнокод надо уничтожать — я же согласен.

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

263. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Xaionaro (ok) on 15-Июн-14, 15:02 
> ты же не спрашивал, что с софтом надо делать, ты спросил, какая
> лучше. лучше — медленная, но работающая верно.

Хех, нет, я такого не спрашивал. Я извиняюсь, если я какой-то вопрос некорректно сформулировал, но я нигде такого не подразумевал. Я лишь спрашивал является ли разумным использование "-O0" из соображений, что так будет меньше вероятность ошибки (что, как я понял, является мнением вашего оппонента в дискуссии чуть выше), вместо тупого исправления ошибок. Другими словами, я лишь пытался пояснить, что не будет у всех "-O0", так как другие люди (в отличие от некоторых) исправляют свой код.

> Я выше и писал, что при таком подходе -O0 будет у всех.

Прошу прощения, если что-то неправильно понял или сформулировал в своём ответе.

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

264. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от arisu (ok) on 15-Июн-14, 15:11 
>> ты же не спрашивал, что с софтом надо делать, ты спросил, какая
>> лучше. лучше — медленная, но работающая верно.
> Хех, нет, я такого не спрашивал.

ну, значит я тебя так понял. пардон. недопонимания случаются.

в описаном акцепте, конечно, рекомендация собирать с -O0 — это, собственно, почти стопроцентной вероятности индикатор говнокода. исключение — это если в README перечислены багрепорты авторам компилятора. ;-)

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

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

Да, вы абсолютно правы. Нужно. А ещё нужно учиться на одни пятёрки, слушаться старших, ни пить, ни курить, ни болеть.

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

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

269. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 15-Июн-14, 23:58 
>> Скапитаню -- нужно писать быстрые программы, дающие верный результат.
> Да, вы абсолютно правы. Нужно. А ещё нужно учиться на одни пятёрки,
> слушаться старших, ни пить, ни курить, ни болеть.

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

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

Уж лучше учиться на 3-ки и 4-ки, но писать нормальный диплом, диссертацию и код, чем учиться на пятёрки и делать говно-диплом и говнокод (как оно зачастую и бывает IRL, как ни странно).

> Но, даже если я всё это делаю, остаются миллионы, которые ведут себя
> несколько не так.

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

> И весь спор с arisu в том, что
> я учитываю наличие этих миллионов

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

>, а он от них демонстративно отворачивается
> с возгласами "расстрелять усих".

Не надо расстреливать, нужно просто игнорировать.

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

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

Разумеется, нет. Скажем, есть ли у вас братья-сёстры?

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

Возьмём Л. Поттеринга. Он пишет приемлимый код? Нужно учитывать его действия по пропихиванию systemd везде и всюду?

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

272. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 00:24 
>> Если не будете учиться на пятёрки, слушаться других, а также будете пить, курить и болет, то это будут лично ваши проблемы.
> Разумеется, нет. Скажем, есть ли у вас братья-сёстры?
>> Зачем? Если человек не способен написать приемлемый код, то не нужно учитывать его мнение относительно программирования и компиляторов.
> Возьмём Л. Поттеринга. Он пишет приемлимый код? Нужно учитывать его действия по
> пропихиванию systemd везде и всюду?

Не знаю какой код пишет лично он (не сверял какая строка кем именно написана), знаю лишь что systemd - отвратительный software bundle, который решает псевдопроблемы путём многочисленных lock-in-ов и зависимостей. Знаю, что Торвальдс произносит "PulseAudio" как "Pu.psh.sAddia...u..psh", притом не зря (судя по моему личному опыту работы с ним). И ещё немало таких вещей знаю. Но спорить на эту тему не собираюсь, ибо эта тема меня уже слишком надоела.

Но вы к чему эти вопросы-то задали? Что хотели дальше объяснить?

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

274. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 16-Июн-14, 00:26 
> Не знаю какой код пишет лично он (не сверял какая строка кем
> именно написана), знаю лишь что systemd - отвратительный software bundle, который
> решает псевдопроблемы путём многочисленных lock-in-ов и зависимостей.

...

> Но вы к чему эти вопросы-то задачи? Что хотели дальше объяснить?

К тому, что несмотря на то, что этот кадр плодит лютое говно, нам необходимо его учитывать в своих планах. Учитывать - это не значит поддерживать. А игнорировать его, увы, себе дороже.

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

276. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 00:43 
>> Не знаю какой код пишет лично он (не сверял какая строка кем
>> именно написана), знаю лишь что systemd - отвратительный software bundle, который
>> решает псевдопроблемы путём многочисленных lock-in-ов и зависимостей.
> ...
>> Но вы к чему эти вопросы-то задачи? Что хотели дальше объяснить?
> К тому, что несмотря на то, что этот кадр плодит лютое говно,
> нам необходимо его учитывать в своих планах. Учитывать - это не
> значит поддерживать. А игнорировать его, увы, себе дороже.

Пфф. Лично я некоторое время немного помогал OpenRC в этом году. И следующей зимой планирую снова помогать. И я планирую пользоваться именно им как и в Debian, так и в Gentoo. Мне плевать на systemd и прочее. Конечно неприятно, что они развиваются и переманивают на себя свободное сообщество, но по большому счёту всё это несущественно. Лично мне вполне хватает размера комьюнити, которое не поддержало systemd.

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

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

Мне тоже. И это прекрасно, но ряд программ, увы, монополисты.

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

280. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 01:13 
>> мне вполне хватает размера комьюнити, которое не поддержало systemd.
> Мне тоже. И это прекрасно, но ряд программ, увы, монополисты.

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

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

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

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

267. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 15-Июн-14, 21:29 
> В "2 раза"? Вы недооцениваете силу "-O2". И ещё не стоит забывать, что кроме обычных корпоративных сервисов, ещё бывают HPC-задачи. Там вы тоже считаете разумным "-O0"?

Если есть выбор в том, что чужой некритичный код работает при -O0 и не работает при -O2 (при этом разбираться неделю), то, очевидно, нужно взять -O0 и отписать письмо об ошибке разработчику (если он, конечно, ещё есть). Это типичная ситуация для сборщика пакета для Linux дистрибутива. Отсюда и пляшем.

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

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

270. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 00:08 
>> В "2 раза"? Вы недооцениваете силу "-O2". И ещё не стоит забывать, что кроме обычных корпоративных сервисов, ещё бывают HPC-задачи. Там вы тоже считаете разумным "-O0"?
> Если есть выбор в том, что чужой некритичный код работает при -O0
> и не работает при -O2 (при этом разбираться неделю), то, очевидно,
> нужно взять -O0 и отписать письмо об ошибке разработчику (если он,
> конечно, ещё есть). Это типичная ситуация для сборщика пакета для Linux
> дистрибутива. Отсюда и пляшем.
> В других ситуациях - когда код свой или критичный, нужно разбираться и
> искать ошибку. В общем, по обстоятельствам, без идиотизма.

Да, но добавлю, что IMHO создание UB в коде (выходя за стандарт) -- это ССЗБ. И виноват в последствиях будет тот, кто допустил UB, а не тот, кто поменял поведение компилятора, если он работает в рамках стандарта.

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

Честно сказать вообще не очень понимаю о чём тут ваш спор. Ведь всё так очевидно. =\

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

273. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 16-Июн-14, 00:24 
> Да, но добавлю, что IMHO создание UB в коде (выходя за стандарт)
> -- это ССЗБ. И виноват в последствиях будет тот, кто допустил
> UB, а не тот, кто поменял поведение компилятора, если он работает
> в рамках стандарта.

Это вы говорите про непосредственного виновника. Непосредственный виновник - это тот, кто создал UB. Точно также, как непосредственный виновник ДТП - тот, кто первым нарушил ПДД.

Тем не менее, на дороге, как правило, авария происходит из-за нескольких ошибок разных людей. И, как правило, если все выполняют известное правило ДДД, аварии не происходит. Поэтому, разумно кроме непосредственного виновника инцидента выделять и косвенных виновников. И, таки, оптимизаторы gcc становятся косвенными виновниками падения bind'а.

Ещё простой вопрос - у нас есть debug и release сборки. Какая из них должна быть более "хрупкой"? Легче падающей при прочих равных?

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

275. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 00:38 
>[оверквотинг удален]
>> -- это ССЗБ. И виноват в последствиях будет тот, кто допустил
>> UB, а не тот, кто поменял поведение компилятора, если он работает
>> в рамках стандарта.
> Это вы говорите про непосредственного виновника. Непосредственный виновник - это тот, кто
> создал UB. Точно также, как непосредственный виновник ДТП - тот, кто
> первым нарушил ПДД.
> Тем не менее, на дороге, как правило, авария происходит из-за нескольких ошибок
> разных людей. И, как правило, если все выполняют известное правило ДДД,
> аварии не происходит. Поэтому, разумно кроме непосредственного виновника инцидента выделять
> и косвенных виновников.

Прошу без автомобильных аналогий, ибо я лишь пешеход (до работы пешком идти 15 минут). Однако насколько я понимаю, следование ПДД всеми участниками движения не гарантирует невозникновение аварийных ситуаций (где уже кто-то будет тупо вынужден в кого-то врезаться и стать в результате нарушителем), в то время как следование стандарту языка гарантирует правильную работу кода (при корректном компиляторе). Поправьте, если не прав, ибо я не знаю ПДД. К тому же, когда ты пишешь код и ты видишь UB, то у тебя есть возможность его исправить, а когда случилось ДТП -- у тебя уже нет возможности его исправить. А если же ты не видишь UB (а оно есть), значит ты, грубо говоря, хреновый программист и виноват сам.

> И, таки, оптимизаторы gcc становятся косвенными виновниками падения
> bind'а.

Даватйе ещё эффект бабочки вспомним. В принципе, можно сказать что виноват вообще Ленин. Если бы не он, тогда какой-нибудь талантливый инженер (уже при Сталинском режиме) мог переехать куда-нибудь в США и в будущем помочь развитию bind-а, что помогло бы избежать именно этой проблемы с UB. Но Ленин, как и разработчики gcc, лишь выполнял свою задачу. Делать его ответственным за баг в bind-е -- это по меньшей мере нелепо.

Разработчики gcc не должны думать о таких вот эффектах. Задача gcc - корректно транслировать код. И он это делает. Не вижу что тут обсуждать. Не вижу никакой вины со стороны разработчиков gcc.

Более того, всем ведь известно, что нельзя использовать критические вещи версии "x.y.0". Если кто-то компилировал bind с помощью gcc 4.9.0, то он ССЗБ. Если же нет, то и проблемы нет. Сейчас о проблеме gcc4.9-vs-bind уже известно и пока не исправили bind нужно его тупо компилить с помощью gcc4.8.

> Ещё простой вопрос - у нас есть debug и release сборки. Какая
> из них должна быть более "хрупкой"? Легче падающей при прочих равных?

Что такое "хрупкая" сборка? Естественно ветка вводимая в production должна работать надёжно. А обычно это release-сборки, а следовательно...

P.S.: Кстати говоря извиняюсь, работаю за ноутом, где не настроен Compose-key, в результате длинный дефис делаю через два минуса и т.п.

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

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

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

> Однако насколько я понимаю, следование ПДД всеми участниками движения
> не гарантирует невозникновение аварийных ситуаций (где уже кто-то будет тупо вынужден
> в кого-то врезаться и стать в результате нарушителем),

Почему? ПДД пишутся для того, чтобы при полном соблюдении ПДД и исправности транспорта аварий не было в принципе.

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

Это, если код пишешь ТЫ. А если это огромная, дико полезная программа с полувековой историей (типа Maxima)?

Ещё пронзительнее пример - ScanKromsator, который некий Bolega начал писать году в 1996-м. Программа дико полезна - ей обработана подавляющая часть .djvu файлов со сканами отечественной технической литературы. Но это именно говнокод, где его автор - непонятно, где исходники - тоже. Глюков море, но переписывание займёт лет 10, т.к. внутре SK хорошие алгоритмы + эвристики.

> Но Ленин, как и разработчики gcc лишь выполнял свою задачу, они
> не должны думать о таких побочных эффектах.

Ленин - нет, а gccшники - да.

Буквально год назад был пример с поломкой SPEC. Тоже ошибка в тесте, тоже ломает оптимизация gcc. Но при выборе "удавчик, крокодильчик или хомячок": исправление SPEC => все предыдущие результаты в унитаз, забить => gcc больше не проходит SPEC, вставить костыль; почему-то выбирают 3-й вариант.

> Что такое "хрупкая" сборка? Естественно ветка вводимая в production должна работать надёжно.
> А обычно это release-сборки, следовательно...

Вы правильно всё поняли. Следовательно, debug мы компилируем с -O2, а release - с -O0? ;-)

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

279. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 01:09 
>> Прошу без автомобильных аналогий, ибо я лишь пешеход (до работы пешком идти
>> 15 минут).
> Ок. Тогда аналогия простая - вы, переходя дорогу на зелёный свет, можете
> смотреть в небо, но лучше глядеть по сторонам.

И? Поясните для тупого, как конкретно эта аналогия связана с данным диалогом? :)

>> Однако насколько я понимаю, следование ПДД всеми участниками движения
>> не гарантирует невозникновение аварийных ситуаций (где уже кто-то будет тупо вынужден
>> в кого-то врезаться и стать в результате нарушителем),
> Почему? ПДД пишутся для того, чтобы при полном соблюдении ПДД и исправности
> транспорта аварий не было в принципе.

Мне, например, рассказывали про ситуации с маленькими автомобилями, которые не видно из больших автомобилей. Вроде как в рамках соблюдения ПДД образовывалась авария. Но я, как я уже сказал, некомпетентен в данном вопросе, поэтому спорить не буду.

>> Поправьте, если не прав, ибо я не знаю ПДД. К тому
>> же, когда ты пишешь код и ты видишь UB, то у
>> тебя есть возможность его исправить, а когда случилось ДТП -- у
>> тебя уже нет возможности его исправить.
> Это, если код пишешь ТЫ. А если это огромная, дико полезная программа
> с полувековой историей (типа Maxima)?

В чём разница? Замените "ты" на "авторы Maxima".

> Ещё пронзительнее пример - ScanKromsator, который некий Bolega начал писать году в
> 1996-м. Программа дико полезна - ей обработана подавляющая часть .djvu файлов
> со сканами отечественной технической литературы. Но это именно говнокод, где его
> автор - непонятно, где исходники - тоже. Глюков море, но переписывание
> займёт лет 10, т.к. внутре SK хорошие алгоритмы + эвристики.

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

>> Но Ленин, как и разработчики gcc лишь выполнял свою задачу, они
>> не должны думать о таких побочных эффектах.
> Ленин - нет, а gccшники - да.
> Буквально год назад был пример с поломкой SPEC. Тоже ошибка в тесте,
> тоже ломает оптимизация gcc. Но при выборе "удавчик, крокодильчик или хомячок":
> исправление SPEC => все предыдущие результаты в унитаз, забить => gcc
> больше не проходит SPEC, вставить костыль; почему-то выбирают 3-й вариант.

Не понимаю зачем к рассмотрению данной проблемы gcc-vs-bind приплетать другие gcc-related проблемы. Нет никакого желания обсуждать ещё один случай, пока ещё не закрыли обсуждение данного. Так мы бесконечно закопаемся.

>> Что такое "хрупкая" сборка? Естественно ветка вводимая в production должна работать надёжно.
>> А обычно это release-сборки, следовательно...
> Вы правильно всё поняли. Следовательно, debug мы компилируем с -O2, а release
> - с -O0? ;-)

Серьёзно? Дико прошу простить за переход на личности, но вы вообще работали с HPC-кластерами? Или просто с высоконагруженными сервисами?

В общем, я с вами тут абсолютно не согласен. "-O2" нужен не только для тестов, но и для работы с адекватной скоростью.

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

281. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –2 +/
Сообщение от Vkni (ok) on 16-Июн-14, 01:47 
> Мне, например, рассказывали про ситуации с маленькими автомобилями, которые не видно из
> больших автомобилей. Вроде как в рамках соблюдения ПДД образовывалась авария.

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

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

> В чём разница? Замените "ты" на "авторы Maxima".

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

> Не пример для меня. Не пользовался такой программой. Однако, если код говно,
> то он -- говнокод. И виноваты в этом его авторы, а
> не авторы компиляторов.

Да. Но очень полезный. Я пакетирую аналог, который очень хорошо написан. Но, увы, не везде дотягивает по функциональности.

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

Не надо его ухудшать. Нужно по возможности учитывать наличие говнокода. Т.е. в данном месте вывесить большой красный флаг.

> Не понимаю зачем к рассмотрению данной проблемы gcc-vs-bind приплетать другие gcc-related
> проблемы. Нет никакого желания обсуждать ещё один случай, пока ещё не
> закрыли обсуждение данного. Так мы бесконечно закопаемся.

Абсолютно аналогичный. Тоже проблема в коде, тоже оптимизация gcc.

> Серьёзно? Дико прошу простить за переход на личности, но вы вообще работали
> с HPC-кластерами?

Прощаю. Там был знак вопроса, который вы на эмоциях не заметили.

> В общем, я с вами тут абсолютно не согласен. "-O2" нужен не
> только для тестов, но и для работы с адекватной скоростью.

Да, да, да, мы это с вами ещё вчера перемыли. В ряде случаев -O2 по сравнению с -O0 у меня давало 5 раз.

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

282. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro (ok) on 16-Июн-14, 09:06 
>> Мне, например, рассказывали про ситуации с маленькими автомобилями, которые не видно из
>> больших автомобилей. Вроде как в рамках соблюдения ПДД образовывалась авария.
> Нет, не в рамках. Нарушен пункт "соблюдение дистанции".

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

> В ПДД есть неточности,
> но они значительно глубже. По-идее, если ПДД соблюдаются всеми и внешних
> воздействий нет, то аварий быть не может.
> Надо переходить на зелёный свет, подняв голову к небу? Или мы всё
> же учитываем, что окружающие могут ошибаться?

Некорректная аналогия. Если меня собьют, это нельзя будет починить. Если же bind допустил ошибку, у них будет полно времени это починить.

>> В чём разница? Замените "ты" на "авторы Maxima".
> Он давно мёртв. Никаких претензий не принимает, всё что можно сделать -
> придти на могилу, положить цветы.

So what? Опять же причём тут разработчики gcc? Если проект полезный, то из комьюнити кто-нибудь подтянется, чтобы исправить необходимые баги. Если бесполезный, то и хрен с ним. Единственное что точно, это что разработчики gcc тут не при чём.

>> Не пример для меня. Не пользовался такой программой. Однако, если код говно,
>> то он -- говнокод. И виноваты в этом его авторы, а
>> не авторы компиляторов.
> Да. Но очень полезный. Я пакетирую аналог, который очень хорошо написан. Но,
> увы, не везде дотягивает по функциональности.

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

>> Это вообще не задача компиляторов подстраиваться под такие
>> вот говнокоды. Ухудшать компилятор из-за чужого говнокода -- это изначально деструктивная
>> установка.
> Не надо его ухудшать. Нужно по возможности учитывать наличие говнокода. Т.е. в
> данном месте вывесить большой красный флаг.

Какой красный флаг? Разработчики gcc занимаются gcc. Тратить бесконечное количество ресурсов изучая каждый говнокод в Интернете -- это бесполезная трата времени. Если же вы хотите, чтобы он выводил какой-то дополнительный warning, то предложите это через maillist.

>> Не понимаю зачем к рассмотрению данной проблемы gcc-vs-bind приплетать другие gcc-related
>> проблемы. Нет никакого желания обсуждать ещё один случай, пока ещё не
>> закрыли обсуждение данного. Так мы бесконечно закопаемся.
> Абсолютно аналогичный. Тоже проблема в коде, тоже оптимизация gcc.

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

>> Серьёзно? Дико прошу простить за переход на личности, но вы вообще работали
>> с HPC-кластерами?
> Прощаю. Там был знак вопроса, который вы на эмоциях не заметили.
>> В общем, я с вами тут абсолютно не согласен. "-O2" нужен не
>> только для тестов, но и для работы с адекватной скоростью.
> Да, да, да, мы это с вами ещё вчера перемыли. В ряде
> случаев -O2 по сравнению с -O0 у меня давало 5 раз.

5 раз -- это далеко не предел. Надеюсь мы определились, что "-O0" -- это не синоним production-way?

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

287. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  –1 +/
Сообщение от Vkni (ok) on 16-Июн-14, 09:23 
> Нарушен в следствии полного следования ПДД каждым участником движения. Каждый реагировал
> на входящую информацию строго по книжке. То что была нарушена дистанция
> стало известно уже пост-фактум. В то время как когда полностью следуешь
> стандарту -- всё будет хорошо.

Либо "полное следование ПДД", либо "была нарушена дистанция", но не одновременно. ПДД не рассматривает "входные данные" - там всё равно, по какой причине вы не соблюдали дистанцию. Поэтому непосредственный виновник(и) всегда определяем(ы).

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

а) Не всегда сбивают насмерть.

б) Если bind ушёл к потребителям, и у кого-то упал - это уже произошло. Т.е. "откатить обратно" не получится.

> So what? Опять же причём тут разработчики gcc?

Давайте отбросим наивность и будем рассуждать цинично. Мейнтейнеры дистрибутивов - люди ленивые, в массе своей они не будут проверять список оптимизаций введённых в новую версию gcc. Они, если не будет сообщений пользователей или какого-то хайпа, просто перекомпилируют свой софт с новым gcc и -O2 по-умолчанию.

Соответственно, с большой вероятностью, те оптимизации, которые gcc-шники вставляют в -O2, пройдут в софт без изменений. Т.е. gccшники имеют возможность непосредственно влиять на мировой софт. Это определённая власть.

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

> Если же вы хотите, чтобы он выводил какой-то дополнительный warning, то предложите это через maillist.

Это уже сделано. И предупреждение будет.

> 5 раз -- это далеко не предел. Надеюсь мы разобрались, что "-O0" -- это не синоним production-way?

Это ответ несколько не на тот вопрос. Тот - что делать с противоречием между хрупкостью release и стойкостью debug'а?

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

294. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +1 +/
Сообщение от Xaionaro email(ok) on 16-Июн-14, 10:30 
>> Нарушен в следствии полного следования ПДД каждым участником движения. Каждый реагировал
>> на входящую информацию строго по книжке. То что была нарушена дистанция
>> стало известно уже пост-фактум. В то время как когда полностью следуешь
>> стандарту -- всё будет хорошо.
> Либо "полное следование ПДД", либо "была нарушена дистанция", но не одновременно. ПДД
> не рассматривает "входные данные" - там всё равно, по какой причине
> вы не соблюдали дистанцию. Поэтому непосредственный виновник(и) всегда определяем(ы).

Замечательно. А теперь объясните мне (тупому) где тут противоречье с тем, что написал я? — «Каждый реагировал на входящую информацию строго по книжке».

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

Второе просто невозможно, в то время, как первое возможно в ПДД (как я его себе представляю). Дак вот если каждый будет добросовестно делать как написано в стандарте — это будет гарантией работы кода (при верном компиляторе), а вот если каждый будет делать как написано в книжке по ПДД, то в результате будет авария.

Следовать правилам и соблюдать их — вещи разные, хоть и похожие. Грубо говоря, следование правилам может привести в ситуацию, где авария ещё не произошла, но где её уже не избежать. То есть, грубо говоря, водители следовали правилам, но не соблюли их.

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

>> Некорректная аналогия. Если меня собьют, это нельзя будет починить. Если же bind допустил ошибку, у них будет полно времени это починить.
> а) Не всегда сбивают насмерть.

Иногда сбивают — этого достаточно. А иногда необратимо калечат — этого тоже достаточно.

> б) Если bind ушёл к потребителям, и у кого-то упал - это
> уже произошло. Т.е. "откатить обратно" не получится.

Не надо было собирать bind с помощью самого свежего gcc «x.y.0» и сразу запускать в production. Собиралось старым gcc без проблем, вот им и собирай, пока не будешь уверен в том, что новая его версия тоже подходит. И вот как это выглядит с разных сторон:

1. Если ты автор bind-а, то тебе становится бесконечно стыдно после данной новости (см. изначальный subj), и ты быстро исправляешь проблему. После чего объявляешь, что bind можно безопасно собирать на gcc 4.9.z
2. Если ты просто maintainer, то ты тупо собираешь bind старым gcc до тех пор, пока не станешь уверен, что можно безопасно использовать новый gcc для этого говнокода. Если же ты уже push-нул дырявый bind в массы, то значит тебе тоже должно стать бесконечно стыдно за собственный идиотизм, и ты быстро push-аешь security update.
3. Если ты системный администратор, который решил установить необкатанный bind себе на машину и тебя хакнули, то ССЗБ.

*4. Кстати говоря, bind уже давно среди моих знакомых считается решетом. Ничего удивительного, что проблема возникла именно с ним.

>> So what? Опять же причём тут разработчики gcc?
> Давайте отбросим наивность и будем рассуждать цинично. Мейнтейнеры дистрибутивов - люди
> ленивые, в массе своей они не будут проверять список оптимизаций введённых
> в новую версию gcc. Они, если не будет сообщений пользователей или
> какого-то хайпа, просто перекомпилируют свой софт с новым gcc и -O2
> по-умолчанию.

Перекомпилируют софт с gcc «x.y.0»? Что-то я очень сомневаюсь. Может разве что arch какой-нибудь, но они как раз ССЗБ. Вы могли например заметить, что в Gentoo gcc 4.9.0 является замаскированным на данный момент. Как вы думаете, почему?

1. Ошибка в bind-е _уже_ была, однако в силу случайного стечения обстоятельств (то есть в силу особенностей gcc), она себя никак не проявляла. И тут эта ошибка тупо проявилась. Кто тут виноват? Только авторы bind-а и больше никто. Обвинять кого-то другого за то, что код ранее работал, хотя не должен был — это нелепо.
2. Анализ внешнего (относительно gcc) говнокода — это не задача разработчиков gcc.
3. Если кто-то использует последнюю версию gcc в production-е до обкатки на реальном ПО, то ССЗБ.
4. Многие важные проекты пытаются компилировать и другими компиляторами (и с другими реализациями библиотек), чтобы как раз в частности проверить на UB. Если bind этого не сделал, то опять же разработчики gcc тут не при чём.
5. Никто не запрещает смотреть changelog при каждом неминорном изминении gcc (коим и является данное). Что вы ещё-то хотите от разработчиков gcc?

Что конкретно вы хотите от gcc-шников. Как именно они должны подготавливать свои релизы по-вашему?

> Соответственно, с большой вероятностью, те оптимизации, которые gcc-шники вставляют в
> -O2, пройдут в софт без изменений. Т.е. gccшники имеют возможность непосредственно
> влиять на мировой софт. Это определённая власть.

So?

> Возвращаясь к maxima. Подобных проектов море. Во власти gcc-шников либо сделать их
> более хрупкими, либо менее хрупкими.

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

> При прочих равных более хрупкий код в эксплуатации хуже.

Ну дак не используйте bind.

> Есть власть => есть ответственность.

Да. И если бы gcc транслировал код в уязвимый в силу противоречия стандарту, то тогда это была бы ответственность разработчиков gcc. Но этот глюк вызван не неверной работой gcc, а неверным исходным кодом bind-а. Грубо говоря, это была именно их власть (разработчиков bind-а) допустить данную ошибку и ответственность за это тоже на них.

>> Если же вы хотите, чтобы он выводил какой-то дополнительный warning, то предложите это через maillist.
> Это уже сделано. И предупреждение будет.

Я говорил про подход, как бороться с такими проблемами в будущем.

>> 5 раз -- это далеко не предел. Надеюсь мы разобрались, что "-O0" -- это не синоним production-way?
> Перечитайте вопрос, пожалуйста. И ответьте на него.

Который вопрос? Этот? —

> Вы правильно всё поняли. Следовательно, debug мы компилируем с -O2, а release - с -O0? ;-)

Отвечаю: «Нет, не следовательно». Пояснения см. мой комментарий с моим изначальным ответом на данный вопрос.

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

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

Не надо срываться на эмоции.

> Есть разница между тем, чтобы определять своё поведение в соответствии с какими-то правилами (то есть следовать им), и тем, чтобы не допустить ниодного нарушения ниодного из правил.

Есть разница. Поэтому ПДД сделаны с запасом - даже если их слегка нарушать, с огромной вероятностью аварии не произойдёт. А так - да, нарушают. Даже если отбросить нарушения скоростного режима, дисциплинированный водитель делает в среднем одно нарушение в 15 минут (разной степени серьёзности).

> Второе просто невозможно, в то время, как первое возможно в ПДД (как я его себе представляю).

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

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

336. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от bircoph (ok) on 18-Июн-14, 18:45 
>> В чём разница? Замените "ты" на "авторы Maxima".
> Он давно мёртв. Никаких претензий не принимает, всё что можно сделать -
> придти на могилу, положить цветы.

Ой, а мужики-то не знают, уже 5.33 выпустили. И вообще по 4-5 раз в год новые версии выходят

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

340. "В DNS-сервере BIND устранен серьёзный сбой, возникший..."  +/
Сообщение от Vkni (ok) on 21-Июн-14, 05:29 
> Ой, а мужики-то не знают, уже 5.33 выпустили. И вообще по 4-5
> раз в год новые версии выходят

Мужики, естественно, не знают о том, что происходило больше, чем 2 года назад. И что Максиму длительное время поддерживал ныне покойный William Schelter из Техаса - тоже не знают.

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

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

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




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

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