cljs/api

Include both JVM and JS implementations

Opened this issue · 1 comments

As was mentioned, we should probably show both JVM and JS implementations: #147

This is confusing because there are two versions of the ClojureScript compiler:

  1. ClojureScript JVM (built in Clojure) - the optimized compiler for use in production
  2. ClojureScript JS (built in ClojureScript) - the bootstrapped compiler that was added after some years

Both versions are in the same codebase, but they are separated by the #?(:clj ...) and #?(:cljs ...) switches, respectively.

We're currently only reading the :clj versions of the functions

cljc files that we are currently parsing:

$ grep ':filename.*\.cljc' cljs-api.edn | awk '{print $2}' | tr -d '",' | sort -u

# library

src/main/cljs/cljs/pprint.cljc
src/main/cljs/cljs/test.cljc

src/main/cljs/cljs/spec.cljc
src/main/cljs/cljs/spec/alpha.cljc
src/main/cljs/cljs/spec/gen/alpha.cljc
src/main/cljs/cljs/spec/impl/gen.cljc
src/main/cljs/cljs/spec/test.cljc
src/main/cljs/cljs/spec/test/alpha.cljc

# compiler

src/main/clojure/cljs/core.cljc
src/main/clojure/cljs/compiler.cljc
src/main/clojure/cljs/repl.cljc
src/main/clojure/cljs/tagged_literals.cljc

src/main/clojure/cljs/analyzer.cljc
src/main/clojure/cljs/analyzer/api.cljc