Version 32 (modified by 13 years ago) ( diff ) | ,
---|
This page is to log the progress of an initiative to reduce the number and impact of compiler warnings emitted from Boost code.
The priorities are:
- Boost headers: warnings emitted with a long template instantiation back trace are particularly troublesome.
- Boost source code: Users building Boost on their platform should ideally see a clean build with no warnings.
- Core libraries, that are reused by other Boost libraries.
The main test compilers and flags are:
- Microsoft Visual C++ (Current latest stable release is 2008), with /W4.
- GNU GCC (Current latest stable release is 4.4.x) with /Wall /Wextra -pedantic.
Consider these warning levels as an aspiration, leaving them unfixed only with good reason. Only time will tell what the correct balance between warning-suppression and time-wasting is.
In addition if library test cases can be made warning free, then we can begin to enforce a no-warnings policy by testing with warnings-as-errors with the above compilers.
Library | Owner | Status MSVC | Status gcc | Notes |
Any | ? | unknown | unknown | |
Array | ? | patch for MSVC | MSVC Patch | |
Bind | ? | Clean | Clean | Patches |
Call Traits | ? | See Utility | See Utility | See Utility |
Compressed Pair | ? | See Utility | See Utility | |
Config | johnmaddock | Clean | Clean | Only headers are clean, I haven't looked at the tests. |
Concept Check | ? | unknown | unkown | |
Conversion | johnmaddock | clean | clean | Except for one deliberate warning. |
Date Time | ? | Bug | ||
Enable If | ? | unknown | unknown | |
Exception | ? | unknown | unknown | |
Filesystem | ? | unknown | unknown | |
For Each | ? | unknown | unknown | |
Format | ? | unknown | unknown | |
Function | ? | warnings | clean | Patch |
Function Types | ? | unknown | unknown | |
Fusion | ? | warnings | warnings | |
Graph | ? | unknown | unknown | |
Hash | danieljames | Patches | clean | warnings in tests only. |
Integer | ? | unknown | unknown | |
Iterators | ? | unknown | unknown | |
Min Max | ? | unknown | unknown | |
MPL | ? | unknown | unknown | |
Multi-index Containers | joaquin | clean | clean | Tests warnings from Boost.Integer (gcc), Boost.Serialization and Boost.Test |
Operators | ? | unknown | unknown | |
Optional | ? | warnings | Both gcc and msvc, headers and tests | |
Parameter | ? | unknown | unknown | |
Pool | ? | unknown | unknown | |
Preprocessor | ? | unknown | unknown | |
Program Options | s_ochsenknecht | unknown | clean | |
Property Map | ? | unknown | unknown | |
Proto | eric_niebler | Warnings | Warnings | |
Regex | johnmaddock | Clean | clean | |
Serialization | ? | unknown | unknown | |
Smart Ptr | ? | unknown | unknown | |
Spirit | hkaiser(msvc) danieljames(gcc) | clean | unknown | MSVC warnings have been cleaned, gcc still needs investigation |
Static Assert | johnmaddock | clean | clean | |
Swap | ? | unknown | unknown | |
System | ? | unknown | unknown | |
Test | johnmaddock | Patches | A couple of tests still produce warnings: Jamfile issues? | |
Timer | ? | unknown | unknown | |
Thread | ? | Patch | ||
Tuple | ? | unknown | unknown | |
Typeof | ? | unknown | unknown | |
Type Traits | johnmaddock | Clean | clean | One test has (unfixable?) warnings with gcc. |
Unordered | danieljames | clean | clean | |
Utility | johnmaddock | clean | clean | result_of_test.cpp and verify_test.cpp assert_test.cpp and base_from_member_test.cpp still have warnings that are probably deliberate. |
Variant | ? | clean | clean | Warning still present in some tests from integer-conversion tests. |
Wave | hkaiser | unknown | unknown | investigating |
Please set the Status field above to one of:
- unknown - library hasn't been tested for warnings yet.
- warnings - we know that the library has warnings, but no one has done anything about it yet.
- bug - if a bug report has been filed on the trac (with link)
- patch - if a Trac patch has been filed (with link).
- clean - fixes are in Trunk.
- release - fixes are in release branch.
Note that warnings from dependencies are not considered issues against that library - they should be filed against the depedency instead.
Please set the owner field to the Trac user ID of the person currently investigating so that we don't duplicate effort.
Libraries can be tested by cd'ing into boost-root/libname/test and invoking:
bjam msvc warnings=all
or
bjam gcc warnings=all cxxflags=-Wextra