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

Reply via email to