3 ms·
At least some of the recent Clojure implementations are based on ClojureScript's compiler, which from what I understand is relatively moduler: http://blog.fogus
by spacemanaki 14y ago
At least some of the recent Clojure implementations are based on ClojureScript's compiler, which from what I understand is relatively moduler: http://blog.fogus.me/2012/03/27/compiling-clojure-to-javascript-pt-3-the-himera-model/ http://blog.fogus.me/2012/03/27/compiling-clojure-to-javascr...
Lisps in general are appealing to implement. Clojure's core language is about as small as Scheme's, and there are a lot of Scheme implementations too. The parts of Clojure that set it apart from other Lisps (STM, persistent data structures) aren't always ported. I don't think any of the recent approaches to targeting C (Clj->Scheme->C, Clj->C) include STM or persistent data structures. I'd be happy to be pleasantly surprised though.
- abp 14y agopersistent data structures are implemented in ClojureScript. So they don't need to be ported for new compilation targets of ClojureScript like C in clojurec, I think.
- dustingetz 14y agoClojureScript's core library has a dependency on Google Closure, and are optimized with knowledge of javascript vms. david nolen said that v8, for example, is blazingly fast at sequential instructions so they take great care to avoid function calls in critical paths. here's some discussion that alludes to performance concerns in js vms: http://dev.clojure.org/jira/browse/CLJS-284 http://dev.clojure.org/jira/browse/CLJS-284 here's the original commit for PersistentVector, note how low level the code is: https://github.com/clojure/clojurescript/commit/e615f4cd326e7c608050272c64c4dfaff9a34689 https://github.com/clojure/clojurescript/commit/e615f4cd326e... here's more discusson by david nolen: https://groups.google.com/forum/?fromgroups#!searchin/clojure/clojurescript$20performance/clojure/c3ho-Y8o6Wg/CwzSLHio0-QJ https://groups.google.com/forum/?fromgroups#!searchin/clojur... more discussion about allowing low level code access to js-specific special forms for numerics: https://groups.google.com/forum/?fromgroups#!searchin/clojure-dev/clojurescript$20performance/clojure-dev/NbvLeJRLQtc/kTzJaZsh6gAJ https://groups.google.com/forum/?fromgroups#!searchin/clojur...