Joel Martin
HELLO
my name is
Joel Martin
Principal Software Engineer at LonoCloud
Probably best known for creating noVNC and websockify
A (hopefully temporary) fork of ClojureScript: https://github.com/kanaka/clojurescript
A Port of ClojureScript to ClojureScript
More specifically: A port of the Clojure parts of the ClojureScript compiler to ClojureScript.
The best reason I can give is to show examples of what is possible
(+ 1 1)
(defn frob [x] (apply + 1 (vals (meta x))))
(frob (with-meta [1 2 3] {:a 10 :b 20 :c 30}))
(defmacro surprise-ending [s f]
`(lazy-cat ~s (do ~f nil)))
(def things (surprise-ending [1 2 3]
(println "SURPRISE!"))) nil
(take 2 things)
(take 3 things)
(take 4 things)
(take 4 things)
./run.js repl-out/noderepl.js
time ./shebang.cljs
time ./shebang.clj
mkdir -p out2/cljs
cp out/goog.js out2/
cp out/cljs/core.cljs # Hack alert
./run.js out/cljsc.js hello.cljs > hello.js
./run2.js hello.js
A chronological rather than functional overview of the process.
The beginning: a Clojure/conj hackathon with chouser.
On going work
Most things compile except for some tricky macro/var/namespace interactions in core.clj/core.cljs
The hack: copy the already compiled core.js file and the rest will compile.
Use arrow keys to navigate