Earlier today, we released [com.keminglabs/cljx "0.3.0"], which brings a bunch
of significant changes and improvements:
https://github.com/lynaghk/cljx
Existing users should review the changelog entry, as this is a breaking release:
https://github.com/lynaghk/cljx/blob/master/CHANGES.md
cljx is a way to statically rewrite Clojure (or ClojureScript) to be portable
to ClojureScript (or Clojure). This means that you can target both languages
with a single codebase. To do this, you write code in .cljx files, and use
annotations to elide language/runtime-specific forms from the output intended
for different targets. There's better examples in the README (and some handful
of projects using cljx out in the wild, like
https://github.com/cemerick/pprng), but you should get the flavour from this
snippet:
(defn x
[]
(throw (#+clj Exception. #+cljs js/Error. "WTF")))
cljx will produce two files from this input: a .clj file containing the
`Exception.` symbol but not the `js/Error.` symbol, and a .cljs file containing
the inverse. In short, cljx is an s-expression preprocessor (intentionally
very limited — this is all you really need to write practical, portable
Clojure[Script]).
Thanks to Kevin Lynagh for cutting releases and allowing me to play in his
sandbox, and all the others noted in the README that inspired or helped in the
effort.
Happy Clojure[Script]-ing!
- Chas
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.