Self-Hosted ClojureScript入門
2016.05.21 Yoshito Komatsu
What is ClojureScript?
ClojureScript is a compiler for Clojure that targets JavaScript.
It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler.
--- clojure/clojurescript: Clojure to JS compiler https://github.com/clojure/clojurescript
ClojureScriptコンパイラーはClojure/Java VMで動く
ClojureScriptコンパイラーをClojureScriptコンパイラーでコンパイルしたい
The Beginning of Self-Hosted ClojureScript
self-hosting
(A compiler) can compile its own code
Self-Hosted ClojureScript is also known as:
- Bootstrapped ClojureScript
- ClojureScript-in-ClojureScript
Self-Hosted ClojureScript
2015.07.29
ClojureScript can compile itself.
--- David Nolen, ClojureScript Next
想定される使用例1
- Shipping dev tools that don't require a JVM dependency.
- Low-latency scripting, making use of JavaScript engines' inherent fast startup in interpreted mode.
Currently bootstrapped ClojureScript REPLs are 20-30% faster to start up than Clojure and tens of times faster than the standard JVM based ClojureScript REPLs.
- Live updates to deployed codebases.
(Ship code that can be compiled in target environment and dynamically incorporated in app. Mobile app updates, etc.)
--- Bootstrapped ClojureScript FAQ
想定される使用例2
- Web pages that provide dynamic online tutorials or showcase ClojureScript libraries.
- REPLs on mobile devices, without requiring network access to a compiler backend.
- Diagnostic REPLs embedded in apps, making it easier to examine state of running app.
--- Bootstrapped ClojureScript FAQ
- Self-Hosted ClojureScriptを動かすために必要な情報はcljs.js名前空間に大体ある
- cljs.js/analyze-str
- cljs.js/compile-str
- cljs.js/eval-str
- ClojureScriptコンパイラーの最初の状態はcljs.js/empty-stateで入手できる