[squeak-dev] The Trunk: Compiler-eem.239.mcz

Eliot Miranda eliot.miranda at gmail.com
Tue Nov 6 21:11:08 UTC 2012


On Tue, Nov 6, 2012 at 12:54 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
>
> On Tue, Nov 6, 2012 at 5:44 AM, David T. Lewis <lewis at mail.msen.com>wrote:
>
>> This update results in a new test failure in
>> ClosureCompilerTest>>testDecompiledDoitMethodTempNames.
>> This is probably just a test issue that can be fixed with an update to
>> ClosureCompilerTest>>closureCases, but I am not an expert here.
>>
>> Eliot, Nicolas - could one of you please check this and fix the test if
>> that is what is required?
>>
>
> done.  checking in soon.
>
>
>>
>> Also, a new test to document the problem being fixed by this update would
>> be a good thing.
>>
>
> will do.
>

Hmmm.  Turns out to be rather hard to write the test.  Both the new code
and the old code are trying to print whileTrue: [] as whileTrue, and the
compiler is trying to compile whileTrue: [] as whileTrue.  So all forces
move against leaving whileTrue: [] alone, and the bug was that the old code
would transform whileTrue: [] into whileTrue when printing.  So forgive me
for now but I'll fix the decompiler and not write the test for the original
fix :-/.


>
>>
>> Thanks,
>> Dave
>>
>>
>> On Tue, Nov 06, 2012 at 01:03:30PM +0100, Nicolas Cellier wrote:
>> > Some kind of Heisenberg principle, you cannot observe a node without
>> > some sort of interaction ;).
>> > We should create a price for the best anti-pattern of the month.
>> > It's invaluable for teaching.
>> >
>> > Nicolas
>> >
>> > 2012/11/6  <commits at source.squeak.org>:
>> > > Eliot Miranda uploaded a new version of Compiler to project The Trunk:
>> > > http://source.squeak.org/trunk/Compiler-eem.239.mcz
>> > >
>> > > ==================== Summary ====================
>> > >
>> > > Name: Compiler-eem.239
>> > > Author: eem
>> > > Time: 5 November 2012, 3:09:13.298 pm
>> > > UUID: 074c58f2-bc92-4c3f-adff-56c47d3884ef
>> > > Ancestors: Compiler-eem.238
>> > >
>> > > Eliminate horrible side-effect in printing whileTrue/whileFalse
>> > > nodes that undid the tranformation to whileTrue:/whileFalse:.
>> > >
>> > > =============== Diff against Compiler-eem.238 ===============
>> > >
>> > > Item was changed:
>> > >   ----- Method: MessageNode>>printWhileOn:indent: (in category
>> 'printing') -----
>> > >   printWhileOn: aStream indent: level
>> > > -
>> > >         self printReceiver: receiver on: aStream indent: level.
>> > > +       self
>> > > +               printKeywords: originalSelector
>> > > +               arguments: originalArguments
>> > > -       (arguments isEmpty not
>> > > -        and: [arguments first isJust: NodeNil]) ifTrue:
>> > > -                       [selector := SelectorNode new
>> > > -                                                       key:
>> > > -
>>   (selector key == #whileTrue:
>> > > -
>>           ifTrue: [#whileTrue]
>> > > -
>>           ifFalse: [#whileFalse])
>> > > -                                                       code: #macro.
>> > > -                       arguments := Array new].
>> > > -       self printKeywords: selector key arguments: arguments
>> > >                 on: aStream indent: level!
>> > >
>> > >
>>
>>
>
>
> --
> best,
> Eliot
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121106/f5720188/attachment.htm


More information about the Squeak-dev mailing list