This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: It's v7-> mainline merge time!


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]