[squeak-dev] Object new becomeForward: #normal

Levente Uzonyi leves at caesar.elte.hu
Tue Jul 18 14:30:16 UTC 2017


Nvm. What Bert wrote.

Levente

On Tue, 18 Jul 2017, Levente Uzonyi wrote:

> On Tue, 18 Jul 2017, marcel.taeumel wrote:
>
>> Hi, there.
>>
>> Why are there guards to prevent forward-becoming to immediates (chars, 
> ints)
>> but not to symbols?
>
> The former is technically impossible due to different object 
> representations, the latter is possible and not restricted at all. For 
> example, true and false are not immediate objects, you can use #become*: 
> on them to blow your image up.
> So, there's no restriction at all if it's technically possible to use 
> #become*:.
> The responsibility model is the simplest here: use at your own risk.
> Since this comes up every once in a while, I suggest a comment be added to 
> those methods stating the responsibility model explicitly.
>
> I don't know how the VM handles immutability in this case, but it's 
> possible that it wouldn't let #become*: affect immutable objects. On the 
> other hand, I'm sure it would let you change fields of immutable objects 
> via #become*:, but that's not an issue in your case.
>
> Levente
>
>>
>> This will break your image: "Object new becomeForward: #normal"
>>
>> ... because Cursor class MNU #normal ... :-) Either this is a bug or
>> forward-becoming to symbols is not intended at all.
>>
>> Best,
>> Marcel
>>
>>
>>
>> --
>> View this message in context: 
> http://forum.world.st/Object-new-becomeForward-normal-tp4955525.html
>> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>


More information about the Squeak-dev mailing list