[ANN] Clojure 1.9.0-alpha15 is now available

894 views
Skip to first unread message

Alex Miller

unread,
Mar 14, 2017, 12:39:35 PM3/14/17
to Clojure
Clojure 1.9.0-alpha15 is now available.

Try it via

- Leiningen: [org.clojure/clojure "1.9.0-alpha15"]

1.9.0-alpha15 includes the following changes since 1.9.0-alpha14:

- CLJ-1793 - reducer instances hold onto the head of seqs (also applies to a broader set of head-holding cases)
- CLJ-2043 - s/form of conformer is broken
- CLJ-2035 - s/form of collection specs are broken
- CLJ-2100 - s/form of s/nilable should include the original spec, not the resolved spec

Specs:

- CLJ-2062 - added specs for `import` and `refer-clojure`
- CLJ-2114 - ::defn-args spec incorrectly parses map body as a prepost rather than function body
- CLJ-2055 - binding-form spec parses symbol-only maps incorrectly

Infrastructure:

- CLJ-2113 - Clojure maven build updated

Alex Miller

unread,
Mar 14, 2017, 12:45:43 PM3/14/17
to Clojure
Looks like while CLJ-1793 was ok'ed for this alpha, it was missed when the patches were applied, so that one will not be in until the next alpha. Whoops!

Dmitri

unread,
Mar 14, 2017, 1:38:53 PM3/14/17
to Clojure
looks like the latest core.async fails Spec validation with alpha15:

Caused by: clojure.lang.ExceptionInfo: Call to clojure.core/refer-clojure did not conform to spec:
In: [2] val: (quote :as) fails at: [:args :exclude :op :spec] predicate: #{:exclude}
In: [2 1] val: :as fails at: [:args :exclude :op :quoted-spec :spec] predicate: #{:exclude}
In: [2] val: (quote :as) fails at: [:args :only :op :spec] predicate: #{:only}
In: [2 1] val: :as fails at: [:args :only :op :quoted-spec :spec] predicate: #{:only}
In: [2] val: (quote :as) fails at: [:args :rename :op :spec] predicate: #{:rename}
In: [2 1] val: :as fails at: [:args :rename :op :quoted-spec :spec] predicate: #{:rename}
:clojure.spec/args  ((quote :exclude) (quote [reduce transduce into merge map take partition partition-by bounded-count]) (quote :as) (quote core))
 {:clojure.spec/problems ({:path [:args :exclude :op :spec], :pred #{:exclude}, :val (quote :as), :via [], :in [2]} {:path [:args :exclude :op :quoted-spec :spec], :pred #{:exclude}, :val :as, :via [], :in [2 1]} {:path [:args :only :op :spec], :pred #{:only}, :val (quote :as), :via [], :in [2]} {:path [:args :only :op :quoted-spec :spec], :pred #{:only}, :val :as, :via [], :in [2 1]} {:path [:args :rename :op :spec], :pred #{:rename}, :val (quote :as), :via [], :in [2]} {:path [:args :rename :op :quoted-spec :spec], :pred #{:rename}, :val :as, :via [], :in [2 1]}), :clojure.spec/args ((quote :exclude) (quote [reduce transduce into merge map take partition partition-by bounded-count]) (quote :as) (quote core))}, compiling:(clojure/core/async.clj:9:1)

Alex Miller

unread,
Mar 14, 2017, 1:45:13 PM3/14/17
to Clojure
Yes, this is a bad use of refer-clojure which fails with the new spec. It has been fixed and a release job for core.async is waiting on the build box.

Dmitri

unread,
Mar 14, 2017, 1:47:10 PM3/14/17
to Clojure
Reply all
Reply to author
Forward
0 new messages