Re: downsides of ASM7_EXPERIMENTAL
[email protected] Fri, 14 Sep 2018 21:27:49 +0200 (CEST)
| Newsgroups | gmane.comp.java.objectweb.asm |
|---|---|
| Message-ID | <[email protected]> |
> De: "seth lytle" <[email protected]> > À: "Remi Forax" <[email protected]> > Cc: "asm" <[email protected]> > Envoyé: Vendredi 14 Septembre 2018 21:05:59 > Objet: Re: [asm] downsides of ASM7_EXPERIMENTAL > thanks Remi - that's exactly what i was hoping for. i haven't heard of preview > classes - i'll take a look The preview class is a class that contains a feature that will be formally included in the next jdk so people can give feedback in between. A preview class has its classfile minor version equals to -1 (all bit fields set to 1) instead of 0. As far as i know, switch expressions will be included in the JDK 12 as a preview feature but only from the language POV because switch expressions do not require a special VM support. Perhaps lazy static final (static final not initlaized in the static block but lazily will be the first VM feature to be included as preview but it will be at least for the JDK 13). For a full description, the preview feature is described by the JEP 12 [1]. cheers, Rémi [1] http://openjdk.java.net/jeps/12 > On Fri, Sep 14, 2018 at 2:43 PM, Remi Forax < [ mailto:[email protected] | > [email protected] ] > wrote: >> Hi Seth, >>> De: "seth lytle" < [ mailto:[email protected] | [email protected] ] > >>> À: "asm" < [ mailto:[email protected] | [email protected] ] > >>> Envoyé: Vendredi 14 Septembre 2018 19:47:35 >>> Objet: [asm] downsides of ASM7_EXPERIMENTAL >>> i have a fork of kilim (a continuations / actors library for java) that uses asm >>> (and asm-tree) to weave the bytecode to expose the stack. i support java 7, 8, >>> 9, 10, and 11 using several different artifacts (i can't use maven scopes >>> because kilim is also a plugin for AOT weaving) >>> i currently have an artifact for java 11 that uses ASM7_EXPERIMENTAL and handles >>> nestmates (but not condy). it is still compiled with java 8, and in all other >>> ways is identical to the artifact that handles java 8 and 9 (there's an openjdk >>> bug in java 10 that i need to workaround until 10.3, so it has it's own >>> artifact). all artifacts currently use 6.2.1 >>> i'd like to use ASM7_EXPERIMENTAL for all versions of java (of course, switching >>> to ASM7 in a few weeks when it's released). i've looked at the source code and >>> i don't see any uses that would be triggered by class files generated by java >>> versions 10 or older >> ASM is backward compatible so if your code works with ASM6, it should work with >> ASM7_EXPERIMENTAL. >>> my fork of kilim is still a pre-release (it should be promoted to the official >>> kilim 2.0 soon), so i'm willing to take some risk, but don't want to ignore >>> anything that's known to be a problem >>> am i missing anything ? are there any known (or known to be likely) downsides of >>> ASM7_EXPERIMENTAL when modifying bytecode generated by older versions of java ? >> There are three downsides of using ASM7_EXPERIMENTAL >> - you need to add new codes to your visitors to take care of the new features >> (nestmates, condy or preview class). >> - you know that in the future you will have to change the code again when ASM7 >> will be released >> (as far as we know, it means removing the "Experimental" suffixes because the VM >> spec has not changed since we add the support of the features of Java 11). >> - the code that handles the new features is fresh so you may encounter bugs (we >> have fixed several issues around condy since the release of ASM 6.2.1, many >> thanks @laurit BTW). >> regards, >> Rémi -- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws