[squeak-dev] Immutability and become

Bert Freudenberg bert at freudenbergs.de
Tue Jul 18 21:22:14 UTC 2017


On Tue, Jul 18, 2017 at 10:10 PM, Eliot Miranda <eliot.miranda at gmail.com>
wrote:

> Hi Bert,
>
> On Tue, Jul 18, 2017 at 7:51 AM, Bert Freudenberg <bert at freudenbergs.de>
> wrote:
>
>> ​+1 for making the whole object graph be immutable.
>>
>
> This really doesn't make sense as it prevents any kind of change at all,
> e.g. to the class hierarchy, and as Nicolas points out, prevents updating
> objects if their class definitions are modified.
>
> When we added "immutability" to VisualWorks (actually read-only objects)
> we held off, and made only literals immutable.  I'd like to see us make
> CompiledMethods immutable too, but this wold introduce complications in
> condensing changes/sources, adding/deleting breakpoints, etc.  One can
> provide an exception handler or a beMutableWhile: facility to make it easy
> to temporarily make read-only objects writable.
>

Right.​

Or are you meaning that when an object is made immutable all its sub-state
> is made immutable too?  (An idea I have no problems with,
>

​Yes, that. Which means that immediates and nil/true/false should become
immutable too. In fact, isn't any stateless object already immutable?


> provided it does't imply that classes can't change).
>

​The class should not be made immutable​, agreed, but you shouldn't be able
change the shape of instances, me thinks.

​- Bert -​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170718/4ed0b82e/attachment.html>


More information about the Squeak-dev mailing list