This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: It's v7-> mainline merge time!
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: Paolo Carlini <pcarlini at suse dot de>
- Cc: libstdc++ at gcc dot gnu dot org
- Date: 27 Nov 2005 06:28:02 +0100
- Subject: Re: It's v7-> mainline merge time!
- References: <4388D26B.6040803@suse.de>
Paolo Carlini <pcarlini@suse.de> writes:
| Hi everyone,
|
| since mainline is again in Stage 1, naturally, and as we did for 4.1,
| we want to start as soon as possible on merges v7-> mainline of
| "safe", non-library-ABI breaking stuff. A lot of interesting stuff,
| indeed! My current plan would be proceeding as follows:
|
| -1- Simplifications to the algorithms (i.e., plain versions delegating
| to the versions taking a binary predicate). I would leave out any
| algorithm also involved in the simulated move semantics work (only
| unique, I think).
OK, though we might want to exercesize some care there.
| -2- Simulated move semantics, basically as-is in the branch. The
| entire merging work can be split in the infrastructural bits (e.g.,
| moveable.h, slt_construct.h, stl_uninitialized.h, testsuite),
| algorithms, trivial containers, vector and deque, testcases as we
| go. I'm pretty sure the work is safe from the binary-compatibility
| point of view (or can be made so with minor tweaks): in the most
| complex case, vector and deque, in a nutshell, functions like, e.g.,
| _M_insert_aux, _M_fill_insert, _M_range_insert, will use __move and
| become faster when moveable types are detected.
I'm deeply reserved about that experiment going to mainline.
| -3- As soon as Jason are Benjamin are done with the namespace
| association vs debug-mode vs swap issues (see libstdc++/24660 and
| older refs therein), we can finally enable a few move semantics tests
| in debug mode too.
I would think this has higher priority than -1-.
| -4- Finally, Option 3 in DR 431 for all the containers. This stuff is
OK.
| not in v7 yet, but I'm going to add it soon, in parallel with the
| merge work. I think it's badly needed in mainline too, because with
| move semantics we are going to use swap much more and we want it in
| very good shape. In fact, to my best knowledge, it's *the only*
| facility in the containers not ready for stateful allocators, i.e., we
| are just swapping the pointers (people in love with the word -broken-
| would likely say our container swaps are broken for stateful
| allocators).
No need to be in love with "broken" to say that ;-p.
-- Gaby