It seems like the missing word from my vocabulary was "conveyance".

I've spent a fair bit of time toying with Clojure, ClojureScript, and their 
respective implementations. It seems like Clojure 1.3 augmented futures and 
agents with binding-conveyor-fn, clojure.lang.Var/getThreadBindingFrame, 
and clojure.lang.Var/resetThreadBindingFrame.

Despite the lack of threading, it seems like this conveyance concept has 
wide applicability for the common asynchronous code typical in Javascript. 
In particular, I'd like to be able to use some dynamically bound variables 
in callbacks from XHR requests. This would also be extremely useful for 
dynamic var support in Continuation Passing Style transformation macros.

The JVM/Clojure implementation of Var's binding Frame class make clever use 
of persistent maps to make this machinery work, but it appears that 
ClojureScript uses simple Javascript objects/maps as namespaces. Capturing 
a binding frame would involve an O(vars) operation.

Before I dig any deeper into this (including potentially implementing 
conveyance in ClojureScript), I'd appreciate if anyone could fill me in on 
any current thinkings here. I'm sure async is interesting to the key 
ClojureScript contributors, but I've found precious little discussion about 
these topics.

Thanks,
Brandon

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

Reply via email to