Error formatting macro: pagetree: java.lang.NullPointerException

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Currently the version of ASM bundled in Clojure is pretty old (circa 2005).  There are some documented performance improvements in newer versions of ASM that should speed up some things in Clojure. We would like to move to the latest stable version of ASM (4.1); the current Clojure code uses 3.3.1.  

Release notes for ASM 4.0 and 4.1.

It may not be the desired approach, but CLJ-713 has a patch related to this.

Next Steps

  • A Move to the latest ASM (currently 3.3.1) 
  • No longer subset-ed it (Only a subset of ASM was included back when it dominated Clojure's jar size, back in those early days when Clojure fit on a floppy :))
  • Still re-rooted it under clojure.asm

Open Questions to Resolve

Some open questions:

  1. Should we use ASM jar as is (make the dependency public) or use re-rooted versions that cannot conflict?
  2. If using a re-rooted version should that version be provided in a separate jar for separability in environments which do not need it?
  3. If re-rooted, should we subset the jar and only include what we use rather than the whole jar?

 

Next Steps

Future Steps

  • 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.