[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
|