On 27 Sep 2014, at 09:25, Marcus Denker <marcus.denker@inria.fr> wrote:


On 26 Sep 2014, at 20:44, Eliot Miranda <eliot.miranda@gmail.com> wrote:

Hi Marcus,

On Thu, Sep 25, 2014 at 11:29 PM, Marcus Denker <marcus.denker@inria.fr> wrote:

On 25 Sep 2014, at 23:02, phil@highoctane.be wrote:

> Well, the full story is that the decompiler is now gone with Opal.
>
There is a decompiler again in Pharo4

> So, there were 3 in the beginning. So, of course with 2, this becomes a switch.
>
> Why no decompiler anymore, for the layman I am?
>
The *option* of showing decompiled code in the browser: Honestly, I do not get
why this was useful, ever.

I can think of three reasons.  

1. mutable literals.  using the decompiler is a quick way to check if a literal has been corrupted/modified

2. if you're working on the decompiler this is convenient


Yes, but all this does not mean that there need to be a button always visible for it�
(and maybe GTInspector already provides the perfect tool for it? I guess it does: Decompiler
can define a view for CompiledMethod, it is added as a tab, the tabs let you switch easily between code, AST, IR, CM Header and everyone
else who defines an inspector view for the method)

In 4.0 #272:

-> add

gtInspectorDecompilerIn: composite
<gtInspectorPresentationOrder: 40> 
^ composite smalltalkCode 
title: 'Decompiled';
smalltalkClass: [ self methodClass ];
display: [ self codeForNoSource ].

to CompiledMethod.

Result: instant browser for comparing source vs. decompiled vs. AST vs Bytecode.
(I inspect �Object methods�).