[squeak-dev] Decompiler issues

Levente Uzonyi leves at elte.hu
Mon Mar 1 00:35:18 UTC 2010


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



More information about the Squeak-dev mailing list