[Patch, v7] DR 431 for sso/rc-strings
Paolo Carlini
pcarlini@suse.de
Mon Nov 14 19:35:00 GMT 2005
Hi Benjamin,
>1) Do you have any design docs or introductory material about the new string designs?
>At this point, there is a bunch of work. It would be nice to start collecting docs, or at least background links.
>
>
Right. In general, to date things should be still rather understandable,
in the sense that we have got two base classes, one which tries to be as
similar as possible to the "old" reference counted design, useful for
comparison purposes, at least; the other a very, very clean,
straightforward implementation of a typical design not reference counted
and optimized for short strings (Howard noticed that it's very similar,
a couple of tweaks, to design D in Meyers 's book Effective STL). On top
of that, there are only: 1- Move constructor and assignment; 2- Since
today, an implementation of Option 3 in DR 431.
'Til now ext/vstring in mainline and string in v7 have been kept in sync
(besides the simulated move semantics bits, which are not available in
mainline, will be for 4.2, hopefully).
Indeed, I plan to prepare some docs, which would be also useful for
users of the ext/ version delivered with the 4.1.x compilers.
>2) Do you think any of the existing performance tests for string will
>be useful for the new designs? Or are you thinking of augmenting the current tests?
>
>
In fact, I'm augmenting the tests as I proceed. For instance there is
already a new one which verifies the effectiveness of move semantics for
vector<string>, exactly along the lines of a paragraph of one the first
papers from Howard. More will be added, of course, by myself, or anyone
volunteeering to do that, I hope, which will be very useful, for
instance, to change for the best the default base class for the
following releases.
>Just curious.
>
>
You are welcome! About the documentation issue proper, feel free to file
a Bugzilla PR, so that we don't forget to write down at least a minimum
of info for the benefit of the users of gcc4.1.x...
Paolo.
More information about the Libstdc++
mailing list