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

Stéphane Ducasse stephane.ducasse at inria.fr
Wed Oct 20 14:52:59 EDT 2010


if you refactor the method send it to us in a bug entry :)

Stef

On Oct 20, 2010, at 5:49 AM, Hernán Morales Durand wrote:

> 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.
> 
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project





More information about the Pharo-dev mailing list