Major performance problem with std.array.front()

ponce contact at gam3sfrommars.fr
Mon Mar 10 03:21:47 PDT 2014


On Sunday, 9 March 2014 at 21:14:30 UTC, Nick Sabalausky wrote:
>>> With all due respect, D string type is exclusively for UTF-8 
>>> strings.
>>> If it is not valid UTF-8, it should never had been a D string 
>>> in the
>>> first place. In the other cases, ubyte[] is there.
>>
>> This is an arbitrary self-imposed limitation caused by the 
>> choice in how
>> strings are handled in Phobos.
>
> Yea, I've had problems before - completely unnecessary problems 
> that were *not* helpful or indicative of latent bugs - which 
> were a direct result of Phobos being overly pedantic and eager 
> about UTF validation. And yet the implicit UTF validation has 
> never actually *helped* me in any way.


>> self-imposed limitation
For greater good.

I finds this article very telling about why string should be 
converted to UTF-8 as often as possible.
http://www.utf8everywhere.org/

I agree 100% with its content, it's impossibly hard to have a 
sane handling of encodings on WIndows (even more in a team), if 
not following the drastic rules the article exposes.

This happens to be what Phobos gently mandates, UTF validation is 
certainly the lesser evil as compared the mess that everything 
become without. How is mandating valid UTF-8 being overly 
pedantic? This is the sanest behaviour. Just use sanitizeUTF8 
(http://vibed.org/api/vibe.utils.string/sanitizeUTF8) or 
equivalent.



More information about the Digitalmars-d mailing list