Our Sister

Bastiaan Veelo via Digitalmars-d digitalmars-d at puremagic.com
Thu May 26 13:32:04 PDT 2016


On Thursday, 26 May 2016 at 16:11:22 UTC, Andrei Alexandrescu 
wrote:
> I've been working on RCStr (endearingly pronounced "Our 
> Sister"), D's up-and-coming reference counted string type. The 
> goals are:
>
> * Reference counted, shouldn't leak if all instances destroyed; 
> even if not, use the GC as a last-resort reclamation mechanism.
>
> * Entirely @safe.
>
> * Support UTF 100% by means of RCStr!char, RCStr!wchar etc. but 
> also raw manipulation and custom encodings via RCStr!ubyte, 
> RCStr!ushort etc.
>
> * Support several views of the same string, e.g. given s of 
> type RCStr!char, it can be iterated byte-wise, code point-wise, 
> code unit-wise etc. by using s.by!ubyte, s.by!char, s.by!dchar 
> etc.
>
> * Support const and immutable qualifiers for the character type.
>
> * Work well with const and immutable when they qualify the 
> entire RCStr type.
>
> * Fast: use the small string optimization and various other 
> layout and algorithms to make it a good choice for high 
> performance strings


Interesting! I few noob questions first:

* Would it support implicit sharing (copy-on-write)? What about 
sub-strings?

* Will concatenations be fast?

* Would this have value for compile time string operations, 
mixin's, etc.?


> RFC: what primitives should RCStr have?

String may have a few that are worth supporting: 
http://doc.qt.io/qt-5/qstring.html

Bastiaan.


More information about the Digitalmars-d mailing list