> 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