I've done a fair amount of testing on fastload for Rich, as well as on the 
direct branch, which further extends some experimental work on static var 
invocation. Fastload does indeed reduce startup time by making var loading 
lazy. However, it also adds an additional check into the var invocation path 
which hurts inlining and makes invoking every var slower thereafter. 

Direct invocation basically creates a static invocation path alongside the 
dynamic one. This is faster for invocation, but you are effectively doing 
static binding so you really change the dynamic character of Clojure at that 
point. However, there are a huge array of choices - effectively every call site 
could be either statically or dynamically linked and you probably want some 
control over that as either a library or application author. Many apps at prod 
time would be totally fine with having 99% of call sites be static.

Invokedynamic opens up another realm. Ghadi has been exploring that with good 
results. In a future Clojure release (post 1.7) we will drop support for Java 
1.6 and be able to consider that as an option. Indy potentially could give us 
lazy loading and direct call performance and possibly dynamicity too. Anyhow, 
it should be clear, there are a lot of things still to explore before this 
becomes part of Clojure - I expect to see more work on this in 2015.

I think Reid said he was planning to pickup Oxcart over the holidays again. 
Oxcart really has different goals than Clojure and I don't expect it to ever 
directly feed back into Clojure.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to