- 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), subsetted, and rerooted to org.jruby.org.objectweb.asm
- 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 using a re-rooted version should that version be provided in a separate jar for separability in environments which do not need it?
- If re-rooted, should we subset the jar and only include what we use rather than the whole jar?
- Build an independent (but still re-rooted) clojure.asm jar, and a dep on it. That way delivery targets that don't use dynamic code gen (e.g. Android) can easily leave it out.