[ANN] Clojure 1.10.0-RC1 (please test!)

Skip to first unread message

Alex Miller

Oct 11, 2018, 11:11:45 AM10/11/18
to Clojure
1.10.0-RC1 is now available. You can try it with clj using:

      clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.10.0-RC1"}}}'

1.10.0-RC1 is the same code as beta2 (only change are some changelog fixes). 

You can read the full 1.10 changelog here: https://github.com/clojure/clojure/blob/master/changes.md

Note: This is a release candidate! Please try this release candidate with your project and provide feedback (both whether it works as expected and any issues). If there are issues we will assess, otherwise we intend to move towards a final release of 1.10. 

Rick Moynihan

Oct 11, 2018, 11:29:22 AM10/11/18
to Clojure
Hi  Alex,

I've tried updating 4 of our projects to 1.10.0-RC1 and running their test suites etc and have uncovered no issues so far.

Many, many thanks to everyone for their hardwork!


You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
For more options, visit this group at
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Alex Miller

Oct 11, 2018, 11:31:52 AM10/11/18
to Clojure
Thanks, good to hear.

Marc O'Morain

Oct 11, 2018, 11:33:31 AM10/11/18
to Clojure
Yeah, nice work on getting to a RC Alex &co.


Oct 11, 2018, 12:06:08 PM10/11/18
to Clojure

Small suggestion.  Under dependency updates it would be helpful to see the previous version eg

"spec.alpha dependency to 0.2.176" -> "spec.alpha dependency from X.X.XXX to 0.2.176"

Matthew Phillips

Oct 11, 2018, 8:22:04 PM10/11/18
to Clojure
Hi Alex, have just finished testing on an 18 KLOC Clojure backend service (Java 8, Linux). Test suites and deployed service runs fine.

Let me add my thanks for your hard work!



Andy Fingerhut

Oct 11, 2018, 11:34:37 PM10/11/18
to clo...@googlegroups.com
I ran the latest version of Eastwood on the Clojure code itself, and didn't find any surprising/new warnings.  There are a fair number of reflection warnings in what I would consider non-performance-critical functions (e.g. clojure.java.browse/open-url-in-browser, and code for handling/printing exceptions) that are not new.  There are also what I think have always been reflection warnings for things like aget/aset that I don't recall digging into before -- Clojure code for that stuff hasn't changed in quite a while, so I can't see that is anything new.

I made some preliminary updates to the Clojure cheatsheet in preparation for the 1.10 release, and noticed that the new Var clojure.main/ex-str does not have any :added "1.10" metadata for it, but many other Vars in clojure.main also do not, so perhaps that is intentional.

I will try a full run of Eastwood on a set of 80+ open source projects with Clojure 1.9.0 and 1.10.0-RC1 soon-ish, and see if anything surprising comes out of that.  I've done it with 1.10.0-beta1 and didn't see any issues, and don't expect any problems.



Sean Corfield

Oct 12, 2018, 12:43:40 AM10/12/18
to clo...@googlegroups.com

RC1 seems to be doing just fine in dev/test for us (83K lines of code, including tests). We have Beta 1 in production on one server and Alpha 8 on the other four servers. No problems with any of that so far. I expect to have RC1 on all our servers next week.


And we’re happily taking advantage of ex-message now in our code 😊


Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood


From: clo...@googlegroups.com <clo...@googlegroups.com> on behalf of Alex Miller <al...@puredanger.com>
Sent: Thursday, October 11, 2018 8:11:45 AM
To: Clojure
Subject: [ANN] Clojure 1.10.0-RC1 (please test!)

Bozhidar Batsov

Oct 12, 2018, 1:15:54 AM10/12/18
to clo...@googlegroups.com
You might want to add to the datafy ns and function that they were introduced in 1.10. I noticed they didn't have the :added metadata that most Clojure core stuff has (it's very handy in IDEs/starter editors). 

Juraj Martinka

Oct 12, 2018, 2:31:25 AM10/12/18
to Clojure
Btw. I was facing issues with `lein repl` after switching to clojure 1.10:

lein repl

Exception in thread "main" java.lang.ExceptionInInitializerError
        at clojure.main.<clinit>(main.java:20)
Compilation failed: Subprocess failed

Cleaning .lein* files in the project directory fixed it:
rm .lein-env .lein-failures .lein-repl-history

Łukasz Korecki

