Skip to content

Latest commit

 

History

History
50 lines (36 loc) · 2.38 KB

compatibility.md

File metadata and controls

50 lines (36 loc) · 2.38 KB

Compatibility

clj 1.9 + cljs 1.10.339 clj 1.10 + cljs 1.10.439 clj 1.10 + cljs 1.10.516 clj 1.10 + cljs 1.10.520
expound yes yes yes yes
explain yes yes yes yes
explain-results yes yes yes yes
expound errors for instrumented functions yes no yes yes
expound errors for macros 1 yes yes yes yes

Relevant JIRAs

Footnotes

  1. Due to the way that macros are expanded in ClojureScript, you'll need to configure Expound in Clojure. This does not apply to self-hosted ClojureScript.

    (Note the -e arg below)

    clj -Srepro -Sdeps '{:deps {expound/expound {:mvn/version "0.9.0"} org.clojure/test.check {:mvn/version "0.9.0"} org.clojure/clojurescript {:mvn/version "1.10.520"}}}' -e "(require '[expound.alpha :as expound]) (set! clojure.spec.alpha/*explain-out* expound.alpha/printer)" -m cljs.main -re node

    Now you will get Expound errors during macro-expansion:

    ClojureScript 1.10.520
    cljs.user=> (require '[clojure.core.specs.alpha])
    nil
    cljs.user=> (let [x])
    Execution error - invalid arguments to cljs.analyzer/do-macroexpand-check at (analyzer.cljc:3772).
    -- Spec failed --------------------
    
      ([x])
       ^^^
    
    should satisfy
    
      even-number-of-forms?
    
    -- Relevant specs -------
    
    :cljs.core.specs.alpha/bindings:
      (clojure.spec.alpha/and
       clojure.core/vector?
       cljs.core.specs.alpha/even-number-of-forms?
       (clojure.spec.alpha/* :cljs.core.specs.alpha/binding))
    
    -------------------------
    Detected 1 error
    cljs.user=>