[squeak-dev] Re: New Window VM (Closures, FT2Plugin, Large Cursors)

Klaus D. Witzel klaus.witzel at cobss.com
Mon Mar 9 19:04:37 UTC 2009


On Mon, 09 Mar 2009 19:02:27 +0100, Eliot Miranda wrote:

> On Mon, Mar 9, 2009 at 1:23 AM, Klaus D. Witzel wrote:
...
>> You may perhaps also want to check the attachment from Mantis #7311  
>> that I
>> created a minute ago:
>>
>> - http://bugs.squeak.org/view.php?id=7311
>>
>> This .st has 61 tests which I've written for Marcus' NewCompiler project
>> (testing sourceCode -> Parser -> nodes -> compiled method ->
>> InstructionStream). Made a small change for adapting them to your  
>> passing
>> EncoderForV3 to the parser. BTW: all green in the recent
>> Squeak-3.10.2-Closures.image ;)
>
> Cool!  But TBH let's add a little yellow:
>
> testInlineBlockCollection1
> | col |
> col := OrderedCollection new.
> 1 to: 11 do: [ :each | col add: [ each ] ].
> self assert: (col collect: [ :each | each value ]) asArray = (1 to: 11)
> asArray
>
> testInlineBlockCollection2
> | col |
> col := OrderedCollection new.
> 1 to: 11 do: [ :each | | i | i := each. col add: [ i ]. i := i + 1 ].
> self assert: (col collect: [ :each | each value ]) asArray = (2 to: 12)
> asArray

Yellow, right, and they belong into ClosureCompilerTest. But they also  
raise questions:

I've seen that one of the differences between the Encoder*XYZ's is  
#supportsClosureOpcodes being true/false but also #generateAsClosure plays  
a role. So the *Closures suffix is short for *EmitClosuresBytecode? Also,  
blocks are never emitted the old (non-closure) way?

If they where (under whatever *config*, blocks emitted the old way) then  
both tests can only fail, that's why I ask.

/Klaus

-- 
"If at first, the idea is not absurd, then there is no hope for it".  
Albert Einstein




More information about the Squeak-dev mailing list