パスワードを忘れた? アカウント作成
10024 story

GCC 4.0.0リリース 42

ストーリー by Oliver
スクリーンショット募集中 部門より

GNU Compiler Collectionバージョン4.0.0がリリースされた。Changelogによると多数の改良が加えており、AdaからJavaまでの対応する全ての言語に改善が見られるだけでなく、共通の最適化フレームワークとしてSSAに対応(Wikipedia解説LWN解説)し、それを使った自動ベクタ化などの最適化が実装されている。また、C++に関してはコンパイルが高速化され、シェアードライブラリのシンボルテーブルに関する最適化に伴い、gcc 4.0でコンパイルされたKDEやOOoなどの大きなC++プログラムの起動時間がかなりスピードアップするという。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2005年04月22日 19時23分 (#726558)
    gfortranになってようやくFortran95がサポートされるようになったわけですね。
    数値計算であるならばやはりFortranは使いやすいと思います。Fortran95はMATLABを参考にされているというウワサですし。
    なにはともあれフリーで使えるFortran95の環境がひとつ増えたことを歓迎したいです。
    • by Anonymous Coward on 2005年04月22日 20時17分 (#726571)
      そうは言っても最近はC/C++とFortranやPascalの違いや各処理系の特徴が分からない人が多いですからねえ. 何にでもC++が最高という人の相手をするのにはほとほと困ります.

      なおFotran95とMATLABは無関係のはずですが.
      親コメント
      • by Anonymous Coward
        >なおFotran95とMATLABは無関係のはずですが.

        ええとそうでしたっけ?わたしはぜんぜん疎いのですが,「強力な配列(行列)処理命令などは露骨にMATLABの影響を受けたもの」というウワサをネット上で見たことがあったように記憶していたのですが...
        #それはFortran90のことですか?

        • 強力な配列(行列)処理命令、の起源をいうと APL あたりを引き合いにすることはあっても、MATLAB と言われることはあまりないでは。

          %% APL の処理系は 20年前に使ったきり...
          %% 結構衝撃的だったよなぁ。

          --
          親コメント
          • by Anonymous Coward
            > APL あたりを引き合いにすることはあっても、MATLAB と言われることはあまりないでは。

            強力の意味が違うって。MATLABをロクに使ったことがない人に限って、こういう知ったかぶりなことを言いますよね。MATLAB
      • by Anonymous Coward
        > 何にでもC++が最高という人の相手をするのにはほとほと困ります.

        僕は逆に、 FORTRAN でしか書けないから、って FORTRAN のコードに悩まされています
        そーゆーのってだいたい FORTRAN77 + 非標準拡張

        C/C++ ならもっと書きやすいのになぁ、と
        • by Anonymous Coward
          FORTRAN77 + 非標準拡張 ではなくて, FORTRAN77 + VMS拡張なのでは?(例えば,end doとか,formatのなかでの$は改行の抑制とか.そういえば倍精度複素数もVMS拡張ですね.)

          VMS拡張なら,事実上どのFORTRANコンパイラでも対応していますよ. ただ,なかなかドキュメントの中ではVMS拡張とは述べていないので, 気づきにくいですが.

    • by Anonymous Coward
      私は 90 までしか知らないのですが、
      数値計算屋さん界隈ではもう 95 が主流なんでしょうか。
  • by nox_dot (11614) on 2005年04月23日 1時28分 (#726690) 日記
    Fedora Core 3用に、いろんなRPMをがむしゃらにPentium4に最適化コンパイルしたパッケージを
    http://sea-mew.jp/nox/modules/xfsection/article_1.html
    で展示しています。もっぱら個人用ですが、一緒に遊んでくれる人がいれば、
    http://sea-mew.jp/nox/modules/rpms/viewrpms.php?dirname=pentium4
    からRPMを取れます。

    コンパイラはgcc3.4とgcc4.0をつかっていますので、Pentium4でgcc4.0に興味のある方はどうぞ。
    ただ、openofficeなどはコンパイルできていないので、起動の早さは試せていません。SRPMを、ただリコンパイルしているだけなので、build環境が悪いのかもしれません。リコンパイルできた人は情報を頂けるとうれしいです。
    • ベンチマークで他のコンパイラと比較したものないの?
      • 姫野ベンチの結果を一応取っていますが、あまりベンチマークを重要視していないので、それ以上の調査はしていません。
        Pentium4の最適化での姫野ベンチ(Sサイズ)の結果は
        gcc34 -O2 206.9 MIPS
        gcc34 -O3 205.4 MIPS
        gcc34 -O6 201.3 MIPS
        gcc34 -O6 -ffast-math 205.4 MIPS
        gcc40(2004/10) -O3 166.2 MIPS
        gcc40(2005/4) -O3 210.1MIPS

        その他の説明は
        http://sea-mew.jp/nox/modules/xfsection/article_1.html
        にあります。
        親コメント
    • むしろiccでコンパイルしたものが欲しい。
      • 実は、iccコンパイルバージョンもあるのです。非商用版ライセンスしかもっていないので、ライセンスの問題が不安なのでパブリックにしていないだけなんですよ。
        実験用途で公開するならセーフであるような来もするのですが、はっきりと問い合わせていないのでなんともいえません・・・。
        また、コンパイルできたパッケージを全部iccバージョンに入れ替えてみましたが、結構不安定になってしまいました。
        (Fedora Core 1/2で試したので、そもそも少し不安定だったのかもしれませんが、Fedora Core 3 + gcc3.4(Pentium4最適化)ではかなり安定しています。)
        親コメント
  • by ken-1 (4041) on 2005年04月22日 19時12分 (#726555)
    いまでもVRAMをワークエリアに使ったりするのかと思った。
  • cast-as-lvalues (スコア:2, 参考になる)

    by iwa (2980) on 2005年04月22日 19時53分 (#726566)
    gcc 4.0来春登場 - 互換性・速度に課題も [mycom.co.jp]」の、「cast-as-lvalues」問題って解決したの?
    ChangeLogを見ると、C, Objective-Cのところにだけ書いてあるので、C++については復活?
    • Re:cast-as-lvalues (スコア:4, 参考になる)

      by Anonymous Coward on 2005年04月22日 22時11分 (#726621)
      cast-as-lvalueはgcc 3.4の時点でC/Objective-Cに関して非推奨扱い、C++に関して完全廃止。gcc 4.0でC/Objective-Cに関しても完全廃止になった。

      おまけ: 重要な更新部分のいい加減な意訳

      Caveats
      • デバッグ情報の付加と最適化の両方を有効にしてコンパイルすると位置リストを生成するようになった。GDB 6.0以前は位置リストを見付けるとクラッシュする。GDB 6.1以降なら大丈夫だ。-fno-var-trackingを使えば位置リストを生成しなくなる。

      • -fwritable-stringsは無くなった。書き込み可能な文字列が必要ならば配列を使え。

      • -freduce-all-givsと-fmove-all-movablesは無くなった。これらのオプションは新しい最適化フレームワークにはもう必要無い。

      • 以前-fnew-raで有効になったgraph-coloring register allocatorは廃止された。

      • -I-は非推奨になった。代わりに-iquoteを使うように。

      • MIPSの-membedded-picと-mrnamesは無くなった。

      • MIPSターゲットでGNUアセンブラが必須になった。特にIRIXでMIPSproアセンブラが使えなくなった。MIPSproリンカはまだ使える。

      • SPARCの-mflatは無くなった。

      • UTF-8ロケールにおける英語の診断メッセージはUnicodeの引用符を使うようにった。都合の悪い奴は環境変数のLC_CTYPEやLC_ALLを設定するように。Unicodeの引用符についてはMarkus Kuhnの説明を参照してくれ。

      • 殆どの環境でspecsファイルはインストールされなくなった。specsファイルを編集する必要があるなら-dumpspecsを使って生成してそれを編集するように。

      ちなみに位置リストってのは高級言語の変数と低級言語のレジスタ/メモリの対応を追跡するための情報。
      親コメント
  • Cパーサが (スコア:2, 参考になる)

    by ef (25263) on 2005年04月22日 20時18分 (#726572)
    (bisonではなく)手書きの再帰降下パーサに変更されたってのも大きな変化ですね。
    C++ のメンバー宣言か関数呼び出しか曖昧なコード(の一部?)が正しくコンパイルできるようになった様です。
  • by locate (5848) on 2005年04月22日 21時17分 (#726595) 日記
    4/29発売のMacOSX10.4にはgcc4が採用されているという話でしたが、
    どのバージョンが載ってるんでしょうね?
    MacOSX10.4のCD-ROM(DVD-ROM?)を量産し始めた時点では、
    gcc4はリリースされていなかった訳だし。
  • >KDEやOOoなどの大きなC++プログラムの起動時間がかなりスピードアップ

    これは魅力的だなぁ。各ディストリビューションがこれでコンパイルされたパッケージを採用するのはまだ先のことになりそうですが、Gentoo Linux なんかだとけっこう早く恩恵にあずかれたりするのかな。
    --
    屍体メモ [windy.cx]
  • by Anonymous Coward on 2005年04月22日 22時35分 (#726627)
    libgcjにJITサポート(gcjをJITとして使う)が入ってますね。
  • by Anonymous Coward on 2005年04月22日 19時49分 (#726564)
    libgcc_s.so.1 や libstdc++.so.6 は
    バージョン変わるのでしょうか?
    3.4.3 と共存させたいのですが。
  • by Anonymous Coward on 2005年04月22日 22時46分 (#726632)
    全部SSAの上でやりゃいい、ってモンでもないと思うのだが……。
    字面による最適化はそれなりに利点もあるし、逆SSA変換は結構難しいし。
  • by Anonymous Coward on 2005年04月23日 0時08分 (#726664)
    The Great Computer Language Shootout Benchmarks [debian.org]で、Dが一位だYO!!
    1.0が出て仕様が固まらないことには、採用はありえないだろうけど。
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...