Oct 12, 2018, 3:28:46 AM10/12/18
to Clojure
I've run tests against our biggest Clojure app (~40k LOC with tests) - no failures, Uberjar compiled cleanly as well. 
We're giong to deploy it to our testing environment early next week.


Jeroen van Dijk

Oct 12, 2018, 7:09:42 AM10/12/18
to clo...@googlegroups.com
Tested against closh (clojure shell): Uberjar works via boot, acts normally when started.  (details)

(For what it's worth the error between 1.9 and 1.10 on GraalVM is slightly different, however both version don't work anyway yet [background])


Erik Assum

Oct 12, 2018, 10:13:46 AM10/12/18
to clo...@googlegroups.com
I’ve ran our app and it seems to work. Tests are also passing.

Looking forward to 1.10.



Erik Assum

Oct 12, 2018, 10:16:14 AM10/12/18
to clo...@googlegroups.com
Having said that, it seems like Cider/nrepl needs to be updated?

ardoq.api.survey-api> (let [2])
Syntax error macroexpanding clojure.core/let at (*cider-repl ardoq.com/ardoq-api:localhost:53859(clj)*:7015:23).
[2] - failed: even-number-of-forms? at: [:bindings] spec: :clojure.core.specs.alpha/bindings
14715723 [clojure-agent-send-off-pool-28] ERROR []  clojure.tools.nrepl.server - Unhandled REPL handler exception processing message {:op stacktrace, :pprint-fn clojure.pprint/pprint, :print-length 50, :print-level 50, :session 8442d3d0-9a9d-43d6-8693-bdde270bd4e8, :id 237} 
java.lang.NullPointerException: null
at clojure.string$replace_first.invokeStatic(string.clj:165) ~[clojure-1.10.0-RC1.jar:na]
at clojure.string$replace_first.invoke(string.clj:138) ~[clojure-1.10.0-RC1.jar:na]
at cider.nrepl.middleware.stacktrace$relative_path.invokeStatic(stacktrace.clj:204) ~[na:na]
at cider.nrepl.middleware.stacktrace$relative_path.invoke(stacktrace.clj:198) ~[na:na]
at cider.nrepl.middleware.stacktrace$extract_location.invokeStatic(stacktrace.clj:219) ~[na:na]

@bbatsov Should I file an issue for this?


Alex Miller

Oct 12, 2018, 10:54:31 AM10/12/18
to clo...@googlegroups.com
That's interesting. So this case of a spec exception during macroexception threw before but the exception handler structure is different in 1.10.

Before you would have gotten the spec ExceptionInfo. Now you should get a CompilerException wrapping that ExceptionInfo. It looks like the error is in parsing the location out of the message (which is probably missing now as that's built later). The top-level CompilerException now has an ex-data that reports the line number directly so no parsing is needed.

So if the code first looked for ex-data with source/line/col info then fell back to string parsing, that would work for both:

user=> (let [2])
Syntax error macroexpanding clojure.core/let at (1:1). Cause: Call to clojure.core/let did not conform to spec.
[2] - failed: even-number-of-forms? at: [:bindings] spec: :clojure.core.specs.alpha/bindings
user=> (ex-data *e)
#:clojure.error{:line 1, :column 1, :phase :macroexpand, :source "NO_SOURCE_PATH", :symbol clojure.core/let}

^^ can just use (-> *e ex-data :clojure.error/line) now to grab the line, etc

As far as I can tell, this doesn't need any change in Clojure.

Erik Assum

Oct 12, 2018, 12:03:49 PM10/12/18
to clo...@googlegroups.com

Ken Restivo

Oct 17, 2018, 11:55:17 PM10/17/18
to clo...@googlegroups.com
On Thu, Oct 11, 2018 at 08:11:45AM -0700, Alex Miller wrote:
> 1.10.0-RC1 is now available. You can try it with clj using:
> clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.10.0-RC1"}}}'
> 1.10.0-RC1 is the same code as beta2 (only change are some changelog
> fixes).
> You can read the full 1.10 changelog here:
> https://github.com/clojure/clojure/blob/master/changes.md
> *Note: This is a release candidate! Please try this release candidate with
> your project and provide feedback (both whether it works as expected and
> any issues).* If there are issues we will assess, otherwise we intend to
> move towards a final release of 1.10.

I ran the 3 projects at work that use 1.9.0 in production, and they passed
unit tests with 1.10.0 RC1.

Reply all
Reply to author
0 new messages