groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remi Forax <fo...@univ-mlv.fr>
Subject Re: Old bytecode targets
Date Wed, 05 Sep 2018 10:36:53 GMT
Hi jochen,

----- Mail original -----
> De: "Jochen Theodorou" <blackdrag@gmx.org>
> À: "dev" <dev@groovy.apache.org>, "Keegan Witt" <keeganwitt@gmail.com>
> Envoyé: Lundi 3 Septembre 2018 22:34:01
> Objet: Re: Old bytecode targets

> On 03.09.2018 14:33, Keegan Witt wrote:
>> I'm working on adding Java 9, 10, and 11 bytecodes to the 2.5 branch,
>> and 9, 10, and 11 bytecodes when using invokedynamic to master, when I
>> noticed we allow the targets to go back quite a ways.
>> 
>> Should we continue to let the Groovy compiler target Java 4, 5, 6, and 7
>> in master, given that master requires Java 8+?  I can't think of a valid
>> use case where this would be useful.  What do you think of removing them?
> 
> 
> nobody needs to target 4 or 5 really any more I think. 6 has the nice
> advantage of not requiring the stack map frames. The stackmap frame
> calculation support in asm is a bit.. lets say, it comes not for free.

it's not free if you ask ASM (COMPUTE_FRAMES) to do the fix point algorithm (which is not
linear) and to infer the common supertype, if you generate the StackFrames in the groovy compiler
by calling explicitly visitFrame, the runtime cost is not big (but you need to modify your
compiler backend which has development a cost).

> 
> So otherwise I see no problem in targeting Java8
> 
> bye Jochen

cheers,
Rémi

Mime
View raw message