Environment-caused SyntaxError running build scripts (was Re: [squeak-dev] error when updating Squeak4.4-12327 to trunk)

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Mar 12 11:33:34 UTC 2013


2013/3/12 Bert Freudenberg <bert at freudenbergs.de>:
> On 2013-03-12, at 02:26, Colin Putney <colin at wiresong.com> wrote:
>
>> On Mon, Mar 11, 2013 at 5:59 PM, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>>
>>> No.  Its arguably a bug but a binding will print itself as the Symbol key.  So what's happening is that the binding for DateAndTime is printing itself as #DateAndTime.  So the problem is that the Decompiler is not mapping the sequence pushLiteral: aBinding, send #value back into an appropriate LiteralVariableNode instance.  The Decompiler needs to special-case this.
>>>
>> Yeah, that should probably be fixed. The new Alias bindings will generate #value sends, which I don't think we've used before. (We've used #value: for assignment to globals, but not #value for reads.)
>

Well, I used value sends for my experiments of auto and lazy
initialization of class variables
http://smallissimo.blogspot.fr/2011/08/lazy-initialization-of-shared-variable.html
so I can say it kind of works.

> Isn't #value too general to serve as a specially treated token in the decompiler? It might easily appear in code.
>
> I'd think it would be better if the compiler emitted a unique message selector that the decompiler could reliably recognize. Maybe #pvtValue, which cannot be used in regular code anyway?
>
> - Bert -
>

That's a good question.
If we want to be able to define different behaviors with delegation in
mind, pvtValue seems a bit restrictive.
Corolaries: how will the VM optimize the send (PIC, etc...)

Nicolas


More information about the Squeak-dev mailing list