|
Boost : |
Subject: [boost] [netlib] Update: 0.9 will not be header-only
From: Dean Michael Berris (mikhailberis_at_[hidden])
Date: 2010-12-03 11:45:41
Hi Everyone,
To those who are following the development of cpp-netlib (which shall
be submitted for review /soon/ as Boost.Netlib), the current state of
0.9-devel and thus what's going to come out officially as 0.9 in a
couple of weeks, will not be header-only. Aside from the obvious
reason that the compile-times are starting to become unbearable (>10
minutes to build the whole test suite!!) and after noticing that the
intended simplicity of the API with tag-metafunction dispatch is
limiting the expressiveness of the HTTP client types, the 0.9 release
will be the first release that will require an externally linked-in
static library.
The biggest culprit at the moment has been the implementation of the
URI parser that uses Boost.Spirit Qi and >10 rules in the URI parsing
grammar. The URI implementation is really declarative and nicely
written (thanks go out to Jeroen Habraken for making that happen). The
down-side of this has been the compile times: building the simple HTTP
client takes close to one minute on the machine I'm using -- and by
moving it to an externally-linked static lib, the compile of the same
HTTP client is cut down to 10 seconds. Before you ask if I'm using
GCC, the answer is no, I'm using Clang when developing so that I get
as much speed as I can when doing the edit-rebuild-test cycle.
I've written about what I've been doing and what I'll be doing in my
three recent articles at C++ Soup. If you want to get more details,
please follow the links below.
http://cplusplus-soup.com/2010/12/03/cpp-netlib-moving-away-from-header-only/
http://cplusplus-soup.com/2010/12/02/cpp-netlib-demolition-day/
http://cplusplus-soup.com/2010/12/01/cpp-netlib-reducing-compilation-times/
Have a great weekend everyone, please send your
qestions/comments/suggestions over either directly to me or through
the various mailing lists (Boost-devel, Boost-users,
cpp-netlib-devel).
-- Dean Michael Berris deanberris.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk