[update 1.3] #13127 - 13129
Issue 3934: Add isDisplayed in SystemWindow (Benjamin) Issue 3933: Better behavior for selection in PluggableListMorphOfMany and PluggableMorphListMorphOfMany (Benjamin) Issue 2360: [Failing Test] nil out locals in a block if readBeforeWritten (Nicolas) Thanks a lot Nicolas!! Part1: First stage for reducing Squeak/Pharo Compiler differences: This is a pre-requisite for issue 2360 - let visitor pattern #accept: return its own result rather than the node - remove old code generation methods - merge ByteCodeAgnosticMethodNode into MethodNode MessageNode initialize must be performed at the end of this stage. Part 2: - correctly move 'locationCounter localsPool' in MethodNode ivar (they were undeclared) - use #notOptimizedIn: rather #than noteOptimized. - do not optimize a todo that would overwrite its limit (common changes with 3677) - connect the OptimizedBlockLocalTempReadBeforeWrittenVisitor to nilReadBeforeWrittenTemps in optimized blocks - add #testOptimizedBlockLocalNilling1 and #testOptimizedBlockLocalNilling2 Part 3: This change includes Compiler and Decompiler changes to handle optimized #repeat loops. Note that MessageNode class>>#initialize of Part2 already includes necessary hook. (Sorry, some methods have changed several times in trunk, and it's easier to upgrade several fixes at once). If you don't want this change in Pharo (why ?) then don't forget to change MessageNode class>>#initialize -- Marcus Denker -- http://www.marcusdenker.de INRIA Lille -- Nord Europe. Team RMoD. |
Eliot signalled recently in squeak-dev that a Compiler recompileAll
was necessary because of some decompiler edge cases, but I did not understand fully why. Maybe we can differ it after integrating Issue 2559 Nicolas 2011/4/1 Marcus Denker <[hidden email]>: > [update 1.3] #13127 - 13129 > > Issue 3934: Add isDisplayed in SystemWindow (Benjamin) > Issue 3933: Better behavior for selection in PluggableListMorphOfMany and PluggableMorphListMorphOfMany (Benjamin) > Issue 2360: [Failing Test] nil out locals in a block if readBeforeWritten (Nicolas) > > Thanks a lot Nicolas!! > > Part1: > > First stage for reducing Squeak/Pharo Compiler differences: > This is a pre-requisite for > issue 2360 > > > - let visitor pattern #accept: return its own result rather than the node > - remove old code generation methods > - merge ByteCodeAgnosticMethodNode into MethodNode > > MessageNode initialize must be performed at the end of this stage. > > Part 2: > > - correctly move 'locationCounter localsPool' in MethodNode ivar (they were undeclared) > - use #notOptimizedIn: rather #than noteOptimized. > - do not optimize a todo that would overwrite its limit (common changes with 3677) > - connect the OptimizedBlockLocalTempReadBeforeWrittenVisitor to nilReadBeforeWrittenTemps in optimized blocks > - add #testOptimizedBlockLocalNilling1 and #testOptimizedBlockLocalNilling2 > > Part 3: > > This change includes Compiler and Decompiler changes to handle optimized #repeat loops. > Note that MessageNode class>>#initialize of Part2 already includes necessary hook. > (Sorry, some methods have changed several times in trunk, and it's easier to upgrade several fixes at once). > If you don't want this change in Pharo (why ?) then don't forget to change MessageNode class>>#initialize > > > > > > -- > Marcus Denker -- http://www.marcusdenker.de > INRIA Lille -- Nord Europe. Team RMoD. > > > |
On Fri, Apr 1, 2011 at 9:26 AM, Nicolas Cellier <[hidden email]> wrote: Eliot signalled recently in squeak-dev that a Compiler recompileAll One doesn't need a recompileAll. The following will do just fine: (SystemNavigation new allCallsOn: #repeat) do: [:ea| ea actualClass recompile: ea methodSymbol]
In general if one changes the set if inlined selectors one should recompile all senders of those selectors. The decompiler assumes that it is decompiling the same btecodes as the current compiler produces for the methods source. Hence the bytecode needs to be kept in sync with the compiler.
|
Free forum by Nabble | Edit this page |