[Newcompiler] The decompiler for the old block is ready to test

Mathieu Suen mathk.sue at gmail.com
Sat Nov 10 21:56:27 UTC 2007


On Nov 10, 2007, at 10:30 PM, nicolas cellier wrote:

> While inlining repeat loop is a very easy task, having the  
> decompiler understand that construct is a nightmare.
> That is because all the logic is in jump:if: while repeat loops  
> require only a jump: ...
> So I think i should have a look at Mat's work

Yeap! but the hardest part is optimization.
This because  when you found a way to decompile it you break how an  
other decompiles.
I think what could help is to have a bytecode parser.
And you can write a grammer like:

  MessageSend:

	(push)* send;

Block:

	pushThisContext sendBlockCopy jumpOverTheBlock statements;
...


>
> Nicolas
>
> Stéphane Ducasse a écrit :
>> Begin forwarded message:
>>> From: Mathieu Suen <mathk.sue at gmail.com>
>>> Date: 10 novembre 2007 01:28:21 HNEC
>>> To: "The New Compiler, AST, IRBuilder, Closures..."  
>>> <newcompiler at lists.squeakfoundation.org>
>>> Subject: [Newcompiler] The decompiler for the old block is ready  
>>> to test
>>> Reply-To: "The New Compiler, AST, IRBuilder, Closures..."  
>>> <newcompiler at lists.squeakfoundation.org>
>>>
>>> Hi All,
>>>
>>> I have recently made some changes in the decompiler and now the  
>>> image can decompile.
>>> This time the decompiler tests the equality of the method  
>>> decompile and the original method to see if they match.
>>> If you take a 3.10 image all the image could be decompiled. 
>>> (Except for method with undefined class. see  
>>> ScriptLoader>>unloadToolPlus for an example)
>>>
>>> The latest version can be load either from the univers browser or  
>>> from squeaksource:
>>> http://www.squeaksource.com/NewCompiler
>>>
>>> If you load from squeaksource we provide you a package loader.  
>>> Load the NewCompilerLoader and execute:
>>>
>>> NewCompilerLoader new loadPackages.
>>>
>>> This loads all the needed dependencies
>>>
>>> Remember the dependency are:
>>>  - NewParser
>>>  - AST
>>>  - SmaCC
>>>  - RefactoringEngine
>>>
>>>     Mth
>>>
>>>
>>>
>
>

	Mth






More information about the Squeak-dev mailing list