[racket] datum-intern-literal and lists?

From: Danny Yoo (dyoo at hashcollision.org)
Date: Mon Jun 25 17:00:11 EDT 2012

> But one note: in the common case, it looks like your code will copy all of
> the strings:
>
>> (define x "abc")
>> (substring x 0)
> "abc"
>> (eq? x (substring x 0))
> #f
>
> I guess these strings are not mutated, so you can probably avoid that in the
> start = 0 case (something I see the original code does).


Ah, thank you!  I'll incorporate this fix into the pull request I'll
make this evening.  It'll include:

    https://github.com/dyoo/racket/commit/dc88d00ad99ba3f9f3323445723a0c9535e716ef

The interning still doesn't match my intuition: I would have expected
the resulting strings after decoding to be unique enough as to have
the interning be ineffective in reducing on-line memory usage.  I
guess I should measure this sometime.

Posted on the users mailing list.