>>
>> While in the write we need to mark:
>>
>> lookupVariableForWrite: aVariableNode
>>
>> | var |
>>
>> var := scope lookupVar: aVariableNode name.
>>
>> var ifNil: [^var].
>> var isSpecialVariable ifTrue: [ self storeIntoSpecialVariable:
>> aVariableNode ].
>> var isWritable ifFalse: [ self storeIntoReadOnlyVariable: aVariableNode
>> ].
>>
>> var isTemp ifTrue: [
>> "when in a loop, all writes escape"
>> scope outerScope isInsideOptimizedLoop ifTrue: [ var
>> markEscapingWrite ].
>> "else only escaping when they will end up in different closures"
>> (var scope outerNotOptimizedScope ~= scope
>> outerNotOptimizedScope)
>> ifTrue: [ var markEscapingWrite]].
>> ^var
>>
>>
>> I checked that all Opal tests that are failing are actually testing wrong,
>> and I double checked
>> that all those methods are now compiled like with the old old compiler…
>> Now recompilng the image.
>
> Hmm… nope…. something wrong.
>
the “outerScope” was wrong.
So without that, I can recompile the image and your example is compiled without
temp vectors…
Marcus