В списке рассылки разработчиков ядра Linux возникло обсуждение ошибки, причиной которой стала некорректная генерация кода при использовании GCC 4.9.0. После изучения ситуации Линус Торвальдс высказался (https://lkml.org/lkml/2014/7/24/584) в свойственной ему манере, назвав текущее состояние дел с генерацией кода в GCC 4.9.0 "редкой дрянью" и заявив, что эту версию компилятора нельзя было выпускать из детского сада.
Упомянутый гнев отчасти справедлив, поскольку в ассемблерных листингах было обнаружено, что компилятор может изменять даже переменные которые специальным ключевым словом явно обозначены как константы, что является ошибочным действием. Тем не менее, стоит отметить, что под огонь попала версия GCC 4.9.0 (http://www.opennet.me/opennews/art.shtml?num=39621), тогда как недавно вышел (http://www.opennet.me/opennews/art.shtml?num=40217) релиз 4.9.1 с исправлением ряда ошибок и пока нет данных о наличии в нем подобных проблем.URL: https://lkml.org/lkml/2014/7/24/584
Новость: http://www.opennet.me/opennews/art.shtml?num=40281
Пусть ему Столлман ответит что-нибудь. Хочется битвы титанов! )
А что Столлман скажет-то? От него gcc уже не зависит. Если бы зависело, так бы его и перевели на C++.
Это понятно, что RMS давно не работает над GCC. Но он всё ещё остаётся его родоначальником, а также основателем GNU, под эгидой которого развивается GCC. Такшта... )
Ещё один перевод слово в слово с фороникса ... аж противно,
хоть бы источник указывали пЕсатели, блджать.
Плюс это нарушение копирайта (мне плевать на копирай похороникса, но всё равно некрасиво)https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904
бага закрыта так как duplicate
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
закрыта как FIXED в 4.8.4, про 4.9.х таки да ни слова.
У вас какая-то фрониксофобия. Фроникс успешно выдирает новости из reddit и hackernews. По поводу содержимого в новости про GCC и Линуса в статье на фрониксе одни цитаты из письма.Новость http://www.reddit.com/r/linux/comments/2br67o/gcc_49_is_doin.../ появилась часов на 12 раньше фроникса.
Актуальность новостей на фрониксе тоже хромает, например, фроникс написал про премию ACM для GCC сегодня, а на opennet она появилась в июне (http://www.opennet.me/opennews/art.shtml?num=39991). На opennet многие пересекающиеся с фрониксом новости выходят раньше, но фроникс указывает тихоокеанское время, которое от нашего на полдня отстаёт, вот и создаётся впечатление, что он публикует раньше.
> У вас какая-то фрониксофобия.Это местная болезнь наподобие гриппа, только излечиться от неё местные поциенты не могут.
Самое смешное, что ненависть к форониксу не мешает местным поциентам его тайком почитывать настолько тщательно, чтобы вспомнить слово в слово даже в переводе на другой язык.
> У вас какая-то фрониксофобия.Отнюдь.
Новости на форониксе просматриваю ежедневно, полезность некоторых сравнений/бенчмарков спорна, но это другой вопрос.
Если честно то в последнее время отношусь на порядок лучше к похорониксу чем к обдолбанному опеннету.У меня фобия на тупые перепечатки с дословным переводом как в этом случае.
Сравните новость на фрониксе и на данном ресурсе и скажите что я не прав.> но фроникс указывает тихоокеанское время, которое от нашего на полдня отстаёт, вот и создаётся впечатление, что он публикует раньше.
Да ну? Спасибо кэп.
Миллион раз видел как новость появляется первой на форониксе и потом какойто мудрый аноним с помощью гуглопереводчика её копипионерит сюда. И разница не в часовых поясах а во времени которое напрасно тратят на пИрИвот.
> У меня фобия на тупые перепечатки с дословным переводом как в этом случае.Вообще-то это из LKML было взято. А на форониксе ни единого русского слова вообще не обнаружено. А то что одно и то же событие может быть озвучено в более-менее одинаковых тонах - это, гм, достаточно логично вроде?
И вообще, поливать гoвнoм статьи других, не публикуя ничего самому ("Публикации отсутствуют") - это наверное так и надо, да?
> мудрый аноним с помощью гуглопереводчика её копипиoнерит сюда.Ну ты же новости сюда не пишешь, судя по профайлу. Вот другие и фигачат как умеют. И ради интереса сначала попробуй скормить фороникс гугле, а потом подумай - будешь ты это как новость постить? Хинт: машинный перевод может занять только место на yaplakal и lurkmore, в разделе "лулзы" и "былинный отказ". Но откуда ж тебе знать - чукча не писатель...
> У вас какая-то фрониксофобия.Обычная брезгливость по отношению к желтой прессе.
К LWN, например, ни у кого подобных претензий нет.
> К LWN, например, ни у кого подобных претензий нет.Так у вас есть выбор - вы можете читать LWN.
Что именно «перевод с фороникса»?
Это?
https://lkml.org/lkml/2014/7/24/584
> Ещё один перевод слово в слово с фороникса ... аж противно,Вообще-то это из LKML :)
> хоть бы источник указывали пЕсатели, блджать.
Хоть бы глаза разули и прочитали список ссылок, чтоли.
> Плюс это нарушение копирайта (мне плевать на копирай похороникса,
> но всё равно некрасиво)Нарушение копирайта на что именно? На сам факт события? Из LKML? А у фороникса морда не треснет от эксклюзивного права на освещение всех событий в мире опенсорса?
> бага закрыта так как duplicate
Ну а вот в LKML Торвальдс очень едко про дело высказался зато, т.к. могз имеют в результате ему :)
> про 4.9.х таки да ни словаШта?
Author: rguenth
Date: Thu Jul 17 07:48:49 2014
New Revision: 212739URL: https://gcc.gnu.org/viewcvs?rev=212739&root=gcc&view=rev
Log:
2014-07-17 Richard Biener <rguenther@suse.de>PR rtl-optimization/61801
* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
ASM_INPUT don't set reg_pending_barrier if it appears in a3
debug-insn.Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/sched-deps.c
Зачем писать о том, что Торвальдс *резко* критиковал? По-моему, любая критика Торвальса резкая, и употребление рядом с ней слова "резкая" -- это как масло масляное.
>Lookie here, your compiler does some absolutely insane things with the spilling, >including spilling a *constant*. For chrissake, that compiler shouldn't have been >allowed to graduate from kindergarten. We're talking "sloth that was dropped on >the head as a baby" level retardation levelsEpic
Это не эпик.
Просто в новых стандартах с/с++(11/14) с конст намутили слегка так, что не сразу и разберёшься.
Линус всегда прав!
критика Линуса это как похвала!
... только критика.
пахлава
товарищи, переходите на Clang. У нас хорошо :)(не считая OpenMP, но параллельный код можно писать на Rust)
а ещё параллельный код можно писать на Java - но это не повод переходить на Clang
> а ещё параллельный код можно писать на Java - но это не
> повод переходить на Clangpython же, разве нет?
И кстати, там ещё и GIL имеется (если чо).
А что не так с GIL? ИМХО, самая толковая реализация интерпретатора (не конкретно Python)...
Предложи это Линусу и посмотри на его фак.
Считаешь, вразумит? А мне кажется, подобных предлагаторов и хирурги не спасут.
> Считаешь, вразумит? А мне кажется, подобных предлагаторов и хирурги не спасут.Ну это смотря что они ампутировать будут :).
>У нас хорошо :)Не у вас, а у Apple хорошо. А у вас только перманентная боязнь, соизволят ли баре выкинуть убогим косточку.
Какой запущенный случай ... поцЫента не спасти ....
> Какой запущенный случай ... поцЫента не спасти ....Капитан Очевидность - это не лечится :). Капитаны лишь называют вещи своими именами - это невозможно вылечить. Ибо неча на зеркало пенять, коли рожа крива.
> товарищи, переходите на Clang. У нас хорошо :)Я заметил, джад!!! Что ни версия LLVM, то новые баги. Одни оригинальнее других. И знаете, в opencl например такой багодром по линии LLVM и их же libclc, что на фоне этого gcc 4.9 просто эталон стабильности. Так что заткнитесь. Сперва почините ипучие баги, а потом вякайте.
Как задышал то! А чё так завёлся?
> Как задышал то! А чё так завёлся?Да это я как раз с LLVM поэкспериментировал. Знаете, на фоне того что в LLVM 3.5-rc, gcc 4.9 пожалуй не такой уж и плохой. Хотя сам факт вылезания такого количества багов в компилерах - удивляет. Скажите как их раньше почти без багов делали, а? И что поменялось, что теперь такой багодром творится?
> Скажите как их раньше почти без багов делали, а? И
> что поменялось, что теперь такой багодром творится?Их всегда делали с ошибками. Но сейчас всё ухудшилось тем, что компиляторы начали очень серьёзно оптимизировать код. Тут некоторое время назад была высказана мудрая мысль - что язык Цэ с одной стороны системный => погроммист знает лучше всех, как оно должно быть на самом деле, с другой стороны, компиляторы должны давать высокопроизводительный код. Итого, мы имеем конфликт, приводящий к разным неприятным проблемам типа этой - большого кол-ва очень заметных ошибок в компиляторах.
Не забывайте ещё и новые стандарты. Их реализация тоже не тривиальная задача.
> Их всегда делали с ошибками. Но сейчас всё ухудшилось тем, что компиляторы
> начали очень серьёзно оптимизировать код.Ну вот этот тезис вроде выглядит правдоподобно.
> с другой стороны, компиляторы должны давать высокопроизводительный код. Итого, мы имеем
> конфликт, приводящий к разным неприятным проблемам типа этой - большого кол-ва
> очень заметных ошибок в компиляторах.Вообще да, видимо некий конфликт интересов получается: системщику надо предсказуемый как топор тул, а оно превращается в "боинг" с дюжиной бортовых компьютеров, каждый из которых норовит пилота где-нибудь нае... "для вашего же блага". Но все-таки, в LLVM например никакой особой оптимизации нет, но багов - немеряно.
это ты наверное компиляторы для vliw и dsp не видел
> это ты наверное компиляторы для vliw и dsp не виделЯзык Цэ был разработан для PDP со всеми вытекающими.
> Язык Цэ был разработан для PDP со всеми вытекающими.Си сам по себе ничем таким ни vliw, ни DSP не мешает. Просто существующие кодогенераторы под них не делались, а прикрученые сбоку проволокой костыли "чтобы и для этих тоже код генерило. 100500-й по счету архитектурой" - работают именно так, как костыли на проволоке.
>товарищи, переходите на Clang. У нас хорошо :)Только что был баг - присваивание не работает.
NSLog(@"%@", self.deviceNameTextField.text);
self.currentName = self.deviceNameTextField.text;
NSLog(@"%@", self.currentName);Через временную переменную заработало.
А ранее я сталкивался с подобной мутью в крестах. Gcc работает нормально и, как выяснилось из недавних тестах, быстрее.
Животворящий перст Линуса способен заткнуть любую дыру в мироздании.
ох уж эта спешка чтоб за клангом угнаться...
Хотел побаловаться свежатинкой, а оно вишь как вышло - сам себе Буратино.Лучше бы о багах в ведре ведра думал, запарило каждый день критические апдейты накатывать.
А версию GCC с нулём на конце будет только школьник использовать.
В ядре не было никаких ошибок, ядро случайно вышвыривало Panic, если его собирали компилятором gcc 4.9.0 без оптимизаций и с отладочной информацией.
Версии с нулём на конце теперь считаются нестабильными? Понятно.
> Версии с нулём на конце теперь считаются нестабильными? Понятно.Нет. Они такими давно считаются. Во всяком случае что GNU'тые проекты, что MS'овские - раньше второго патч-релиза (читай, сервис-папка) юзать в продакшене стрёмно. Так было и, видимо, будет. Кому надо большей ответственности разработчиков - сидят на более "экзотических" платформах. Где порой нет новомодных плюшек, зато багов мало, да и те по большей части известны.
> А версию GCC с нулём на конце будет только школьник использовать.Не только школьник. Ещё тестировщик. Версия с нулём на конце для того и выпускается, чтобы девелоперы всяких разных проектов могли бы проверить, как их проекты уживаются с этой новой версией. Версия с 1 на конце, уже лучше, поскольку наиболее критичные баги исправили, но всё же её не стоит пихать в продакшн. Надо подождать когда 2 или 3 на конце появится, вот тогда...
Почитайте здесь о том, как организован процесс: https://gcc.gnu.org/develop.html
>> А версию GCC с нулём на конце будет только школьник использовать.
> Не только школьник. Ещё тестировщик. Версия с нулём на конце для того
> и выпускается, чтобы девелоперы всяких разных проектов могли бы проверить, как
> их проекты уживаются с этой новой версией. Версия с 1 на
> конце, уже лучше, поскольку наиболее критичные баги исправили, но всё же
> её не стоит пихать в продакшн. Надо подождать когда 2 или
> 3 на конце появится, вот тогда...ORLY? И эти люди толкуют, что окошечники шаблонно нажимают кнопочки, как обезьяны?
это идиот просто.
>>> А версию GCC с нулём на конце будет только школьник использовать.
>> Не только школьник. Ещё тестировщик. Версия с нулём на конце для того
>> и выпускается, чтобы девелоперы всяких разных проектов могли бы проверить, как
>> их проекты уживаются с этой новой версией. Версия с 1 на
>> конце, уже лучше, поскольку наиболее критичные баги исправили, но всё же
>> её не стоит пихать в продакшн. Надо подождать когда 2 или
>> 3 на конце появится, вот тогда...
> ORLY? И эти люди толкуют, что окошечники шаблонно нажимают кнопочки, как обезьяны?Вы о каких людях сейчас говорите? О разработчиках gcc? Вы уверены, что они толкуют об окошечниках? То есть, может быть вы и правы, но мне было бы любопытно видеть пруфлинк.
Он сам и не баловался, ему багрепорты прислали - пришлось вникнуть.
> Тем не менее, стоит отметить, что под огонь попала версия GCC 4.9.0, тогда как недавно вышел релиз 4.9.1 с исправлением ряда ошибок и пока нет данных о наличии в нем подобных проблем.Есть данные, нужно было всего-то прогуляться в багзиллу. Основная проблема о которой так сокрушается Линус присутствует в gcc начиная с версии 4.5.0 по версию 4.8.3, а также в версиях 4.9.0 и 4.9.1. Исправлена в еще не вышедших 4.8.4, 4.9.2 и 4.10.0. Вероятная причина, по которой проблема не проявляла себя в ядрах собранных gcc 4.8.3 и более ранними, скорее всего кроется в ином порядке применения оптимизаций. Подробности здесь: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904#c8 (комментарии 8, 9 и 10).
> Есть данные, нужно было всего-то прогуляться в багзиллу.Это так, но все-таки это не означает что надо вываливать как релиз черти-что, с глючным кодогенератором. У програмеров хватает своих багов, поэтому натыкаться на факт что компилер еще дополнительно поднаcpaл - удовольствие ниже среднего, сами понимаете.
Ну как я понял, проблема проявляется только если есть ассемблерные вставки, так что надо полагать, у них просто не было такого тест-кейса. А проблема с ветки 4.5 жила.
> Ну как я понял, проблема проявляется только если есть ассемблерные вставки, так
> что надо полагать, у них просто не было такого тест-кейса.Ну вот есть, вообще-то: ядро Linux. Как вариант, ещё и ядра других ОС, где без ассемблера тоже не обходится...
Как напишешь первый в мире кодогенератор без единого бага, приходи.
с такими темпами скоро будет новость "Линус Торвальдс выступил с резкой критикой linux kernel"
> "Линус Торвальдс выступил с резкой критикой linux kernel"Он каждый релиз ругается, в основном на объем коммитов в поздние RC :)
> Есть данные, нужно было всего-то прогуляться в багзиллу.ну да, что бы ни делать, только бы не работать!
В следующий раз он уже открыто скажит, что пора переходить на Clang.
И я с ним абсолютно согласен.
http://polly.llvm.org/
Свежие новости!
Линус Торвальдс выступил с резкой критикой GCC 4.9.0!
Фанаты шланга пророчат gcc-капец!
> скажит
> И я с ним абсолютно согласен.ну да, мнение такого безграмотного дебила, как ты — оно, конечно, очень важное.
> скажит,Позор!!! Школьник, не прогуливай русский язык в школе!
> что пора переходить на Clang.
В шланге багов - на три гцц хватит.
а что этому герою баги — он принципиально с багами пишет. по закону парности может и не замечать ничего.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....Щас скомпилят с этим флагом, новые баги полезут :)
gcc схоронили
> gcc схоронилиА шланг вообще зомбяк полудохлый, из могилы пытается высунуться, но спотыкается и отваливается обратно.
> gcc схоронилиПорвали два баяна?
А интересно, это только 64-битный компилятор такой бажный?