|
Boost : |
Subject: Re: [boost] Boost.DLL formal review is ongoing
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2015-07-04 12:31:23
On 3 Jul 2015 at 16:50, Vladimir Prus wrote:
> - Should the library be accepted?
Yes, conditional on the items below.
> - How useful is it?
It is useful, though not as useful as it could be.
> - What's your evaluation of
> - Design
The design is conservative and unsurprising, and is very similar to
probably what 90% of us here would have chosen, myself included if
one was tasked with an uncontroversial solution. I cannot fault it.
My only qualm really, and this is entirely my fault, is there is a
lack of type safety when loading symbols to a given type. This is my
fault because I had said I would write a demangler which could check
types matched, and I haven't had the time. If this feature existed,
it could detect type mismatches and therefore ABI mismatch rather
than just hoping a segfault should happen.
A poor man's implementation could instead do demangle both symbols
into a string, and do a nasty platform specific regex transformation
into strings which are comparable. Slow and inaccurate though
compared to a demangler based design.
> - Implementation
I don't see any good reason why this library needs to be dependent on
Boost. It uses little in Boost not also present in the C++ 11 STL,
the only major blocker I noticed is some limited use of the MPL which
is easily replaced with minimal constexpr as supported by VS2015.
CONDITION: It should therefore support standalone usage decoupled
from the rest of Boost on C++ 11 compilers. It can still use Boost on
C++ 98 compilers.
CONDITION: Namespace is not inline versioned on C++ 11 compilers. It
should be.
Otherwise implementation is very solid. I wouldn't expect any
different from Antony.
> - Documentations
CONDITION: BoostBook pages are missing badges for the CI test status.
Readme has them though.
CONDITION: No ability to launch example code in online web compiler.
There is no acknowledgements section, and for good form there
probably should be.
Otherwise very good. I think I had sent Antony a list of docs
problems last year, and he must have fixed them because I spotted
nothing which particularly bothered me (that other reviews haven't
already reported).
> - Tests
CONDITION: No Appveyor integration.
CONDITION: I saw a Coverity scan, but no clang-tidy + clang static
analyser. A MSVC static analyser pass would do no harm either.
CONDITION: The unit tests are not run under valgrind memcheck by
default.
Travis doesn't seem to have OS X testing enabled. The docs mention OS
X isn't working yet, so that is understandable.
Tests seem more functional than unit testing, but that is acceptable.
I'm the same in AFIO.
> - How much effort did you put into your evaluation?
About an hour, though I have been watching the development for a long
time. I even promised some code I failed to deliver upon :(
> - Did you attempt to use the library? On what systems and compilers?
Not on this occasion, but I did last year on Linux and Windows. It
worked fine then.
Niall
-- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk