![]() |
Home | Libraries | People | FAQ | More |
Introduction
Compiler Status Tables
Understanding the Tables
Acknowledgements
Will all boost libraries work with your compiler? Unfortunately, the answer is "it depends.".
Boost libraries rely on modern C++ features such as templates and the C++ Standard Library. Most modern compilers support those major features fairly well. But even today, years after the adoption of the C++ Standard, some compilers still don't support important minor features like partial template specialization.
Boost library authors often expend a great deal of effort trying to work around compiler deficiencies. Nevertheless, some libraries will not compile at all with certain compilers or may have crippled functionality. Even if the current release of a compiler supports a boost library, older versions of the compiler may not work properly.
Boost releases are run through regression tests which automatically generates Compiler Status Tables for various platforms. Unless otherwise indicated, the C++ Standard Library implementation is the one shipped with the compiler.
The compiler status tables summarize the results of the regression tests.
Warnings:
Select the Current Release links if you want to know the status relative to the current release code from the www.boost.org web site.
Select the CVS links if you want to know the status of the code in the Boost CVS repository. The CVS code is being updated several times a day, so it may contain bug fixes, compiler workarounds, new features, and even whole new libraries. It may be unstable, however.
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 |
A table might look like this:
Run Date: 21 Sep 2001 15:31 GMT
System Configuration: Microsoft Windows 32bit
Program Test
TypeBelchFire
Rev 5280WorkHorse
5.3libs/foo/test/foo_test.cpp compile Pass Pass libs/bar/bar_test.cpp run Fail Pass
The Run Date is important because the regression tests which create the status tables are run asynchronously, and thus may not represent the most current Boost release.
The Program column identifies the actual source file for the test. Each row in the table represents a different test.
The Test Type column identifies the type of test performed:
Test Type | Action | Required to Pass | Description and Use |
compile | compile only | Compiler returns 0. | Verify that a source file will compile correctly, but without any attempt to link or execute. Used when factors such as possible object library unavailability make a run test impractical. |
compile-fail | compile only | Compiler must return non-zero. | Verify that a source file fails to compile. Used to verify that an expected compile-time error was detected. |
link | compile, link | Both compiler & linker return 0. | Verify that a source file will compile and link correctly, but without any attempt to execute the result. Used when factors such as possible data file unavailability make a run test impractical. |
link-fail | compile, link | Either the compiler or linker must return non-zero. | Verify that a source file fails to compile and link. Used to verify that error detect which depends on unresolved externals works correctly. |
run | compile, link, execute | Compiler, linker, and executable must all return 0. | Verify that a source file compiles, links, and the resulting program executes correctly (as indicated by a zero return code.) This is the primary test type for most uses. |
run-fail | compile, link, execute | Both compiler and linker must return 0, and the executable must return non-zero. | Verify that a source file compiles and links correctly, and that execution of the resulting program detects some error. Used to verify runtime error detection code works properly. |
Each remaining column in the table represents the individual compiler indicated. Unless otherwise indicated, the C++ Standard Library implementation is the one shipped with the compiler. A Pass entry indicates success for the indicated Test Type, while a Fail entry indicates failure. See Required to Pass in the above table for specifics.
The compiler status tables have been prepared with resources donated by a number of individuals, educational institutions, and companies. Boost would like to thank them for their support.
Note, however, that Boost does not endorse any product or service, nor does Boost guarantee that some or all of its libraries work with any of the products or services mentioned above.
Revised 11 October 2002