[GSoC 2013] Moving to Boost to Boost.Move

Hi, In case there are some students that are looking for a last idea. There a re a lot of Boost libraries that don't support move semantics. It would be nice if one student propose to adapt the some of the existing libraries. The idea is to use Boost.Move so that an emulation is provided for compilers not supporting rvalue references. Some of the libraries (let me know if I'm wrong are). My priority is given between [], lower numbers means higher priority. Of course others would have others priorities: C++11 * [0] Tuple or * Fusion/tuple (it seems that it support or will support c++11 move semantics but don't use Boost.Move) * [0] Bind * [1] Function * [2] SmartPtr * [8] Array ? Accepted for C++14 * [5] optional Having an active proposal for C++1y * [3] Heaps * [6] Any * [7] Variant Other * [4] LockFree * [9] Parameters * [10] Signals? Please help me to complete this list. Adding constexpre and noexcept would be welcome also. Best, Vicente

2013/4/27 Vicente J. Botet Escriba
Hi,
In case there are some students that are looking for a last idea.
There a re a lot of Boost libraries that don't support move semantics. It would be nice if one student propose to adapt the some of the existing libraries.
The idea is to use Boost.Move so that an emulation is provided for compilers not supporting rvalue references. <...>
Accepted for C++14 * [5] optional As I know author of the library is now working on that.
* [1] Function Added move assignment and move constructor for C++11 compilers a few releases ago.
* [6] Any Added rvalues support to trunk version for C++11 compilers
* [7] Variant Rvalues work since last release for C++11 compilers
Boost.Move is not always suitable for old libraries, it may break users code http://www.boost.org/doc/libs/1_53_0/doc/html/move/emulation_limitations.htm... . There was a thread about that http://lists.boost.org/Archives/Ioost/2013/04/202436.php . It would be great to provide rvalue references for old Boost libraries just for C++11 compatible compilers, without Boost.Move usage. Also, I would like to add * [6] Bimap to list. -- Best regards, Antony Polukhin

Le 27/04/13 09:05, Antony Polukhin a écrit :
2013/4/27 Vicente J. Botet Escriba
: Hi,
In case there are some students that are looking for a last idea.
There a re a lot of Boost libraries that don't support move semantics. It would be nice if one student propose to adapt the some of the existing libraries.
The idea is to use Boost.Move so that an emulation is provided for compilers not supporting rvalue references. <...>
Accepted for C++14 * [5] optional As I know author of the library is now working on that.
* [1] Function Added move assignment and move constructor for C++11 compilers a few releases ago.
* [6] Any Added rvalues support to trunk version for C++11 compilers
* [7] Variant Rvalues work since last release for C++11 compilers
Glad to see that Boost libraries are moving to C++11 move semantics. I was locking on the documentation of some of these libraries and I didn't found too much. Is this documented? Maybe we can at least add the C++11 move semantic on the libraries that are not providing it now. This will be better than nothing.
Boost.Move is not always suitable for old libraries, it may break users code http://www.boost.org/doc/libs/1_53_0/doc/html/move/emulation_limitations.htm... . There was a thread about that http://lists.boost.org/Archives/Ioost/2013/04/202436.php .
The link doesn't works.
It would be great to provide rvalue references for old Boost libraries just for C++11 compatible compilers, without Boost.Move usage.
I can understand that having C++11 move semantics could be enough for you (I will be in your place ;-) but others could not move to them. What are the benefit of Boost.Move into Boost if we don't make use of it, at least on all the Boost libraries having an equivalent on C++11?
Also, I would like to add * [6] Bimap to list.
Best, Vicente

2013/4/27 Vicente J. Botet Escriba
Le 27/04/13 09:05, Antony Polukhin a écrit :
2013/4/27 Vicente J. Botet Escriba
: Hi,
In case there are some students that are looking for a last idea.
There a re a lot of Boost libraries that don't support move semantics. It would be nice if one student propose to adapt the some of the existing libraries.
The idea is to use Boost.Move so that an emulation is provided for compilers not supporting rvalue references.
<...>
Accepted for C++14 * [5] optional
As I know author of the library is now working on that.
* [1] Function
Added move assignment and move constructor for C++11 compilers a few releases ago.
* [6] Any
Added rvalues support to trunk version for C++11 compilers
* [7] Variant
Rvalues work since last release for C++11 compilers
Glad to see that Boost libraries are moving to C++11 move semantics. I was locking on the documentation of some of these libraries and I didn't found too much. Is this documented? Maybe we can at least add the C++11 move semantic on the libraries that are not providing it now. This will be better than nothing.
Committed documentation and C++11 rvalues support for Boost.Any to release branch. Now working on documentation of Boost.Variant.
Boost.Move is not always suitable for old libraries, it may break users code http://www.boost.org/doc/libs/1_53_0/doc/html/move/emulation_limitations.htm... . There was a thread about that http://lists.boost.org/Archives/Ioost/2013/04/202436.php .
The link doesn't works.
http://lists.boost.org/Archives/boost/2013/04/202436.php
It would be great to provide rvalue references for old Boost libraries just for C++11 compatible compilers, without Boost.Move usage.
I can understand that having C++11 move semantics could be enough for you (I will be in your place ;-) but others could not move to them. What are the benefit of Boost.Move into Boost if we don't make use of it, at least on all the Boost libraries having an equivalent on C++11?
Tried that on Boost.Any. Was required to rollback commits because some libraries dependent on Boost.Any stoped compiling :-( (Stevens comment on that topic http://lists.boost.org/Archives/boost/2013/04/202443.php)
* [2] SmartPtr
Uses perfect forwarding on C++11 compilers, has BOOST_NOEXCEPT mark on noexcept functions
* [0] Bind
This may be a very good place to use Boost.Move. I would also love to see Boost.Bind using variadic templates. -- Best regards, Antony Polukhin

Hello, uBlas would also benefit from that. Although there is already an older implementation in place it can be extended for more uBlas containers. Thanks for bringing it up because I was thinking last night that we hadn't included that in the list provided on the boost gsoc ideas. -Nasos On 04/27/2013 02:21 AM, Vicente J. Botet Escriba wrote:
Hi,
In case there are some students that are looking for a last idea.
There a re a lot of Boost libraries that don't support move semantics. It would be nice if one student propose to adapt the some of the existing libraries.
The idea is to use Boost.Move so that an emulation is provided for compilers not supporting rvalue references.
Some of the libraries (let me know if I'm wrong are). My priority is given between [], lower numbers means higher priority. Of course others would have others priorities:
C++11 * [0] Tuple or * Fusion/tuple (it seems that it support or will support c++11 move semantics but don't use Boost.Move) * [0] Bind * [1] Function * [2] SmartPtr * [8] Array ?
Accepted for C++14 * [5] optional
Having an active proposal for C++1y * [3] Heaps * [6] Any * [7] Variant
Other * [4] LockFree * [9] Parameters * [10] Signals?
Please help me to complete this list.
Adding constexpre and noexcept would be welcome also.
Best, Vicente
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (3)
-
Antony Polukhin
-
Nasos Iliopoulos
-
Vicente J. Botet Escriba