$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [Boost.Move] [Boost.Container] Compiling with older versions of Boost and Performance
From: THOMAS JORDAN (thomasjordan2_at_[hidden])
Date: 2012-01-10 10:11:58
>From: "Vicente J. Botet Escriba" <vicente.botet_at_[hidden]>
>To: boost_at_[hidden]
>Subject: Re: [boost] [Boost.Move] [Boost.Container] Compiling with
> older versions of Boost and Performance
>Message-ID: <4F09F0C3.4080306_at_[hidden]>
>Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Ø Le 08/01/12 12:25, Thomas Jordan a ?crit :
Ø >> Message: 3
Ø >> Date: Sat, 07 Jan 2012 15:58:20 +0100
Ø >> From: "Vicente J. Botet Escriba" <vicente.botet_at_[hidden]>
Ø <snip>
Ø >> Le 07/01/12 12:10, Thomas Jordan a ?crit :
Ø >>> Hi,
Ø >>> I am interested in experimenting with v1.48 Boost.Move and
Ø >>> Boost.Container. However, I am otherwise constrained to using Boost
Ø >>> libraries v1.33.1 with
Ø >>> a Sun C++ v5.10 compiler. I couldn't seem any 'Boost library
Ø >>> dependencies' listed in the Move/Container documentation, but a
Ø >>> quick look through the header files suggests
Ø >>> that it is mainly MPL and Type Traits. So...
Ø >>> First question: would it be feasible for me to combine the headers
Ø >>> for these two libraries with the v1.33.1 libraries and get it to
Ø >>> work (albeit maybe with a little customisation), or would it be a
Ø >>> big job/non-starter?
Ø >>> Second question - I don't see any performance analysis published for
Ø >>> Boost.Move. I know that move semantics is about more than improved
Ø >>> performance, but am interested in that side of things, especially as
Ø >>> the above compiler appears suboptimal in terms of copy elision and
Ø >>> RVO. I am wondering for example whether are there any
Ø >>> (compiler-specific) factors which could mitigate against the
Ø >>> performance benefits of doing a move vs a copy of a vector, using
Ø >>> these libraries, for example.
Ø >>>
Ø >>
Ø >> Hi,
Ø >>
Ø >> unfortunately Boost.Move and Boost.Container are not working up to now
Ø >> on Sun c++ even on trunk (1.49). See
Ø >> http://www.boost.org/development/tests/trunk/developer/container.html.
Ø >>
Ø >> Best,
Ø >> Vicente
Ø
Ø >Thanks for pointing me to that. In general is there anything more
Ø >detailed than pass/fail available to look at?
Ø >Is the assumption that something with so many fails it not fixable one
Ø >the library side, and is not worth investigating?
Ø >
Ø >
Ø Lastly there were some issues reporting the failure on the Sandia
Ø testers. Sun compiler miss a lot of useful features for many Boost
Ø libraries.
Ø I think the best you can do is to install the version 1.48 (or the
Ø trunk), run the tests yourself, look for the first failures in
Ø Boost.Move and try to understand what is going wrong. Report the
Ø failures here and try to solve them with the help of Ion and the Boost
Ø comunity.
Ø HTH,
Ø Vicente
Thanks, yes that would be the sensible way to proceed.
My other question was, though -
Does Boost::Move library rely on compiler optimisations of
copy-elision/return value optimisation, as is the case with the Adobe
Source Library (ASL) Move library, for example. The reason I ask is that I
suspect the compiler I want to target is not very good at said
optimisations. Or are there any other known factors which could mitigate
against its effectiveness for a. n. other compiler?
Regards,
T.