FWIW: I was working on my own attempt at a self-hosting CLJS compiler up until
a few months ago, and actually wound up submitting a GSoC project proposal to
make the mainline cljsc self-hosting. Though it wasn't accepted, I did have the
opportunity to talk to some of the other people working on CLJS compiler stuff
and get a feel for what is and isn't planned for the future.
Broadly speaking, tools.analyzer is more or less host-agnostic as is; it only
takes a few fairly trivial modifications to get the current tools.analyzer to
compile to JS under the current cljsc. The current primary maintainer of the
tools.{reader,analyzer} libraries is decidedly interested in ports of each to
CLJS, and his own GSoC project will likely produce some progress in this
direction.
We don't quite yet have a "tools.analyzer.js" or similar that would fulfill a
similar role to t.a.jvm for the JS platform, but it'd not be too difficult to
write one on top of tools.analyzer as is.
I was told that cljx categorically won't be accepted as a dependency in any
contrib libraries; there _does_ exist a desire to add feature expressions
directly to the language in the near future, which would play more or less the
same role.
Probably the most promising thing I've produced myself is an unfinished
experimental "tools.emitter.js" that replaces the current cljsc's
string-munging model of JS generation with a functionally pure pipeline from
Clojure AST -> JavaScript CST -> raw JS code string.
Overall, I think the best path forward does indeed involve modifying the
current mainline cljsc to use tools.analyzer(.js) and tools.emitter.js as soon
as those libraries exist in usable form. CLJS-in-CLJS as a goal is probably
well within reach given the pace of progress on the various
tools.{reader,analyzer,emitter} libraries that already exist, but it'll take
some heavy lifting to put all the pieces together.
-Max
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.