I ran some testcases with your changes and I expect some test
are failing now, but actually they don't fail but others do.




2014-10-16 22:06 GMT+02:00 Nicolai Hess <[email protected]>:

> 2014-10-16 17:40 GMT+02:00 Marcus Denker <[email protected]>:
>
>> >>
>> >> 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
>>
>
> good!
> I'll open an issue on fogbugz and create a slice with your changes.
>
> about reordering of tempvars:
> It would be nice if the order preserves, but I think we can live with it.
> Although there is an issue with the debugger:
> 14058 <https://pharo.fogbugz.com/default.asp?14058> Inconsistent
> information in debugger
> I solved that one by using tempvar names instead if the index, but
> this has another issue (sometimes the last (or most nested) tempvar is
> always nil).
>
> The real error is, EyeDebuggerContextInspector does recognizes if the
> index changes
> (somewhere in EyeDebuggerContextInspector>>#updateList it
> compares the new elements (with new indices) with the old elements list
> and skips the update)
>
>
>
>
>

Reply via email to