Hi,
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 >> #allInstVarNames. 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. For example: [ | 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.
Cheers, Levente