Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Alex Miller
There will soon be a spec for let that will fail in this circumstance, letting you know. On Wednesday, July 6, 2016 at 7:42:22 AM UTC-5, Leon Grapenthin wrote: > > 1.9 could still support the behavior that worked in 1.8 and in CLJS, too, > or throw a compile time Exception. > > If we had known

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Leon Grapenthin
1.9 could still support the behavior that worked in 1.8 and in CLJS, too, or throw a compile time Exception. If we had known this change in behavior, fixing it in the codebase wouldn't have been much trouble. But a missing default can lead to errors far away so it takes time to get to the grou

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Alex Miller
This *is* different than 1.8 (and prior) because it has been buggy since namespaced keys were added (due to a lack of tests - entirely my fault). Nothing was ever documented about this behavior - it was purely accidental and I would consider it in the realm of "unspecified". In 1.9 I added addi

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Nicola Mometto
I'd say that's a bug with 1.8 rather than 1.9 > On 6 Jul 2016, at 13:01, Leon Grapenthin wrote: > > @Alex Miller: Please reconsider. What you state does not apply to 1.8, i. e. > the ns is required in :or and such code is broken in 1.9 > > 1.8/1.9 differences: > (let [{:keys [a/b] :or {b 42}}

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Leon Grapenthin
@Alex Miller: Please reconsider. What you state does not apply to 1.8, i. e. the ns is required in :or and such code is broken in 1.9 1.8/1.9 differences: (let [{:keys [a/b] :or {b 42}} {}] b) => 1.8: nil 1.9: 42(let [{:keys [a/b] :or {a/b 42}} {}] b) => 1.8: 42 1.9: nil On Wednesday, J

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Alex Miller
Thanks! If I could trouble you to make a jira for that, would love to get it fixed. > On Jul 6, 2016, at 4:09 AM, Leon Grapenthin wrote: > > Small bug report > > Throwable->map in core_print.clj doesn't handle Throwable.getCause returning > null in L463. This results in a NPE in StrackTraceEl

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Alex Miller
This is the correct behavior. The :or map keys are always the local names being bound (not the keys being looked up in the map). > On Jul 6, 2016, at 4:40 AM, Leon Grapenthin wrote: > > Another small bug report: > > (let [{:keys [a/b] :or {a/b 42}} {}] > b) > > Evaluates to nil, but should

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Leon Grapenthin
Another small bug report: (let [{:keys [a/b] :or {a/b 42}} {}] b) Evaluates to nil, but should evaluate to 42 (let [{:keys [a/b] :or {b 42}} {}] b) Evaluates to 42, but should evaluate to nil. On Tuesday, July 5, 2016 at 9:50:47 PM UTC+2, Alex Miller wrote: > > Clojure 1.9.0-alpha9 is n

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-06 Thread Leon Grapenthin
Small bug report Throwable->map in core_print.clj doesn't handle Throwable.getCause returning null in L463. This results in a NPE in StrackTraceElement->vec in the same file in some cases, so printing a stacktrace results in a new Exception which is a bit confusing. On Tuesday, July 5, 2016 at

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-05 Thread Alex Miller
Haven't talked about it yet. On Tuesday, July 5, 2016 at 3:07:27 PM UTC-5, Sam Estep wrote: > > Awesome, thank you Alex! By the way, are there any plans to add more > elegant support for "hybrid maps" (as discussed here > and here >

Re: [ANN] Clojure 1.9.0-alpha9

2016-07-05 Thread Sam Estep
Awesome, thank you Alex! By the way, are there any plans to add more elegant support for "hybrid maps" (as discussed here and here ) in the future? On Tuesday, July 5, 2016 at 3:50:47 PM U

[ANN] Clojure 1.9.0-alpha9

2016-07-05 Thread Alex Miller
Clojure 1.9.0-alpha9 is now available. Try it via - Download: https://repo1.maven.org/maven2/org/clojure/clojure/1.9.0-alpha9 - Leiningen: [org.clojure/clojure "1.9.0-alpha9"] 1.9.0-alpha9 includes the following changes since 1.9.0-alpha8: - NEW clojure.spec/assert - a facility for adding spec