Fork me on GitHub

I'm curious if ClojureScript' Spec implementation would be ultimately broken out from ClojureScript proper (and added to (I also wonder if the plan is to ultimately have released versions of Spec that are independent of Clojure / ClojureScript.)

Alex Miller (Clojure team)16:12:07

we’ve talked about it a few times and so far it has seemed easier to keep cljs spec in cljs rather than in spec.alpha

Alex Miller (Clojure team)16:12:45

depending on what you mean in the parens, we are either already doing that or it doesn’t make sense :)

Alex Miller (Clojure team)16:12:40

that is, spec is already a library independent of Clojure. it is released independently and while a particular version of Clojure depends on a particular version of spec, you are free to also override that with a newer version of spec

Alex Miller (Clojure team)16:12:13

in cljs, obviously that dynamic is different due to its direct inclusion

Alex Miller (Clojure team)16:12:35

but cljs releases much more frequently, so I don’t think it’s too critical


@alexmiller Cool. I was thinking that if the separation of spec.alpha from Clojure was only a temporary thing to facilitate the 1.9.0 release, and if it were to be baked in, say 1.10.0, then it would be silly to break spec.alpha out of ClojureScript, given that long-term plan. Sounds like it will always be independent. ClojureScript could go either way on the subject.

Alex Miller (Clojure team)16:12:27

atm I would say we don’t plan to re-integrate spec into Clojure

Alex Miller (Clojure team)16:12:50

but I reserve the right to say something different later :)


Absolutely. It is also still alpha 🙂


yes I think given our different release cycle, keeping spec.alpha in ClojureScript directly isn’t much of an issue


If you brew upgrade node on macOS, bringing it to 9.2.1, then script/test-self-parity only makes it through the first few tests and then abends on one of my computers. I'm going to figure out if this is a ClojureScript issue or a Node regression.


trying it here with v8.9.1


Node doesn't just die either, instead of

Ran 356 tests containing 18801 assertions.
0 failures, 0 errors.
I got fewer than the full suite being run, but with 0 failures, 0 errors. It is not reproducible on the same box. Arg. Might be a race condition.


it works with v8.9.1 here


Cool. It also works with v9.2.1 here on various boxes, but one was repeatedly exhibiting the "early termination". Will keep digging and trying to repro.


Here is an example of the self host tests failing under Node. No change other than repeating the test run several times until it occurs:

Testing with Node

Testing self-host.test
WARNING: double already refers to: cljs.core/double being replaced by: cljs.user/double at line 1

Ran 33 tests containing 206 assertions.
0 failures, 0 errors.
Full transcript of the run here:


@mfikes cool thanks for digging in