Welcome! Please see the About page for a little more info on how this works.

0 votes
in tools.emitter.jvm by

As mentioned briefly via email, a critical failure of TEMJVM in terms of extensibility is that clients are unable to leverage the existing emitter code without duplicating it wholesale or altering the loaded copy of TEMJVM in place.

The feature/fragmented-emitter branch experiments with refactoring the various emit operations so that rather than using multimethods, they are represented as maps of :op keywords to simple functions taking an extra leading argument being the dispatch map or set of maps. Clients using TEMJVM then can recycle any and all code from the emitter itself simply by associng onto these mappings and using them. This may come at a performance penalty due to multimethod caching, however it should hugely reduce the verbosity of client code which doesn't have to define a mostly repetitive multimethod.

1 Answer

0 votes
by
Reference: https://clojure.atlassian.net/browse/TEMJVM-13 (reported by arrdem)
...