Boost logo

Boost :

Subject: Re: [boost] [MPL] A Proposal
From: Edward Diener (eldiener_at_[hidden])
Date: 2016-11-13 00:47:14


On 11/12/2016 5:26 PM, Bruno Dutra wrote:
> On Mon, Feb 29, 2016 at 1:52 PM, Bruno Dutra <brunocodutra_at_[hidden]>
>> [snip]
>>
>> 2016-02-29 6:37 GMT-03:00, Jens Weller <JensWeller_at_[hidden]>:
>>> [snip]
>>> Do you compile as fast as Brigand?
>>
>> My next efforts will be directed toward developing a framework for
>> running benchmarks. I'll be sure to add Brigand, as well as other
>> alternatives of which I am aware, for comparison purposes.
>
> At last, after almost 9 months, I think it is time I properly address this
> question. It is unfortunate that it took so long, but up until recently the
> compile time performance of metaprogramming libraries simply couldn't be
> assessed due to the lack of proper tooling and arguing on this matter would
> have been in vain.
>
> As some of you may know from some of his talks, Louis Dionne and I decided
> to team up and develop a comprehensive yet simple set of tools that would
> make it easy to benchmark metaprogramming techniques and as such provide
> feedback to the development of faster metaprogramming libraries. This is
> how Metabench came to be, in very few words a drop in CMake module that
> provides a concise API to generate charts out of compile time benchmarks.
>
> Using Metabench we then set up a comprehensive collection of compile time
> benchmarks to assess the performance of well known metaprogramming
> libraries (currently Boost.MPL, Boost.Fusion, Boost.Hana, Metal, Meta and
> Brigand), whose up to date results for several versions of GCC and Clang
> are published daily at Metaben.ch [1].
>
> Now, finally, back to the question: Yes, Metal compiles just as fast as
> Brigand on both Clang and GCC and even considerably faster for some
> algorithms [1].
>
> I should also mention that meanwhile I have completely overhauled Metal a
> few too many times already to make sure I explored all the possibilities
> modern C++ offers TMP and even though it's still subject to some minor
> refactoring, I'm confident that its current API is close to what will
> eventually make it to a stable release. In fact I've already written most
> of the reference documentation as I don't expect it to change significantly
> anymore and as such I'd like to invite all of those interested in
> metaprogramming to take a look at it [2]. Any feedback will be greatly
> appreciated.
>
> [1]: http://metaben.ch/
> [2]: http://brunocodutra.github.io/metal/

A quick note. Since the latest released clang version is 3.9 and the
latest released gcc version is 6.2, wouldn't it be better if metal was
tested with these versions. I also noticed that Travis CI uses old
versions of both clang and gcc, so I wonder why so much software is
still using old versions when new, better ones are available, especially
as relates to C++11 on up support.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk