[squeak-dev] Decompiler issues
leves at elte.hu
Mon Mar 1 00:35:18 UTC 2010
I recently ran into a new decompiler issue which doesn't allow the
debugger to open. Details here: http://bugs.squeak.org/view.php?id=7467
So I thought it's time to revisit my decision of making DecompilerTests a
subclass of LongTestCase, because I'm pretty sure noone is running these
tests. According to my measurements 60-70% of their runtime is spent with
garbage collecting. DecompilerTests >> #decompileClassesSelect: forces a
full GC for every class in the image (>2000 in a clear trunk image).
Is this GC still necessary?
There are also two new methods besides EventSensor >> #eventTickler which
give a Syntax Error when running these tests. The new methods are
SHMCClassDefinition >> #withAllSuperclasses and SHMCClassDefinition >>
This problem occurs when a temporary is declared in an inlined block
which is the receiver of #whileTrue, #whileTrue:, #whileFalse or
#whileFalse and the variable is also referenced from a normal block.
| foo |
[ foo := false ] value ] whileTrue
will be decompiled as: [[_r1 := false] value] whileTrue.
A lot of decompiler tests are failing, because the temporaries are indexed
in a different order during the second decompilation.
I hope someone with enough knowledge will fix these issues.
More information about the Squeak-dev