[Pharo-project] [update 1.3] #13127 - 13129

Eliot Miranda eliot.miranda at gmail.com
Fri Apr 1 19:13:42 CEST 2011


On Fri, Apr 1, 2011 at 9:26 AM, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> wrote:

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

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.



>
> Nicolas
>
> 2011/4/1 Marcus Denker <marcus.denker at inria.fr>:
> > [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.
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110401/7769d810/attachment.htm>


More information about the Pharo-project mailing list