[squeak-dev] Immutability (was Re: About String vs Symbols)
Colin Putney
cputney at wiresong.ca
Wed Jul 30 07:06:39 UTC 2008
On 29-Jul-08, at 1:24 PM, Eliot Miranda wrote:
> BTW, immutability involves primitive error codes and I will be
> introducing primitive error codes, because the performance hit is
> essentially zero and there is no backward compatibility issue
> (strange but true :) ).
I'm all for general immutability support in the VM.
I suspect, though, that this isn't what Stéphane was driving at.
Immutable strings is kind of a language-level thing, and could be done
without VM support. One way would be to factor out a MutableString
class and keep it distinct from regular strings. Going further, we
could just remove the mutation protocol and require all string
creation to be either stream-based or functional (ie, producing new
strings rather than mutating existing ones).
Once strings are immutable, interning them is a useful space
optimization, and that *would* make symbols redundant.
Clearly there are huge compatibility issues here, but it's a
reasonable thing to consider if building a system from scratch.
Colin
More information about the Squeak-dev
mailing list
|