[Newcompiler] tagging methods?

Klaus D. Witzel klaus.witzel at cobss.com
Sun Nov 26 14:48:38 UTC 2006


I thought about this {old compiler. new compiler}x{old decompiler. new  
decompiler} when starting to help with new decompiler.

An alternative would be an "options" bit field in the MethodProperties,  
which would extend CompiledMethod>>#header by 31 bits (and so avoids a  
new, fat Dictionary instance per new CompiledMethod).

I'm confident that the remaining 30 option bits will soon find some other  
friends :)

/Klaus

On Sun, 26 Nov 2006 15:16:12 +0100, Philippe Marschall wrote:

> Hi
>
> Problem:
> The new compiler generates bytecode that is slightly different than
> the one generated by the old compiler. Because of this they can not be
> decompiled using the old decompiler. Currently the logic to determine
> whether to use the old or new decompiler check the value of
> #compileUseNewCompiler. This is especially annoying because it breaks
> the debugger.
>
> Solution:
> We tag a method as compiled with the new compiler via a method
> property. We can do the same for #compileBlocks as closures.
>
> Consequences:
> All methods compiled with the new compiler will have a method property
> object, so they'll be a bit bigger.
> Decompiling (debugging) methods compiled with the old compiler while
> having #compileUseNewCompiler on will work.
>
> Comments?
>
> Cheers
> Philippe




More information about the Newcompiler mailing list