> On 27 Oct 2014, at 17:16, Thierry Goubier <[email protected]> wrote:
> 
> 
> 
> 2014-10-27 17:03 GMT+01:00 Marcus Denker <[email protected] 
> <mailto:[email protected]>>:
> 
> 
> 
> 
> I could imagine cases where, in very tight memory situations or with very 
> very large literals, we could make use of modifying literals. But I'm not 
> sure this is a significant requirement, or that it couldn't be considered if 
> there is a significant (and rich) use case to fund the development of the 
> slow path.
> 
> Pharos does not target classic “resource constraint” embedded scenarios.
> (else we would do many things a lot different)
> Is there a critic rule catching that sort of thing? That we could run on 
> Squeaksource / Smalltalkhub?
> No, as you can hand a reference to a literal over to someone else who does 
> not even know that it is a literal… this dreaded “am I going insane, it’s 
> writing right here” bug where you change a string somewhere that actually is 
> a string literal of some method…
> 
> You mean, as in:
> 
> MyClass>>foo
>       #(false) first 
>               ifFalse: [ 
>                       'first call since compilation' logCr ]
>               ifTrue: [ 'other calls' logCr ].
>       ^ #(false)
> 
> in a workspace
> 
> 4 timesRepeat: [MyClass new foo at: 1 put: true ]
> 

Or even easier…

someMethod
        ^’oohhh’


MyClass new someMethod at: 1 put: $N.


the execute

MyClass new someMethod

and wonder where that string comes from.

        Marcus

Reply via email to