1.1, АнониМ (ok), 09:03, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>удаления лишних операций сравнения с указателями NULL,
>при использовании которого из-за удаления из кода важных для работы проверок в BIND начинают проявляться непредсказуемые проблемы в работе.
я чего-то не понял - это баг гцц ? Или как лишние сравнения, могут одновременно важными?
| |
|
2.115, arisu (ok), 13:30, 14/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> я чего-то не понял - это баг гцц ? Или как лишние
> сравнения, могут одновременно важными?
очень просто: стандарты не читай @ на си пиляй!
стандарт, в котором есть подобные UB, конечно, куча дурнопахнущего гуано, а не стандарт, но раз уж выбрали такой язык — соблюдайте.
если компилятор удалил проверку и «всё пропало, шеф, всё пропало!» — то это 99.(9)% вероятность не ошибки в компиляторе, а того, что на вход компилятору подали некорректный говнокод, полагающийся на то, что UB совсем не UB.
| |
|
1.2, Аноним (-), 09:16, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +10 +/– |
> режим удаления лишних операций сравнения с указателями NULL
Какая чудесная оптимизация.
| |
|
|
3.45, Аноним (-), 16:54, 13/06/2014 [^] [^^] [^^^] [ответить]
| +9 +/– |
Это нормальная оптимизация. И, как правильно сказали выше, ломается на ней именно [censored]код.
| |
|
4.132, YetAnotherOnanym (ok), 16:37, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
Если кода не очень много - чтобы его мог вычитать и вылизать один человек (или несколько достаточно близко контактирующих) - тогда да. А когда контрибутит большое сообщество, плюс либы от третьей стороны - прилететь может всё что угодно, поэтому проверять данные надо.
Переформулирую - код, который ты не вычитал сам, считай априори [censored]кодом, и допускай, что на выходе от него можно получить значение NULL там, где оно не может быть NULL.
| |
|
5.265, Аноним (-), 16:07, 15/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
man "code review"
Во всех крупных свободных проектах. Если вы не применяете — никто вам не виноват.
| |
|
6.321, YetAnotherOnanym (ok), 11:54, 17/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ладно, предположим, проверил я код всех сторонних либ, которые юзает мой проект. Нашёл "недоработку". Отправил багрепорт, может быть даже с патчем. А тот проект пилит один анонимус в своё свободное время, и реакции на багрепорт - никакой. Если я знаю, что везде, где мой софт будет использоваться, стоит эта либа с непофиксенным багом, из-за которого может прилететь NULL где не надо, что делать? Форкать либу и пропихивать свой форк в дистрибы? Включать в тарбол её исходники со своим фиксом? Я всё-таки выберу поставить в нескольких местах проверку на NULL, пусть это и не согласуется с чьими-то представлениями о красоте.
| |
|
7.324, arisu (ok), 13:29, 17/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
для начала — прекратить использовать неподдерживаемые библиотеки. как раз потому, что в них никто не чинит баги.
впрочем, говнокодеры о таких нюансах никогда не думают, хватают первое попавшееся и радуются. недолго, правда.
| |
|
|
|
|
|
2.36, 0xd34df00d (??), 15:43, 13/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> режим удаления лишних операций сравнения с указателями NULL
> Какая чудесная оптимизация.
Нормальная оптимизация.
Foo *foo = ...
foo->bar;
if (foo) ...;
Вот последнюю проверку компилятор вполне имеет право удалить, ибо foo не может быть нулём, тогда foo->bar было бы обращением по нулевому указателю, а это UB, и компилятор волен обрабатывать как хочет. Делать вид, что обращений по нулевому указателю не бывает, например, и, следовательно, foo всегда не ноль.
| |
|
3.46, Vkni (ok), 16:59, 13/06/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Вот последнюю проверку компилятор вполне имеет право удалить
В мире эльфов - да. Всё-таки, вера в то, что компилятору не придётся обрабатывать код с ошибками, в высшей степени наивна.
| |
|
4.53, 0xd34df00d (??), 17:21, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> В мире эльфов - да. Всё-таки, вера в то, что компилятору не
> придётся обрабатывать код с ошибками, в высшей степени наивна.
Есть баланс между толерантностью к ошибкам и качеством оптимизации. Включаешь оптимизатор — будь готов к тому, что кривой код он не простит.
Ну и статический анализ специально для этого придумали. clang'овский static-analyzer такие вещи отлично находит.
| |
|
5.58, Vkni (ok), 18:53, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Есть баланс между толерантностью к ошибкам и качеством оптимизации. Включаешь оптимизатор — будь готов к тому, что кривой код он не простит.
Ну так -O3 уже никто и не включает. Или пацаны хотят добиться, что и -O2 включать не будут?
Баланс, разумеется есть, но gcc регулярно шагает за баланс в сторону оптимизации. Нижеприведённый код qsort в стандарт был введён в 1999 году, а на C писали и до этого года. Т.е. оптимизация ярковыраженно ломает нормальный код, написанный 20 лет назад.
Причём, как это обычно у gccшников, без объявления войны. Хотя бы предупреждения о выбрасывании кода можно было выкинуть. Ну, типа unreachable code.
| |
|
|
7.60, Vkni (ok), 19:12, 13/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | Я очень рад за вас и вашего брата Но таки вы - исключение Стандартные флаги оп... большой текст свёрнут, показать | |
|
|
9.62, Vkni (ok), 19:31, 13/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | А в чём ещё Какой смысл ставить -O2, если -O3 быстрее и не ломает код Ну доста... большой текст свёрнут, показать | |
|
|
7.96, pv47 (ok), 22:31, 13/06/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Есть у меня один знакомый, который как раз поэтому gcc и обожает,
> что там код работает на 5-10% быстрее, чем в clang, как
> правило.
если код твоего знакомого работает на 10% быстрее в gcc, чем в шланге, за счёт таких оптимизаций, то у меня для него плохие новости: у него в коде куча лишних проверок, которые он почему-то не выкинул сам. наверное, это как раз тот случай, когда компилятор умнее человека.
обычно знакомым таких личностей, как ваш знакомый, сочувствуют. но вы, похоже, этим гордитесь.
| |
7.245, Demo (??), 23:54, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
$ 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
...
| |
|
6.117, arisu (ok), 13:32, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Ну так -O3 уже никто и не включает. Или пацаны хотят добиться,
> что и -O2 включать не будут?
пацаны хотят, чтобы говнокодеры документацию читали сначала.
уж от тебя-то я не ожидал такой позиции.
| |
6.266, Аноним (-), 16:08, 15/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Причём, как это обычно у gccшников, без объявления войны. Хотя бы предупреждения
> о выбрасывании кода можно было выкинуть. Ну, типа unreachable code.
Release Notes к gcc 4.9 почитайте. И Porting to, если вам мало.
| |
|
|
4.109, Anonym2 (?), 01:46, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> Вот последнюю проверку компилятор вполне имеет право удалить
> В мире эльфов - да. Всё-таки, вера в то, что компилятору не
> придётся обрабатывать код с ошибками, в высшей степени наивна.
И разработчики GCC вряд ли страдают этой верой.
Кстати, foo->bar компилятор тоже вправе удалить... >:-)
| |
4.116, arisu (ok), 13:31, 14/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
>> Вот последнюю проверку компилятор вполне имеет право удалить
> В мире эльфов - да. Всё-таки, вера в то, что компилятору не
> придётся обрабатывать код с ошибками, в высшей степени наивна.
для идиотов есть режим -O0. в документации по gcc ясно написано, что корректность выхлопа оптимизатора гарантируется *только* для корректных программ. если авторы подсунули компилятору говнокод, то они сами и виноваты.
| |
|
5.296, КО (?), 11:44, 16/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> корректность выхлопа оптимизатора гарантируется *только* для корректных программ
if (a) {
mtx.lock();
if (a) { // явно же лишняя проверка - только что проверили.
| |
|
6.298, arisu (ok), 11:53, 16/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
>> корректность выхлопа оптимизатора гарантируется *только* для корректных программ
> if (a) {
> mtx.lock();
> if (a) { // явно же лишняя
> проверка - только что проверили.
конечно, лишняя. если ты меняешь переменную из разных потоков и не объявил её volatile — ты идиот, а твой код говно.
такие дела.
| |
|
7.305, 0xd34df00d (ok), 17:40, 16/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
>>> корректность выхлопа оптимизатора гарантируется *только* для корректных программ
>> if (a) {
>> mtx.lock();
>> if (a) { // явно же лишняя
>> проверка - только что проверили.
> конечно, лишняя. если ты меняешь переменную из разных потоков и не объявил
> её volatile — ты идиот, а твой код говно.
Не всё так просто, см. страницу 7 здесь: http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf
Правда, то в приложении к синглтонам.
| |
|
6.299, arisu (ok), 11:54, 16/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
p.s. да, компилятор имеет право проанализировать метод lock(), увидеть, что a там не меняется и выкинуть проверку нафиг.
| |
6.304, 0xd34df00d (??), 17:37, 16/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> if (a) {
> mtx.lock();
> if (a) { // явно же лишняя
> проверка - только что проверили.
Ну так в C++ до 11 не было memory model, машина представлялась однопоточной. Это уже проблема языка и стандарта, а не компилятора.
| |
|
|
|
|
|
1.4, Аноним (-), 09:37, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
я не понял, если это баг гцц, где патч? а если баг бинда, зафига этот костыль, вместо приведения кода в порядок?
| |
|
2.5, Аноним (-), 09:57, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
Это похоже на универсальную закладку. Чтобы даже если программист все дыры закроет нужными проверками, всё равно в исполняемом файле дырочки бы остались.
| |
|
3.21, Аноним (-), 14:06, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Это похоже на универсальную закладку. Чтобы даже если программист все дыры закроет
> нужными проверками, всё равно в исполняемом файле дырочки бы остались.
Нет, это для удобства программиста, желающего поставить бэкдор. Написал volatile - и оппа, сразу дырочка, хотя формально проверка есть.
| |
|
4.65, Аноним (-), 20:16, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Написал volatile - и оппа, сразу дырочка,
Вы там с головой в дружбе? Volatile как раз наоборот запрещает компилеру optimize out то что по его мнению можно выбросить, т.к. явно хинтит что помеченное как volatile может изменяться или использоваться неожиданным для компилятора образом и соответственно выбрасывать это ни в коем случае нельзя.
| |
|
|
2.13, рлрлро (?), 11:52, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это не баг, просто компилятор не может, по компилируемому куску кода, самостоятельно определить, что эти переменные могут принять значение NULL. Почитай про ключевое слово volatile.
| |
|
3.26, Пиу (ok), 14:22, 13/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>volatile
откуда инфа, что виновато volatile? можно ссылочку? (ищу диффы, не могу найти)
| |
|
4.40, Аноним (-), 16:31, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Volatile не "виновато" а всего лишь указывает компилеру что переменная может изменяться неожиданным для него образом (в эмбедовке, например, обработчик прерывания может сильно сбоку туда что-то записать, etc) и что данную переменную по этому поводу нельзя удалять в целях оптимизации, даже если все выглядит так как будто она не используется.
| |
|
3.54, pv47 (ok), 17:32, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> компилятор не может, по компилируемому куску кода, самостоятельно определить, что эти переменные могут принять значение NULL
и поэтому удаляет код, который явно проверяет это и написан программистом, который МОЖЕТ это сделать самостоятельно. браво.
| |
|
4.106, Ordu (ok), 23:31, 13/06/2014 [^] [^^] [^^^] [ответить] | +2 +/– | Как факт, замечу, что программист не всегда это делает Допустим есть функция s... большой текст свёрнут, показать | |
|
5.107, pv47 (ok), 00:17, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Я об этом как-то не подумал хотя, ваш пример носит другой характер В вашем с... большой текст свёрнут, показать | |
|
6.113, Xasd (ok), 04:16, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> идеальным вариантом стала бы поддержка какого-нибудь -fno-optimize-undefined-behavior, который бы просто не оптимизировал подобные сомнительные случаи ...
где ты *сомнительный* случай нашёл?
если программист сделал для структуры (foo)
x = foo->bar
// other code
значит компилятор *БЕЗ* каких либо сомнений знает что foo всегда != 0.
| |
6.119, arisu (ok), 13:38, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> ИМХО, идеальным вариантом стала бы поддержка какого-нибудь -fno-optimize-undefined-behavior,
> который бы просто не оптимизировал подобные сомнительные случаи, т.е. перекладывал бы
> "неопределённое поведение" на процессор и библиотечные функции.
есть такой ключ! -O0!
| |
|
5.283, Аноним (-), 09:15, 16/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> return str ? str[0] : -1;
А это вообще нормально - возвращать str[0] который char как знаковый int? Нет, си конечно по факту так позволяет. Но, как бы это сказать, неаккуратненько...
| |
|
6.301, arisu (ok), 12:04, 16/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> А это вообще нормально - возвращать str[0] который char как знаковый int?
нормально, говнокодеры говорят малацца.
| |
6.308, Ordu (ok), 21:47, 16/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> return str ? str[0] : -1;
> А это вообще нормально - возвращать str[0] который char как знаковый int?
> Нет, си конечно по факту так позволяет. Но, как бы это
> сказать, неаккуратненько...
Ты знаешь назначение функции first? Видишь ли, при ней нет документационного комментария, поэтому я не знаю, для чего она вообще нужна. Если ты знаешь, расскажи мне, и мы обсудим, насколько уместно возвращение str[0].
| |
|
7.309, arisu (ok), 22:18, 16/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
нинасколько, потому что никакой разумной причины возвращать или str[0] или -1 нет, ибо -1 входит во множество значений char. неразумных же причин можно выдумать много, но все они могут возникнуть только в говнокоде.
| |
|
8.310, Ordu (ok), 22:55, 16/06/2014 [^] [^^] [^^^] [ответить] | +/– | Отлично Тогда я предлагаю переписать тот примерчик, дабы продемонстрировать опт... текст свёрнут, показать | |
|
|
6.343, Crazy Alex (ok), 15:33, 22/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
А что тут ненормального? Архитектур, где sizeof(char)==sizeof(int) уже и не осталось, разве что контроллеры какие-то. А для обычного рядового кода char, даже если он unsigned, в signed int поместится гарантированно.
| |
|
7.345, arisu (ok), 21:30, 22/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
> А что тут ненормального?
как я уже писал, ненормально тут то, что -1 — валидное значение для char, который по умолчанию signed. как этот код ни переписывай, он изначально говнокод, потому что использует для исключительной ситуации код возврата, который может появиться и без исключительной ситуации. у программиста при виде этого в голове ревёт сирена. сразу. вне зависимости от того, может ли во входном потоке встретиться \xff — если это никак не проверяется, и даже комментария нет, то может, и встретится, и всё сломается.
это как не проверять результат malloc'а: глаз мгновенно спотыкается, а руки автоматически тянутся вставить хотя бы проверку с abort'ом.
| |
|
|
9.347, arisu (ok), 21:59, 22/12/2015 [^] [^^] [^^^] [ответить] | +/– | на большинстве платформ у большинства компиляторов char по 8208 умолчанию знако... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
4.18, Аноним (-), 13:12, 13/06/2014 [^] [^^] [^^^] [ответить]
| –4 +/– |
А до этого делали предложение Столлману идти ***** со своей GPL v3 и, что характерно, Линус тоже не перешел.
| |
|
5.20, Аноним (-), 14:05, 13/06/2014 [^] [^^] [^^^] [ответить]
| +9 +/– |
> Линус тоже не перешел.
Гражданин судья, а он не может перейти! :)
Для перехода ядра на GPLv3 нужно получить согласие у всех авторов коммитов в ядро за всю его историю. Долететь до Альфы Центавра будет быстрее и проще.
| |
|
|
Часть нити удалена модератором |
7.66, Аноним (-), 20:18, 13/06/2014 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Что за милая, чудесная, универсальная GPLv3, не правда ли? Ну и ее
> предшественница - так-то не сильно лучше.
Если бы некоторые не очень хорошие личности не находили лазейки в GPLv2 то и GPLv3 не требовался бы. Скажем тивоизаторам и прочим мошенникам спасибо, хренли. Как известно, если в законе закручивают гайки, этому обычно предшествует абуз какой-то фичи до состояния когда спокойно жить становится невозможно.
| |
7.111, Куяврег (?), 02:28, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
я таки не понял, вам нравится, что GPLv3 требует согласия всех авторов или нет?
| |
|
|
9.285, Аноним (-), 09:18, 16/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Да, аналог линевому кернелу уж так искали, так искали Только даже опач и яху за... текст свёрнут, показать | |
|
|
|
|
5.121, arisu (ok), 13:41, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> А до этого делали предложение Столлману идти ***** со своей GPL v3
если у таких отпетых проприерастов, как огрызок, GPLv3 вызывает настолько большие анальные неудобства, то это лишний раз доказывает, что GPLv3 хорошая.
| |
|
4.41, Аноним (-), 16:38, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> яблочники делали предложение команде gcc по обьединению
Да, особенно хорошо все это заметно на примере swift, где они вообще не знают будет ли это опенсорсным. А оно надо - с такими объединяться?
| |
|
|
|
1.10, YetAnotherOnanym (ok), 11:05, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Представляю, какое богатство лексикона продемонстрирует Линус, если выяснится, что ядро, собранное новым GCC ведёт себя не так, как должно.
| |
|
2.122, arisu (ok), 13:42, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Представляю, какое богатство лексикона продемонстрирует Линус, если выяснится, что ядро,
> собранное новым GCC ведёт себя не так, как должно.
и по делу, само собой. то есть, напрямую тем идиотам, которые закомитили код, полагающийся на UB.
| |
|
|
2.16, Аноним (-), 13:09, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну кто-то Арч юзает, не в продакшне конечно, но все-таки неприятно.
| |
|
3.22, Аноним (-), 14:07, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Ну кто-то Арч юзает, не в продакшне конечно, но все-таки неприятно.
А википедия вообще на убунте :)
| |
|
4.24, Аноним (-), 14:18, 13/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да много кто на убунте, на самом деле. На 14.04 все-таки 4.8.х используется, 4.9 опционально.
| |
|
|
6.30, Аноним (-), 14:55, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
В Убунту на серваках зато гигантское комьюнити. И если не хочешь придумывать велосипеды и тестировать их у себя в продакшне,то это сейчас неплохой выбор, особенно если все завязано на средства автоматизации типа чефа, паппета и т.д, где есть куча всего готового именно под Убунту.
Сам, скрипя сердцем, в собственных поделках стал использовать Убунту вместо Опенсюзи из-за этого где-то год назад. :(
| |
|
7.39, Аноним (-), 16:24, 13/06/2014 [^] [^^] [^^^] [ответить]
| –4 +/– |
> В Убунту на серваках зато гигантское комьюнити.
К сожалению, произведение количества участников коммьюнити на их средний уровень профессионализма - величина постоянная. Иными словами, чем больше коммьюнити - тем ниже уровень технической грамотности в нем.
| |
|
6.42, Аноним (-), 16:39, 13/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> На самом деле, в убунте много других поводов для веселья.
А в чем они состоят? А то у меня на ряде серверов она пашет уже пятый год. Проблем - ноль.
| |
|
|
|
|
2.34, bircoph (ok), 15:26, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Не нужно писать код, не соответствующий стандартам:
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.
| |
|
3.47, Vkni (ok), 17:01, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Не нужно писать код, не соответствующий стандартам
И вообще нужно быть красивым, здоровым и богатым.
Ну и, я так понимаю, с точки зрения авторов GCC до 1999 года код на языке Цэ не писали.
| |
|
4.64, mine (ok), 20:09, 13/06/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
Очевидно, что код до 99 года компилировали другими версиями GCC.
И потом, хочешь оптимизаций - пиши по стандартам, хочешь писать как угодно, не проси компилятор исправлять твой говнокод.
| |
|
5.70, Vkni (ok), 20:49, 13/06/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Очевидно, что код до 99 года компилировали другими версиями GCC.
Очевидно, компилятор языка с полувековой историей имеет определённые обязательства по поддержанию совместимости.
> И потом, хочешь оптимизаций - пиши по стандартам, хочешь писать как угодно,
> не проси компилятор исправлять твой говнокод.
Солнце, до 99-го года этого стандарта не было.
| |
|
6.82, Аноним (-), 21:46, 13/06/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
а так же генерировать максимально быстрый код.
Разработчики предпочти второе.
| |
|
7.92, Vkni (ok), 22:21, 13/06/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
> а так же генерировать максимально быстрый код.
> Разработчики предпочти второе.
Всегда можно сгенерировать мгновенно выполняющийся нерабочий код. :-)
| |
|
6.104, mine (ok), 23:07, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну так для совместимости есть специальные ключи. А если декларируется C99, то о чём речь?
| |
|
7.105, Vkni (ok), 23:14, 13/06/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Ну так для совместимости есть специальные ключи. А если декларируется C99, то
> о чём речь?
О том, что лучше не плодить несовместимость на ровном месте.
| |
|
|
|
4.124, arisu (ok), 13:44, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Ну и, я так понимаю, с точки зрения авторов GCC до 1999
> года код на языке Цэ не писали.
какое отношение авторы gcc имеют к glibc? ты что, перепил вчера, что ли?
| |
|
|
2.123, arisu (ok), 13:43, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Просто не нужно собирать критические программы с помощью gcc версии x.y.0.
собираю, брат жив, батя грит малацца.
просто надо сначала выучить язык, на котором пишешь, потом прочитать документацию на тулчейн, а только потом писать.
| |
|
1.19, Аноним (-), 14:02, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Как компилятор мог сломать программу?
И какой самый без ошибок? Clang?
| |
|
2.37, 0xd34df00d (??), 15:45, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Как компилятор мог сломать программу?
> И какой самый без ошибок? Clang?
Кланг, при всей моей любви к нему, тоже обожает подобные оптимизации.
| |
2.43, Аноним (-), 16:44, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> И какой самый без ошибок? Clang?
Clang? Без ошибок? Б$%, это ты не видел что LLVM вытворяет при сборке шейдеров для AMDшного драйвера. Там вообще адов багодром и полный сталинград. По милости этого глюкала постоянно вылетают программы которые им пользуются. Вообще, хорошее поведение для либы - не сообщить наверх "ну не смогла я, не смогла!" а просто вылететь нафиг, срубив при этом всю программу. Это в лучшем случае. В хучшем это гуано выдаст некорректный код который повесит GPU, что доставит много радости юзверю за монитором :)
| |
|
1.25, Нанобот (ok), 14:22, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
дооптимизировались. "режим удаления лишних операций" теперь удаляет не только лишние операции, но и нужные.
фтопку такой компилятор, который собирает не тот код, который написал программист, а тот, который, по его мнению, хотел написать программист
| |
|
2.29, Аноним (-), 14:44, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> фтoпку такой компилятор, который собирает не тот код, который написал программист, а
> тот, который, по его мнению, хотел написать программист
А других нынче и нет.
Точнее, есть, но они используются только для узкоспецифичных задач.
| |
2.44, Аноним (-), 16:46, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> тот, который, по его мнению, хотел написать программист
Ну тогда используйте компиляторы без оптимизаторов. Ну там tiny c compiler какой-нибудь. Правда, качество кодогенерации вам не понравится...
| |
2.125, arisu (ok), 13:45, 14/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> дооптимизировались. "режим удаления лишних операций" теперь удаляет не только лишние операции,
> но и нужные.
нет, только лишние. а вот почему дебилы, которые даже не удосуживаются выучить язык, на котором пишут, называют себя «программисты» — это уже другой вопрос.
| |
|
1.27, Пиу (ok), 14:34, 13/06/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
короче говоря, вот ссылка на gcc'шную багзиллу: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61236 (Status: RESOLVED INVALID)
суть в том, что в qsort передается переменная-указатель, которая может быть NULL'ом.
с другой стороны эта функция промаркирована в glibc как такая, которая не может принимать NULL на входе (что соответствует стандарту). из этих соображений, gcc выводит, что в переменной не может быть NULL и убирает проверки.
обещают в gcc 4.10.0 вывод предупреждения на подобные случаи
| |
|
2.31, Crazy Alex (ok), 14:55, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
Вывод - в glibc такое assert'ами прикрывать надо. В более продвинутых языках он бы даже автоматом сгенерировался из атрибута nonnull, кстати. Наглядный пример неудобств слабой типизации сей.
| |
|
3.38, Аноним (-), 15:49, 13/06/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Вывод - в glibc такое assert'ами прикрывать надо.
К.О. напоминает, что релизных сборках assert-ы не работают.
| |
|
4.55, pv47 (ok), 17:36, 13/06/2014 [^] [^^] [^^^] [ответить]
| +4 +/– |
> К.О. напоминает, что релизных сборках assert-ы не работают.
у людей, пишущих на "более продвинутых языках", любая сборка по определению отладочная.
| |
|
5.81, Аноним (-), 21:44, 13/06/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это в тех где все тормозит и ждет сотни мегабайт озу? (если не больше)
Так ничего не мешает отладочную выкладывать в качестве релиза.
| |
|
|
|
2.32, linux must _RIP__ (?), 14:58, 13/06/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
Это не первый такой баг. Помнится не так давно gcc ломал сборку ядра или добавлял дыры убирая такие проверки.
| |
|
3.48, Аноним (-), 17:12, 13/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Это не первый такой баг. Помнится не так давно gcc ломал сборку
> ядра или добавлял дыры убирая такие проверки.
Оптимизаторы вообще своеобразная штука, которая может подгадить.
| |
|
4.52, Vkni (ok), 17:14, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Оптимизаторы вообще своеобразная штука, которая может подгадить.
Так к ним главное требование - не гадить.
| |
|
5.67, Аноним (-), 20:21, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Так к ним главное требование - не гадить.
Используйте -O0, только чур не плеваться на качество кода. А так - в данном случае оптимизатор формально прав. Как ни странно. Я конечно понимаю что у некоторых возникает батхерт, когда программы получаются умнее человека. Но это даже не столько заслуга программы, сколько недостаток человека, клавшего на стандарты с прибором и почему-то думавшего что undefined behavior будет работать именно так как ему удобно, а вовсе не...
| |
|
6.71, Vkni (ok), 20:55, 13/06/2014 [^] [^^] [^^^] [ответить] | –3 +/– | Оптимизатор - это не субъект, чтобы быть правым А вставивший это в него несколь... большой текст свёрнут, показать | |
|
|
8.75, Vkni (ok), 21:12, 13/06/2014 [^] [^^] [^^^] [ответить] | –3 +/– | Я давно за то, чтобы сбросить язык Цэ с парохода современности, как Фортран и ас... текст свёрнут, показать | |
|
|
10.77, Vkni (ok), 21:20, 13/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Синтаксис уже такой, что ужас Увы, но Цэ уже давно ужасен Ещё раз - директив... текст свёрнут, показать | |
|
|
12.79, Vkni (ok), 21:29, 13/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | На поддержание совместимости стандартов тратятся огромные силы Собственно, из-з... большой текст свёрнут, показать | |
|
|
14.85, Vkni (ok), 22:06, 13/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | Могут Это неприятно и очень дорого в ЭТОМ месте Код 89-го года вполне компили... текст свёрнут, показать | |
|
|
16.88, Vkni (ok), 22:12, 13/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | До тут он работал Каждое такое место - это большие денежные потери на ровном ... текст свёрнут, показать | |
|
|
18.95, Vkni (ok), 22:29, 13/06/2014 [^] [^^] [^^^] [ответить] | +2 +/– | Стандарты слишком сложны, чтобы быть 100 совместимыми Уже введение нового ключ... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
14.87, Vkni (ok), 22:09, 13/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Какое отношение имеют скобки, означающие массив, к лямбда-функциям Вывод типов ... текст свёрнут, показать | |
|
|
16.91, Vkni (ok), 22:17, 13/06/2014 [^] [^^] [^^^] [ответить] | +/– | О Вот это и вопрос - глаз видит скобки, 25 лет означающие массив, а реально там... текст свёрнут, показать | |
|
|
18.97, Vkni (ok), 22:32, 13/06/2014 [^] [^^] [^^^] [ответить] | +/– | А у меня он сперва видит какую-то инициализацию массива, которую уже потом я вос... текст свёрнут, показать | |
|
|
22.102, Vkni (ok), 22:43, 13/06/2014 [^] [^^] [^^^] [ответить] | +/– | auto тоже далеко до pattern matching а Увы, другого C у меня для вас нет - вс... текст свёрнут, показать | |
|
|
|
|
18.137, Vkni (ok), 20:46, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Молодец Вот и я пишу, что с синтаксисом в Цэ полный трындец Большое спасибо ... текст свёрнут, показать | |
|
19.140, arisu (ok), 20:50, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | пожалуйста правда, я привёл пример сишного синтаксиса, но так же неинтересно, э... текст свёрнут, показать | |
|
20.148, Vkni (ok), 21:01, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Цэ просто более-менее обозрим, хотя с синтаксисом уже плохо - см ещё указатель ... текст свёрнут, показать | |
21.150, arisu (ok), 21:04, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | я вот недавно ещё страшнее вещь заметил куча имён функций может начинаться на ... текст свёрнут, показать | |
22.159, Vkni (ok), 21:14, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | В С есть десятки способов реализовать одну и ту же задачу Это одновременно и ... текст свёрнут, показать | |
24.167, Vkni (ok), 21:19, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Если чутка обобщить задачу, получится - класс, шаблон, макрос, указатель на функ... текст свёрнут, показать | |
24.306, arisu (ok), 17:49, 16/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | тут такое дело, что я просто на дух не переношу цпп там ВСЁ плохо особенно то,... текст свёрнут, показать | |
22.316, Vkni (ok), 01:13, 17/06/2014 [^] [^^] [^^^] [ответить] | +/– | Не, туда уходят реально мужественные люди На одном - шаблоны сделаны хуже, чем ... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
10.136, Vkni (ok), 20:43, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | А читать тебя научили 30-40 лет назад А всё равно, про включённые заголовки не ... текст свёрнут, показать | |
|
|
|
13.144, arisu (ok), 20:54, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | то, что я каждый день использую там даже можно делать такие штуки, как подпихив... текст свёрнут, показать | |
|
14.147, Vkni (ok), 20:59, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Молодец, правильно рассказал А теперь представь, что у тебя есть замшелый софт ... текст свёрнут, показать | |
|
|
16.155, Vkni (ok), 21:10, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ну ты возишься в своей маленькой песочнице, а кругом большой мир, где есть всяко... текст свёрнут, показать | |
|
17.192, arisu (ok), 21:45, 14/06/2014 [^] [^^] [^^^] [ответить] | +3 +/– | и я тебе таки скажу, что если продолжать делать подпорки для говнокода, то говно... текст свёрнут, показать | |
|
|
|
16.157, Vkni (ok), 21:12, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ну это ты крут Прелагаю тебе попробовать и выписать тут программы, которыми мож... текст свёрнут, показать | |
|
|
18.164, Vkni (ok), 21:18, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ну бред-то не надо писать, а Берёте wc -l, исходники ядра, libc считаете кол-во... текст свёрнут, показать | |
|
|
20.187, Vkni (ok), 21:41, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Почему У софта есть время жизни, после которого софт становится не нужен бол... текст свёрнут, показать | |
22.199, Vkni (ok), 21:54, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ядро Линукса и glibc состоят из частей, которые периодически заменяются на други... текст свёрнут, показать | |
24.250, Vkni (ok), 00:12, 15/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Не вырождается, т к там две страницы вырванных выкладок То взять и перепис... текст свёрнут, показать | |
|
19.193, arisu (ok), 21:47, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | и поэтому ошибки чинить не будем всё равно это нереально, не так ли про декомп... текст свёрнут, показать | |
|
20.202, Vkni (ok), 21:57, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Арису, вернись из Валинора и убери ребёнка с компьютера До 20-ти лет он не смож... текст свёрнут, показать | |
|
|
|
|
|
|
16.317, Vkni (ok), 01:16, 17/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Там в Makefile как было -O2, так и осталось Только с увеличением версий gcc это... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
6.94, pv47 (ok), 22:26, 13/06/2014 [^] [^^] [^^^] [ответить] | +/– | потому что всю жизнь ub относилось не к компилятору а к процессору си был высок... большой текст свёрнут, показать | |
|
7.129, arisu (ok), 13:51, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> потому что всю жизнь ub относилось не к компилятору а к процессору.
> си был высокоуровневым ассемблером. и ub подразумевало, что компилятор скомпилирует как
> есть, а сможет ли это выполнить процессор - это уже и
> будет ub.
школоло, покажи эти слова в стандарте.
| |
|
8.141, Vkni (ok), 20:50, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ну очевидно же, что подобные штуки в стандартах не пишут Точно также, как в УК ... текст свёрнут, показать | |
|
|
10.153, Vkni (ok), 21:08, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Естественно, нет Вокруг каждого ЯП есть определённая культура - то, что плохо ф... текст свёрнут, показать | |
|
|
|
|
14.170, Vkni (ok), 21:23, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Видимо Потому, что есть масса нужных, но плохо формализуемых вещей, которыми мы... текст свёрнут, показать | |
|
|
|
11.165, arisu (ok), 21:18, 14/06/2014 [^] [^^] [^^^] [ответить] | +2 +/– | естественно, да то, что кучка людей договорилась чесать левое ухо и делать три ... большой текст свёрнут, показать | |
|
12.176, Vkni (ok), 21:31, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ещё раз тебе пишу - давай вставлять rm -rf HOME там, где появилось UB В УК в с... большой текст свёрнут, показать | |
|
13.198, arisu (ok), 21:53, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | с удовольствием количество говнокода и говнокодеров хотя бы на си после этого... большой текст свёрнут, показать | |
|
14.208, Vkni (ok), 22:07, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Это ты, лучше возвращайся из Валинора На каждое не надо, а на такие приколы ста... текст свёрнут, показать | |
|
15.212, arisu (ok), 22:14, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | даже если я громче всех захрюкаю, твой текст всё равно останется бредом я, чест... текст свёрнут, показать | |
|
16.220, Vkni (ok), 22:26, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Да, на Цэ написаны тонны говнокода И что изменится от того, что ты объявишь его... текст свёрнут, показать | |
|
|
18.232, Vkni (ok), 22:53, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Причина Та же эпопея со SPEC - либо корректируем SPEC2006 все предыдущие рез... текст свёрнут, показать | |
|
19.233, arisu (ok), 23:02, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | и поэтому там вечно будет говно, грязь и говнокод по буквам в е ч н о и, само ... текст свёрнут, показать | |
|
20.235, Vkni (ok), 23:12, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Буквы не те Правильно О П Ж А, а составить нужно слово ВЕЧНОСТЬ Но ты прав - в... текст свёрнут, показать | |
21.238, arisu (ok), 23:27, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | я предлагаю перестать сорить и за попытку насорить бить канделябром , а ты пред... текст свёрнут, показать | |
22.243, Vkni (ok), 23:49, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ты предлагаешь перестать сорить вообще На намёки, что это невозможно, и при бол... текст свёрнут, показать | |
24.248, Vkni (ok), 00:07, 15/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Это лишь красивые слова Ты лучше скажи, что со SPEC ом делать Ну расстрелял ты... текст свёрнут, показать | |
25.249, arisu (ok), 00:10, 15/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | разобраться, где баг и починить его именно там если по стандарту gcc прав, то б... текст свёрнут, показать | |
26.251, Vkni (ok), 00:15, 15/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ты понимаешь, что все тесты с этим багом станут автоматом невалидны И их нельзя... текст свёрнут, показать | |
27.252, arisu (ok), 00:20, 15/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | и это правильно какой смысл в тесте, защищающем ошибку я-то, наивный, думал, ч... текст свёрнут, показать | |
28.253, Vkni (ok), 00:42, 15/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | Он не защищает ошибку, а содержит Эта ошибка - выход за границы массива при чте... текст свёрнут, показать | |
30.255, Vkni (ok), 01:10, 15/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | Это лозунги Ты сам, внутри себя, чётко осознаёшь правильное решение И, более т... текст свёрнут, показать | |
31.257, arisu (ok), 01:34, 15/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | 8230 я не менее чётко пишу об этом решении но, конечно, механизмы компенсации... текст свёрнут, показать | |
|
|
|
|
|
19.319, Vkni (ok), 09:50, 17/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Конечно, нет Тут, по-видимому, вдумчиво читала С-шный стандарт не больше пары ч... текст свёрнут, показать | |
|
20.322, arisu (ok), 13:27, 17/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | вот в том и беда, что пишут ну, и в том ещё, что соответствующие стандарты дела... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.49, Аноним (-), 17:13, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> обещают в gcc 4.10.0 вывод предупреждения на подобные случаи
Круто, а между .9 и .10 что делать? :)
| |
|
|
4.68, Аноним (-), 20:23, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> .8
Ну вот как-то так и получается, если с практической точки зрения смотреть :\. Ибо если они не успели включить патчик с варнингом, но успели включить патчик с столь агрессивной оптимизацией - нарваться на тихую оптимизацию таких вещей не подпертую варнингом было бы не прикольно. Как будто в этом мире мало народа кладет на стандарты.
| |
|
5.72, Vkni (ok), 20:58, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ну вот как-то так и получается, если с практической точки зрения смотреть
> :\.
Да. Собственно, я с практической точки зрения и подходил.
> Ибо если они не успели включить патчик с варнингом, но
> успели включить патчик с столь агрессивной оптимизацией - нарваться на тихую
> оптимизацию таких вещей не подпертую варнингом было бы не прикольно. Как
> будто в этом мире мало народа кладет на стандарты.
Более того, скажу, что в 96-м году как-то странно не класть на стандарт 99-го. Языку Цэ уже пол века, есть груда унаследованного кода, костылей и т.д. Их нужно учитывать при разработке компилятора.
А если не хочется, то лучше уж запилить новый системный язык, лучше приспособленный под реалии современного дня - вывод типов, GPU, параллельность и т.д.
| |
|
6.292, Аноним (-), 09:39, 16/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Более того, скажу, что в 96-м году как-то странно не класть на стандарт 99-го.
Если вы собираете код 96 года, сказав компилеру что надо использовать стандарт 99-го - благородный дон желает чего-то странного, не находите? И не кажется ли вам что единственный кого вы в этом процессе можете обмануть - это вы сами?
> Языку Цэ уже пол века, есть груда унаследованного кода,
> костылей и т.д. Их нужно учитывать при разработке компилятора.
А зачем вы на код 96-го года врете компилеру что это C99 и закручиваете оптимизацию? "Если долго портить машину, она сломается".
> А если не хочется, то лучше уж запилить новый системный язык,
Запиливайте, разрешаю.
> GPU, параллельность и т.д.
ИЧСХ, в GCC все это пилят. ИЧСХ, основываясь на си.
| |
|
7.300, arisu (ok), 12:01, 16/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> ИЧСХ, в GCC все это пилят. ИЧСХ, основываясь на си.
ИЧСХ, получается фигня.
| |
7.318, Vkni (ok), 01:24, 17/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Запиливайте, разрешаю.
Запоздало, т.к. люди над этим давно работают.
> ИЧСХ, в GCC все это пилят. ИЧСХ, основываясь на си.
От такого кол-ва изнасилований Слоник не выдержит и лопнет.
| |
|
|
|
|
|
2.50, Vkni (ok), 17:13, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> (что соответствует стандарту).
А до 1999-го года ни одной строчки на языке Цэ не написано!!!
| |
|
3.69, Аноним (-), 20:24, 13/06/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> А до 1999-го года ни одной строчки на языке Цэ не написано!!!
А для кода древнее 1999 года компилеру может потребоваться указать стандарт, которому он должен следовать.
| |
|
4.73, Vkni (ok), 21:00, 13/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> А для кода древнее 1999 года компилеру может потребоваться указать стандарт, которому
> он должен следовать.
А оно точно уберёт оптимизацию? И вообще, сможет ли эту libc скомпилировать-то?
| |
|
5.130, arisu (ok), 13:53, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> А оно точно уберёт оптимизацию? И вообще, сможет ли эту libc скомпилировать-то?
если ты используешь glibc, которая следует стандартам 99-го года, с какого испугу ты возмущаешься, что код стандарта 89-го компилируется хреново?
не хочешь править свой код под новый стандарт — бери glibc постарее и страдай.
| |
|
6.135, Vkni (ok), 20:43, 14/06/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Про такую штуку, как поддержка совместимости слышал? Про библиотеки, чуть младше тебя и меня, широко используемые в повседневности тоже не слышал?
Стандарт специально расширен так, чтобы поддерживать совместимость, а оптимизатор её ломает без объявления войны. Надо было хотя бы предупреждение выкинуть в этом месте.
| |
|
7.138, arisu (ok), 20:47, 14/06/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Стандарт специально расширен так, чтобы поддерживать совместимость
лолвут? тебе ж выше уже показали, что совместимость поломана.
| |
|
8.142, Vkni (ok), 20:51, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Отключаешь эту оптимизацию и видишь невооружённым взглядом, что gcc c этой libc ... текст свёрнут, показать | |
|
9.146, arisu (ok), 20:59, 14/06/2014 [^] [^^] [^^^] [ответить] | +2 +/– | молодец теперь, всё-таки, попробуй сделать остальные шаги например, почитать в... большой текст свёрнут, показать | |
|
10.151, Vkni (ok), 21:05, 14/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | А ты, умный Я выше и писал, что при таком подходе -O0 будет у всех Ибо работаю... текст свёрнут, показать | |
|
|
|
|
14.169, Vkni (ok), 21:21, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Молодец Это ты пишешь про новый софт, а я тебе про старый, работающий десятилет... текст свёрнут, показать | |
|
15.174, arisu (ok), 21:29, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | прикинь, старые исходники тоже можно чинить за это молния с неба не ударит то,... текст свёрнут, показать | |
|
16.177, Vkni (ok), 21:32, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Прикинь, если получить предупреждение в subj евом месте, чинить будет на порядки... текст свёрнут, показать | |
|
17.180, arisu (ok), 21:34, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | прикинь, для этого придумали статические анализаторы и продолжают их совершенст... текст свёрнут, показать | |
|
|
|
20.210, Vkni (ok), 22:10, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Прикинь, движение ИТ всю жизнь идёт в обратную сторону - компьютер должен работа... текст свёрнут, показать | |
22.228, Vkni (ok), 22:44, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Прикинь, если ты сам вернёшься из Валинора, ты узнаешь, что здесь стат анализат... текст свёрнут, показать | |
24.237, Vkni (ok), 23:19, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Прикинь, если бы мы тогда жили, мы бы так и считали Ибо, чтобы нужно было меньш... текст свёрнут, показать | |
26.256, Vkni (ok), 01:13, 15/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | Повзрослеешь Более того, ты наверняка уже повзрослел Нужно просто перестать вр... текст свёрнут, показать | |
28.320, Vkni (ok), 09:52, 17/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Я не сомневаюсь, что ты, лично, моешься каждый день И Сшный стандарт читаешь, и... текст свёрнут, показать | |
31.330, Vkni (ok), 22:04, 17/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Совершенно верно При этом ты, почему-то, настаиваешь на том, что давайте прямо ... текст свёрнут, показать | |
37.337, Vkni (ok), 18:53, 18/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Исключительно постепенным комплексом мер Конечно, обыватели должны быть всегда... текст свёрнут, показать | |
39.339, Vkni (ok), 05:26, 21/06/2014 [^] [^^] [^^^] [ответить] | +/– | Да понятно почему - это инстинктивное желание Но на уровне градоначальника нужн... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
11.173, arisu (ok), 21:27, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | таки да отучаемся говорить за всю сеть у говнокодеров 8212 да люди же, кот... большой текст свёрнут, показать | |
|
|
|
14.182, Vkni (ok), 21:36, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Угу Самая большая проблема, почему нельзя стат анализатор встроить в компилято... текст свёрнут, показать | |
|
|
16.194, Vkni (ok), 21:48, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | У PVS-овцев реализована инкременталка С того, что предупреждения противоречат д... текст свёрнут, показать | |
|
|
18.205, Vkni (ok), 22:01, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Я, естественно, про них помню Но, я тебе, как умному собеседнику, намекаю, что ... текст свёрнут, показать | |
|
17.214, Led (ok), 22:15, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | На отсутствие default ругается только в том случае, если для переключалки исполь... текст свёрнут, показать | |
|
|
19.223, Vkni (ok), 22:29, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Ещё проще есть - return прямо после switch c default один компилятор ругается н... текст свёрнут, показать | |
|
18.221, Vkni (ok), 22:27, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Пересмотрел 2 раза, логика корректна Мне теперь повеситься из-за какого-то вшив... текст свёрнут, показать | |
|
19.222, Led (ok), 22:29, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Зачем вешаться Оставайся - одним говнокодером больше, одним меньше - какая разн... текст свёрнут, показать | |
|
20.225, Vkni (ok), 22:30, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Такую чушь лучше писать из-под анонимуса Тебе не придётся потом ник удалять ... текст свёрнут, показать | |
|
|
20.226, Vkni (ok), 22:32, 14/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | enum с десятком параметров, нужно сделать выделенный случай для 2-х Если я вста... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
12.179, Vkni (ok), 21:34, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Если ты пропихнёшь такой патч, тебе сильно подрихтуют физиономию неформализуемым... текст свёрнут, показать | |
|
|
|
15.186, arisu (ok), 21:41, 14/06/2014 [^] [^^] [^^^] [ответить] | +1 +/– | конечно, вместо этого мне надо всё забыть и весело нырнуть в говно, а потом похр... текст свёрнут, показать | |
|
|
|
|
|
Часть нити удалена модератором |
|
|
|
|
|
|
|
|
12.231, Vkni (ok), 22:49, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Это у вас в Валиноре можно сделать Сшную программу на мегабайт текстов без UB ... текст свёрнут, показать | |
|
|
|
|
16.244, Vkni (ok), 23:50, 14/06/2014 [^] [^^] [^^^] [ответить] | +/– | Многие знания, многие печали Но нет, не настолько хреново, чтобы уходить в Вали... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
14.268, Vkni (ok), 21:32, 15/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Да, вы абсолютно правы Нужно А ещё нужно учиться на одни пятёрки, слушаться ст... текст свёрнут, показать | |
|
|
16.271, Vkni (ok), 00:15, 16/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Разумеется, нет Скажем, есть ли у вас братья-сёстры Возьмём Л Поттеринга Он ... текст свёрнут, показать | |
|
|
18.274, Vkni (ok), 00:26, 16/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | К тому, что несмотря на то, что этот кадр плодит лютое говно, нам необходимо... текст свёрнут, показать | |
|
|
|
|
|
|
12.267, Vkni (ok), 21:29, 15/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Если есть выбор в том, что чужой некритичный код работает при -O0 и не работает ... текст свёрнут, показать | |
|
|
14.273, Vkni (ok), 00:24, 16/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Это вы говорите про непосредственного виновника Непосредственный виновник - это... текст свёрнут, показать | |
|
|
16.277, Vkni (ok), 00:57, 16/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Ок Тогда аналогия простая - вы, переходя дорогу на зелёный свет, можете смотрет... текст свёрнут, показать | |
|
|
18.281, Vkni (ok), 01:47, 16/06/2014 [^] [^^] [^^^] [ответить] | –2 +/– | Нет, не в рамках Нарушен пункт соблюдение дистанции В ПДД есть неточности, н... текст свёрнут, показать | |
|
|
20.287, Vkni (ok), 09:23, 16/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Либо полное следование ПДД , либо была нарушена дистанция , но не одновременно... текст свёрнут, показать | |
22.302, Vkni (ok), 17:16, 16/06/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Не надо срываться на эмоции Есть разница Поэтому ПДД сделаны с запасом - даже ... текст свёрнут, показать | |
|
|
20.340, Vkni (ok), 05:29, 21/06/2014 [^] [^^] [^^^] [ответить] | +/– | Мужики, естественно, не знают о том, что происходило больше, чем 2 года назад И... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|