c++boost.gif (8819 bytes) Home Libraries People FAQ More

Compiler Status

Introduction
Compiler Status Tables
Understanding the Tables
Acknowledgements

Introduction

全ての Boost ライブラリはあなたのコンパイラで動くのか?不幸なことに、 答えは「コンパイラに依る」だ。

Boost ライブラリはテンプレートのような現代的な C++ の機能と C++ 標準 ライブラリに依っている。多くの現代的なコンパイラはそれらの有名な機能をな かなか良くサポートしている。しかし C++ 標準の採択から数年を経た今となっ ても、いくつかのコンパイラは部分特別化のような、重要なマイナー機能をサポー トしていない。

Boost ライブラリの作者はしばしば機能の不足しているコンパイラ環境で作 うまく動かそうとしてたくさんの努力を費やす。それにもかかわらず、いくつか のライブラリはいくかのコンパイラで全くコンパイルされないか、機能を減らさ れているかもしれない。たとえコンパイラの最新リリースが Boost ライブラリ をサポートするとしても、古いバージョンのコンパイラは正しく動かないかもし れない。

Boost のリリースには様々なプラットホームで Compiler Status Table を自 動的に生成する 退行テスト が実行さ れている。特に明記しない限り、C++ 標準ライブラリの実装はコンパイラに同梱 されるものである。

Compiler Status Tables

Compiler Status Tables は 退行テス ト を要約したものだ。

Warnings:

もし www.boost.org ウェブサイトの最新 リリースのコードに対してのステータスを知りたければ、最新リリース リンクを選択しなさい。

もし Boost CVS レポジトリ の コードに対してのステータスを知りたければ CVS リンクを選択しなさい。 CVS コードは数日ごとに更新され、それはバグフィックスや、コンパイラ対応や、 新しい機能や、全く新しいライブラリを含んでいたりする。それはしかし不安定 であろう。

Operating System Current Release CVS Contributed by
Apple Mac OS X Table
Messages
  Darin Adler
Compaq Tru64 Unix 5.0 Table
Messages
Times
  Jens Maurer in cooperation with Ralf W. Grosse-Kunstleve
HP/UX 11.0 Table
Messages
Times
  Jens Maurer in cooperation with Thomas Matelich and Hewlett-Packard
IBM Aix
 
Table
Messages
  Toon Knapen
Linux x86
 
Table
Messages
Times
Full results Jens Maurer
Microsoft Windows 2000
 
Table Full results - Recent changes emphasized
More choices
Beman Dawes
SGI IRIX 6.5 Table
Messages
Times
  Jens Maurer in cooperation with Ralf W. Grosse-Kunstleve
Sun Solaris SPARC 2.8
 
Table
Messages
Times
  Jens Maurer in cooperation with Andrew Lumsdaine

Understanding the Tables

表はこのような外見だろう:

Run Date: 21 Sep 2001 15:31 GMT

System Configuration: Microsoft Windows 32bit

 

Program Test
Type
BelchFire
Rev 5280
WorkHorse
5.3
libs/foo/test/foo_test.cpp compile Pass Pass
libs/bar/bar_test.cpp run Fail Pass

Run Date は退行テストは非同期で行なわれたステータス表を作成す るので、重要である。それゆえに多くの最新リリースを表していないだろう。

Program という列はテストの実際のソースファイルを示している。表 の中のそれぞれの行は異なるテストを示している。

Test Type という列は行なわれるテストの 種類を表している:

Test Type Action Required to Pass Description and Use
compile compile only コンパイラが 0 を返す。 ソースファイルが正しくコンパイルされるかどうかを検査する。し かしリンクや実行の試験は全くしない。必要なオブジェクトライブラ リが入手困難であるなど、実行テストが非現実的な場合に使われる。
compile-fail compile only コンパイラは非 0 を返さなければならない。 ソースファイルがコンパイルに失敗するかどうかを検査する。予期 されたコンパイルタイムエラーが発見されるかどうかを検査するため に使われる。
link compile, link コンパイラとリンカが 0 を返す。 ソースファイルが正しくコンパイルされてリンクされるかどうかを 検査する。しかし実行のテストは行なわない。必要なデータが入手困 難であるなど、実行テストが非現実的な場合に使われる。
link-fail compile, link コンパイラかリンカが非 0 を返さなければならない。 ソースファイルがコンパイルとリンクに失敗するかどうかを検査す る。未解決の外部作業に依存するエラーを正しく確認するために使わ れる。
run compile, link, execute コンパイラ、リンカ、実行ファイルが全て 0 を返さなければなら ない。 ソースファイルが正しくコンパイル、リンクされ、出力されたプロ グラムが正しく実行されるかどうか (リターンコードが 0 であること よって判定する) を検査する。これは大部分の使用のための主なテス トタイプである。
run-fail compile, link, execute コンパイラとリンカは 0 を返さなければならず、実行ファイルは 非 0 を返す。 ソースファイルが正しくコンパイル、リンクされ、出力されたプロ グラムの実行でエラーを発見するかどうかを検出する。実行時エラー を発見するコードがきちんと動くかどうかを検査するために使われる。

テーブルの残っているおのおののカラムは、記されている個々のコンパイラ を表わす。特に明記しない限り C++ 標準ライブラリの実装はコンパイラに同梱 されるものである。Pass エントリは Test Type の成功を示し、 一方、Fail エントリは失敗を示す。詳 しくは上記テーブルの Required to Pass を参照のこと。

Acknowledgements

コンパイラステータステーブルはたくさんの個人、教育機関や会社によって 贈与されたリソースを用いて作成されている。Boost は彼らのサポートに感謝し たいと思う。

注、しかしながら、Boost はいずれの製品やサービスの裏書もしないし、い くつかまたは全ての Boost ライブラリが、上記製品やサービスどれかと共に機 能することを保証しない。


Revised 11 October 2002


Japanese Translation Copyright (C) 2003 shinichiro.h <g940455@mail.ecc.u-tokyo.ac.jp>.

オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の 複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」 に提供されており、いかなる明示的、暗黙的保証も行わない。また、 いかなる目的に対しても、その利用が適していることを関知しない。