On Sun, Sep 8, 2013 at 1:48 PM, David Jeske <[email protected]> wrote:

> On Sun, Sep 8, 2013 at 10:37 AM, Jonathan S. Shapiro <[email protected]>wrote:
>
>> Whether it is unboxed or not, a non-statically-sized array must carry a
>> length field. The reason that a separately stored payload isn't a big deal
>> is:
>>
>
> All true... However, a separate payload incurs double the cache-misses on
> access...
>

Actually, it usually doesn't. The touch in the object header is mandatory,
and loading the indirection pointer can be done in the same cache
reference. The touches to access the string payload are also mandatory.


> The major problem in my mind is having mountains of useful library code
>> suddenly become unusable when you decide the default UCS2 binary
>> representation is too much overhead for your application. It's easy enough
>> to make your own UTF-8 string (separate vs embedded payload issues asside),
>> however, it can't be worked on by the regex library, despite being able to
>> produce a compatible stream of "char".
>>
>
No. The major problem is that you're still operating on the wrong
definition of "character", and therefore failing to acknowledge that
changing between an 8 bit or a 16 bit representation of characters is
addressing the wrong issue entirely.

shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to