[ASYNC-142] Rename ClojureScript namespace from cljs.core.async to clojure.core.async Created: 18/Aug/15 Updated: 03/Oct/15
I'm not sure what the original reasoning for using separate namespaces for the Clojure and ClojureScript versions of core.async were, but now with Reader Conditionals people are able to write cross platform code that targets both at the same time. For that reason, it would be nice to only need to require clojure.core.async so that the require didn't need to be split into two platform specific requires for the same library.
The biggest downside to this is that it would break backwards compatibility. However core.async is still in alpha, and updating code to reference the new namespace should be simple and able to be done quickly. It may be possible to leave a shim namespace in place for some time to allow people to migrate their code.
|Comment by Alex Miller [ 18/Aug/15 8:36 AM ]|
I think we should do this, but it will likely be in tandem with a bigger set of changes (build, moving away from Clojure 1.6, etc).
|Comment by Thomas Heller [ 03/Oct/15 5:48 AM ]|
The biggest problem here are macros. The CLJS implementation (and cljs.core.async.macros) is very different from the CLJ one. Given that CLJS still requires :require-macros to use macros I doubt we can come up with a solution that does NOT require Reader Conditionals in their NS form.
CLJS can easily do away with macros requiring the extra :include-macros or :refer-macros (instead of just :refer) though. David Nolen rejected my initial implementation but was open to addressing the issue somewhere else . I never went to pursue this via JIRA but it is probably something that should be solved prior to renaming things from cljs.core.async.