Subject: [boost] [PREDEF] Review
From: Ioannis Papadopoulos (ipapadop_at_[hidden])
Date: 2012-02-29 18:00:02
> - What is your evaluation of the design?
The design is straightforward and I find it nice, with some exceptions:
- BOOST_ARCHITECTURE_* is too long (BOOST_ARCH_* is better)
- BOOST_LANGUAGE_* is too long (BOOST_LANG_* is better)
- BOOST_CXX would be better if called BOOST_COMPILER or BOOST_COMP
- There has to be some macro for compilers that do emulation (for
example Intel, PathScale etc appear also as gcc).
- I do not like the fact that all macros are defined with a 0 when the
compiler/arch/whatever is non-existant. I prefer to do
# ifdef BOOST_CXX_GNU
# if BOOST_CXX_GNU
- BOOST_VERSION_NUMBER allows only 3 numbers. I don't think that this is
the case for all compilers/libraries.
- There are some platforms that have unique features (for example Cray
machines, IBM BlueGene etc). A BOOST_PLATFORM_* macro would be nice.
> - What is your evaluation of the implementation?
Including one file includes pretty much everything. It would be more
straightforward if everything was in one file (for example merge
everything in architecture/ in architecture.h). This also solves the
issue of defining macros for things that don't exist.
> - What is your evaluation of the documentation?
No considerable problems with the documentation. Maybe it should be
mentioned what the library supports.
> - What is your evaluation of the potential usefulness of the library?
I already have something similar in a lot of my codes. I would gladly
remove them and use predef - especially if it detects also platforms.
> - Did you try to use the library? With what compiler? Did you have
Yes, PathScale is recognized as both gcc and pathscale.
> - How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
A quick reading of the documentation and the code. I ran a small test case.
> - Are you knowledgeable about the problem domain?
> - Do you think the library should be accepted as a Boost library?
I think that it should be ACCEPTED with the requirement that all issues
have been resolved; especially the compiler recognition.