- Should we use ASM jar as is (make the dependency public) or use re-rooted versions that cannot conflict?
- Scala: 2.10+ uses ASM 4.1, subsetted, and rerooted to scala.tools.asm
- Groovy: 2.1 (latest stable) uses ASM 4.0 external, 2.2 (next) uses ASM 4.1 external
- JRuby: 1.7.4 (latest stable) uses ASM 4.1 (I think)0, subsetted, and rerooted to org.jruby.org.objectweb.asm. According to Charles Nutter 1.7.x will stay on 4.0. As of Feb. 19, 2014 the version on master has been bumped to 4.2 as 5.0 is currently in beta.
- Recommend: re-root to avoid conflicts
- What (if anything) needs to be done with computing stack frames to satisfy bytecode verification changes in JDK 7?
- If re-rooted, should we subset the jar and only include what we use rather than the whole jar?
- Recommend: yes, as long as we're modifying we might as well subset
- If using a re-rooted jar, should we provide a split version of the re-rooted asm to allow it to be optional for environments that don't need it?