Linus Torvalds、GCCのバグに強烈なダメ出し 42
ストーリー by hylom
平常運転 部門より
平常運転 部門より
あるAnonymous Coward 曰く、
気にくわない技術については容赦ない批判の言葉を浴びせかけることで知られる、Linuxの生みの親Linus Torvalds氏が、GCC 4.9.0でバグを発見し、これに対し「末期的に壊れている」と批判している(/.、本の虫)。
発端は、Linux 3.16-rc6のロードバランス機能でランダムにカーネルパニックが発生するという問題が発生していたこと。その後GCCのコード生成に問題があったことが分かり、LKMLに対し経緯を説明するメールを投げている。
その後、Torvalds氏が直接GCCのBugzillaにバグレポートを投げているが、さすがにこちらはほとんど罵詈雑言はなく普通の(とはいえ十分鋭い)バグレポートとなっている。
コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:5, すばらしい洞察)
コンパイルオプション-Osはおそるおそる、慎重に、色々試しつつ使った方がよいかも。
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56015 [gnu.org] も-Osで出てくるバグでした。
鋭くないバグレポートでもすぐに直してくれました。
FLOSSにバグを見つけたら、怖がらずにどんどんバグレポートをするとよいです。
Linusでなくても、アセンブラを知らなくても、誰でもできます。
そのソフトウェアも自分のスキルもよりよくなります。
love && peace && free_software
t-nissie
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:5, 参考になる)
最近のGCCはbugzillaの対応が早いですね.私も時々レポート投げますが,毎度すぐに返事が来てびっくりします.
GCCは,redhat等の企業がリソースを投入しているという点も大きいですが,
テストケースも充実していて regression bug 等はすぐに検出&修正されてるようです.
コード自体も随分綺麗になったようで,GCC-4.9 だと asanとかtsanのような新機能もすんなり実装されています.
以前のGCCといえばバグだらけで毎回LinusがLKMLでぶち切れるのが普通だったんですが,
最近のGCCは出来が随分良くなった結果,たまにLinuxがぶち切れるとそれ自体がニュースになるみたいですね.
裏返すと,それだけGCCはプロジェクトとしてもコンパイラとしても円熟してきた,ってことなんだと思います.
Re: (スコア:0)
GCCはプロプライエタリなソフトウェアへ不正に流用されないようわざとモノリシックかつ難解に作っていたという話ですが、clangの登場でケツに火がついたんでしょうね。
Re:bugzillaといえば (スコア:1)
話題はBugzillaへのリポートに対する返事のことですよね?
リポート、出してます?
Re: (スコア:0)
おま環に100カノッサ
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:5, 参考になる)
ごめんなさい。
56015は-Ofastで出てくるバグでした。
-Osはサイズの最適化です。
-Osはそんなに慎重になる必要はない気もします。
https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Optimize-Options.html [gnu.org]
love && peace && free_software
t-nissie
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:1)
でも英語は必要なんだな。誰でもできるってことはなく、ここ読んでる人の10人に一人ってとこか。
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:2, すばらしい洞察)
英語はともかく、
・本当にコンパイラのバグだと絞り込む
・レポートに投げられる大きさで、再現性のあるテストコードを作る
のが面倒なので確かに10人に一人かもしれません。
Re: (スコア:0)
英語も時間をかけて読み書きできないことはないけど、
斜め読みできるだけのスキルはないから、
長文になると面倒です。
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:1)
Google翻訳やExcite翻訳を駆使。
翻訳元の日本語は短く、平易な文章で。
でも、パッチはちゃんと書く。
これで何とか。
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:1)
翻訳元の日本語
むしろ逆に使った方が良かったりして。
英文を書いて、それを日本語に翻訳してチェック。
Re: (スコア:0)
「英文を書いて」の時点で挫折必至orz
日本語→英語→日本語 で意味が変わっていなければOK・・・だよね?
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:1)
最近すげー間抜けな文法のミスに投稿したあとで気付いてしょんぼり。
ま、まあ、バグレポートそのものには影響がない、はず...
Re: (スコア:0)
オフトピですが、なんというか、日本人が外国語を使うという事において、日本人自身が寛容ではなさ過ぎるのはすごく問題だなー、と常々思います。
適当な文法でも、向こうの人はこっちが思う程どうとも思ってません。
日本人が、向こうからの旅行客に片言の日本語言われて、微笑ましい気持ちになるのと同様でしょう。
というか、昔読んだアメリカ人が書いた英語の参考書によれば、向こうの人だってChildrenを普通にChildsって言ったりしてるし、気にしてないそうで。
多少ぶっ壊れた英語でも全体的な流れを掴むのが先で、しょうもない細かな文法や単語は後で覚えろ、と。
ふと、温泉で外人と会って、外人と英語でちょっぴり話してみたら、側にいた友人に爆笑されてなんか恥ずかしい思いをしました。
それを恥ずかしいと思う自分にも問題があるのかも知れませんが、つたないとはいえ、英語話すだけで馬鹿にした様に爆笑する友人にもちょっと苛立ちを覚えたり。
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:1)
同感です。私は気にしない(できない)んで、逆によかったなと思っています。
文法に気を遣い正確な「翻訳」を目指すがあまり、表現全体に無頓着で言いたいことが言えてないってのがあるよーな。
# fail to do をコピペって succeed to do って書いちゃったの。成功したのかよ? してないのかよ? 的な
Re:コンパイルオプション-Osはおそるおそる使った方がよいかも (スコア:1)
カーネルとかなら無理かもですが(kexec + kgdbとか使えば行ける?)、なんか期待に反してこういう動作してますというのと、怪しい部分のスタックダンプを流すだけでも結構行ける感じが。
Re: (スコア:0)
別に哲学やシェイクスピアを語り合おうって訳じゃないんだ。
俺らのダメ英語でも、google翻訳に添削してもらえば意味くらいは通じるでしょ。
Re: (スコア:0)
語彙(専門用語を除く)や構文としては、中学生英語で十分だと思います。
むしろ、誤解がないように書くところに神経を使います。
部分否定なのか全否定なのか、とか、
onlyとかjustの使い方(どこに入れるか)とか。
どんな仕事をするにせよ、英語は必要となる確率が高いから、勉強しておいたほうがいいと思います。
むしろ、実地で無料で勉強できる機会だと思えば。
Re: (スコア:0)
プログラマには決してハードルの高い言語じゃない。
Re: (スコア:0)
プログラミング言語並みに構文解析しやすければ(泣)
Re: (スコア:0)
ソフトによると思いますが、自分が購読しているバグトラッカーのフィード見てると、かなり残念な英語のレポートもよく見かけます。
それでいいとは言いませんけど、意味が通ればいいというくらいの意識でもいいと思いますよ。
無理に言葉にしなくても、再現するケースをコピペするとか。
開発者側にたてば、そういう情報を得ることのほうがよっぽど大事だと思ってます。
Re: (スコア:0)
近頃、もらってきてmakeするだけという事がほとんどで
自分でコンパイルオプションを弄くって・・・なんて事自体
なくなってきたなあ。
Re: (スコア:0)
技術力の無い私が今回の様な目に遭ったら
もっと怒り狂うと思う
仕事がらみだったらなおさら
Re: (スコア:0)
いや、
「よかったぁ、これで客に言い訳できる……」
# 上流のバグだと説明できるのは責任を投げられるから……
末期なら動くんじゃ? (スコア:2, すばらしい洞察)
GCCの信頼性も上がったよね。
昔はgcc x.y.zのy>zは使えないと言われたものだけど。
最新のGCCでカーネルを躊躇なくコンパイル出来るなんて、4以降だろうか。なんかすごい。
Re: (スコア:0)
良くも悪くも、gccの新しいのが出てもワクワクしなくなった。
Re: (スコア:0)
このごろ4系のGCCのzは3から4あたりで打ち止めみたいです。ということは…4.5以降は使い物にならない!
Re: (スコア:0)
> 昔はgcc x.y.zのy>zは使えないと言われたものだけど。
今はy=9だから、さすがにその法則は無理じゃね?
Re:末期なら動くんじゃ? (スコア:1)
まあ、 バージョン 4.9.11 とか、ありそうではあります。
4.9.20140729 とかもね。
大物対決 (スコア:1)
どうせならLinus氏とStallman氏の直接対決を見てみたい。
Re: (スコア:0)
Theo:どうせ俺は仲間外れだ
Re:大物対決 (スコア:5, おもしろおかしい)
Tanenbaum:いいぞもっとやれ
Re: (スコア:0)
テオは想定内だったが、タネンバウム先生が外野で野次っている光景を思い浮かべて腹筋崩壊した。
Re: (スコア:0)
もうStallman氏はメンテから外れていたような。
ダメなら自分で (スコア:0)
ふと思った、Linus Torvalds氏が、
GCCじゃダメだと別のコンパイラの作ったらどうなるだろう?
ちょっとワクワク
Re:ダメなら自分で (スコア:5, 興味深い)
Linusが作った訳ではないですが,GCC以外のコンパイラとしてllvmのclangを使おうというプロジェクトがあります.
http://llvm.linuxfoundation.org/index.php/Main_Page [linuxfoundation.org]
Linuxのカーネルは GCC固有の拡張機能を使って記述した部分があるので,現時点ではclangでコンパイルできませんが,
開発はほぼ完了しているそうで,
順調に行けば 3.16 あたりで成果がマージされて, GCC だけでなく clangでもカーネルがビルドできるようになるそうです.
http://www.phoronix.com/scan.php?page=news_item&px=MTY2MjY [phoronix.com]
GCC以外のコンパイラが使えるというのは,開発者側にも利用者側にもメリットがありそうです.
Re: (スコア:0)
いつぞやのGNOMEの一件みたいに、パッチ付きでバグレポートしたのかと思いきや普通のバグレポートだから、実はそれほど怒ってないのかも。
このあと炎上して、ここをこうするんだよボケッとなったら何かが始まる予感。
Re: (スコア:0)
うんこmakefile程度なら何とかなるけど、gccがうんこだと
末端のサンデービルダーにはどうにもならないな・・・
Re: (スコア:0)
gccとLinuxカーネルの組み合わせだったら、大丈夫なgccバージョンに戻せばいいだけだから
末端は気にしなくても大丈夫
コンパイラのバグとか言ってる奴は99%自分が悪い (スコア:0)
Linusは1%のほうってことでよかですか?
Re:コンパイラのバグとか言ってる奴は99%自分が悪い (スコア:1)
それ自体はそのままだろうけど、カーネルで大量のバグ修正見てれば、そのうちぶつかるだろうからねぇ...
# 1%ってことは100件のバグレポに1件ある(はギャグだけど)
M-FalconSky (暑いか寒い)