Decompiler [was: Real closures]
Klaus D. Witzel
klaus.witzel at cobss.com
Tue Oct 10 14:41:05 UTC 2006
Three things:
1) found a todo list in CompilerTODO, is this up to date
2) is it expected that a full decompile takes all the steps as in
#testDecompileBlockParam (from aCompiledMethod via BytecodeDecompiler via
IRDecompiler to AST-Nodes and friends)
3) afterComment, beforeComment and insideComment are Undeclared (the
dev.image comes with AST-ms.88?)
/Klaus
On Mon, 09 Oct 2006 19:26:27 +0200, Mathieu wrote:
> Klaus D. Witzel a écrit :
>> Hi Mathieu,
>>
>> on Mon, 09 Oct 2006 12:43:58 +0200, you wrote:
>>> Klaus D. Witzel a écrit :
>>>> On Sun, 08 Oct 2006 13:59:05 +0200, stephane ducasse wrote:
>>>> ...
>>>>> If people wants to help we need the decompiler also working well.
>>>>
>>>> Can I have a specification (sufficient, please) that describes what
>>>> source construct emits what bytecode(s). I cannot promise that I will
>>>> then be able to work on the decompiler but I promise to give it a try.
>>>>
>>>
>>> Forgot to tell if you want to see exacly what happen
>>
>> Yes I want to see, but must look into the opposite direction :| Let me
>> ask further: which component of the framework (the slides in
>> 11Bytecode.pdf are excellent, thank you!) is responsible for pretty
>> print? The latter is what the browser usually requests from the
>> decompiler.
>
> Normaly it's RBFormatter who suppose to pretty print it(you can install
> other pretty printer like
> gutenberg).
> And the compilation stop at the AST representation so you don't need to
> compile it completly.
>
> see: Compiler>>format:in:notifying:decorated:
>
> You also have to understand the Visitor but this one it's a bit strange
> beceause when
> visitMethodNode is expected you will see acceptMethodNode... (HTH)
>
> Math
>
>>
>> /Klaus
>>
>>> you can use #>> and see the bytecode
>>
>> Yes, thank you :)
>>
>>> Object>>#haltIf:
>>>
>>> ->
>>> 45 <10> pushTemp: 0
>>> 46 <D0> send: isSymbol
>>> 47 <AC 17> jumpFalse: 72
>>> 49 <89> pushThisContext:
>>> 50 <69> popIntoTemp: 1
>>> 51 <11> pushTemp: 1
>>> 52 <D1> send: sender
>>> 53 <D2> send: isNil
>>> 54 <A8 0F> jumpTrue: 71
>>> 56 <11> pushTemp: 1
>>> 57 <D1> send: sender
>>> 58 <81 41> storeIntoTemp: 1
>>> 60 <D3> send: selector
>>> 61 <10> pushTemp: 0
>>> 62 <B6> send: =
>>> ...
>>>
>>>>> Mathieu also worked on fixing the way comments are attached in the
>>>>> tree (before this was kind of random).
>>>>
>>>> Can't wait to see this in action :)
>>>>
>>>> /Klaus
>>>>
>>>>> Stef
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
More information about the Squeak-dev
mailing list
|