[Pharo-project] Decompiling method body returns as block?

Hernán Morales Durand hernan.morales at gmail.com
Tue Oct 19 23:49:36 EDT 2010


Wonderfull, thanks Lukas and Eliot!

2010/10/19 Eliot Miranda <eliot.miranda at gmail.com>:
> Hi Hernán,
>
> On Tue, Oct 19, 2010 at 1:37 PM, Hernán Morales Durand
> <hernan.morales at gmail.com> wrote:
>>
>> Hi list,
>> I'm using Pharo1.1rc2 #11400 and I want to extract the body part (the
>> String without the selector) of a CompiledMethod, but I'm getting a
>> BlockNode after sending #body and a MNU afterwards. This is what I do
>>
>> aCompiledMethod decompileWithTemps ---> a BytecodeAgnosticMethodNode
>> which is displayed like:
>>
>> 'renderContentOn: aRenderer
>>        aRenderer form id: ''horizontalForm'';
>>                with: [aRenderer
>>                                fieldSet: [ ... blablabla ]]'
>>
>> and is ok. Then
>>
>> aCompiledMethod decompileWithTemps body ---> a BlockNode displayed as:
>>
>> {[:aRenderer |
>> aRenderer form id: 'horizontalForm';
>>                with: [aRenderer
>>                                fieldSet: [... blablabla]]]}
>>
>> I've expected the code string (sending #decompileString) without
>> "[:aRenderer |" part (used to work that way).
>> The thing is if I send #code to the BlockNode I get a
>> "MessageNotUnderstood: CascadeNode>>code".
>> I'd appreciate any hint to solve this.
>
> An alternative to Lukas' suggestion would be to refactor
> MethodNode>>printOn: into
>     printOn: aStream
>         self
>             printSignatureOn: aStream;
>             printBodyOn: aStream
> and then use aCompiledMethod decompileWithTemps printBodyOn:
> best,
> Eliot
>>
>> Cheers,
>>
>>
>> --
>> Hernán Morales
>> Information Technology Manager,
>> Institute of Veterinary Genetics.
>> National Scientific and Technical Research Council (CONICET).
>> La Plata (1900), Buenos Aires, Argentina.
>> Telephone: +54 (0221) 421-1799.
>> Internal: 422
>> Fax: 425-7980 or 421-1799.
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Hernán Morales
Information Technology Manager,
Institute of Veterinary Genetics.
National Scientific and Technical Research Council (CONICET).
La Plata (1900), Buenos Aires, Argentina.
Telephone: +54 (0221) 421-1799.
Internal: 422
Fax: 425-7980 or 421-1799.




More information about the Pharo-dev mailing list