Mikera <mike.r.anderson...@gmail.com> writes: > 2) This in turn means we are going to have to "recompile" if we want to > retain any sort of dynamic behaviour. The current system of independently > mutable vars won't work (for obvious reasons: changing a var could easily > violate the previous type inference assumptions)
The HotSpot JIT compiler already performs adaptive optimization based on runtime profile and dynamicaly recompiles bytecode when necessary. The problem is the way Clojure calls functions through vars is not transparent to the compiler's optimizer. Invokedynamic can help here, see http://blog.headius.com/2011/10/why-clojure-doesnt-need-invokedynamic.html -- Mikhail
pgpZrcN8zSvVn.pgp
Description: PGP signature