[ANN] Clojure 1.10.0-beta8

1,611 views
Skip to first unread message

Alex Miller

unread,
Nov 21, 2018, 10:17:26 AM11/21/18
to Clojure
1.10.0-beta8 is now available.

You can try it with clj using:

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

Changes in 1.10.0-beta8:
  • CLJ-2438 - demunge source location in execution error messages
  • CLJ-2437 - add async-require and use it from requiring-resolve
  • CLJ-2436 - fix reflection warning in reflect.java
You can read the full 1.10 changelog here: https://github.com/clojure/clojure/blob/master/changes.md

Alexander Yakushev

unread,
Nov 21, 2018, 12:29:38 PM11/21/18
to Clojure
Could I suggest bikeshedding on the name async-require? Before I've seen the patch, my initial impression was that it loads namespaces asynchronously (that is, returns control immediately and loads them in the background). It might be somewhat confusing that a function async-require is actually even more synchronous than the regular require :). How about synchronized-require (it's basically word-to-word description of the function body)?

Otherwise, thanks for this one, I needed something like this plenty of times!

Alex Miller

unread,
Nov 21, 2018, 12:54:39 PM11/21/18
to clo...@googlegroups.com
We’re good with the name. The docstring exists for further explanation.
--
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
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "Clojure" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/2GQQpxNcDlM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Sean Corfield

unread,
Nov 21, 2018, 1:09:21 PM11/21/18
to clo...@googlegroups.com

This makes me smile… My first reaction to the name was the same as Alexander’s and then my second reaction cut in: “No, they’ll have thought about the name and won’t entertain changes” 😊

 

It’s for safely doing requires in asynchronous (multi-threaded) 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: Wednesday, November 21, 2018 9:54:28 AM
To: clo...@googlegroups.com
Subject: Re: [ANN] Clojure 1.10.0-beta8
 
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.

Chris Nuernberger

unread,
Nov 21, 2018, 1:34:16 PM11/21/18
to clo...@googlegroups.com
Agreed, specifically to avoid things like this:

Great timing and we will be looking forward to it!

Timothy Baldridge

unread,
Nov 21, 2018, 2:25:42 PM11/21/18
to clo...@googlegroups.com
>>   We’re good with the name. The docstring exists for further explanation. 

Except the code is less-readable. The name is meaningless. "async-require" appends the adverb "async" to the verb "require", therefore making it an asynchronous variant of require, which is exactly the opposite of what the function actually does. So it might as well be named `foo-require`. Actually `foo-require` is better, since I don't know what `foo` means and I'd look up the docstring to find out. With `async-requrie` I now have more cognitive load having to remember what Clojure's special definition of `async` is in this context. All these crazy edge-cases in the naming of the language really start to add up after awhile, and it takes mental space away that I could be using to focus on the problem I'm trying to solve. 

It blows my mind that the Clojure team even cares enough to say no to this, why does it matter this much that it can't change. This conversation reinforces the view that Clojure is close-source development. Once the community hears about a feature, it's written in stone. Apparently all required input has already been thought of and anything the community says couldn't possibly matter. 
“One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.”
(Robert Firth)

Andy Fingerhut

unread,
Nov 21, 2018, 2:40:16 PM11/21/18
to clo...@googlegroups.com
I suspect Alex and other folks have already done all of the bikeshedding internally that they have the patience for, and are content with the name and the reasons they ahve for it, and are not enthusiastic about another round of that in a public forum.

Rich owns Clojure code legally, and I would say ethically as well (given his time investment vs. that of others in it, and his original authorship of most of the code, and that everyone who contributed code agreed in advance to give him co-ownership).  Project maintainers get to craft the rules by which changes are made, for any project.  Some choose to turn it over to a committee, others do not.

Andy

Alex Miller

unread,
Nov 21, 2018, 2:46:29 PM11/21/18
to Clojure
Geez, man, relax and have a drumstick. The audience for this is, I expect, small. Over time we expect to monkey with the internals of require itself, and this will basically become deprecated, but that was too much for this point in 1.10.

Also, please note that the other two parts of this beta are based on community feedback from beta7.

Timothy Baldridge

unread,
Nov 21, 2018, 2:52:06 PM11/21/18
to clo...@googlegroups.com
For sure, but some documentation of that process would be nice, otherwise the “nah, were good” replies come off as condescending. 

I’ve typed up a few other comments, and then deleted them, as they’re getting too OT. So I’ll exit the conversation, and unsub from this mailing list, since it’s clear outside input isn’t valued, aside from being crowdsourced QA.

Alexander Yakushev

unread,
Nov 21, 2018, 3:14:17 PM11/21/18
to Clojure
Absolutely not trying to propel this discussion forward, but ackchyually even with the given semantics ("async-require should be used in asynchronous code"), the better word would be "concurrent" or "multithreaded".

But I certainly didn't intend this thread to unwind so much and take away this much time. I'm staying with Andy on this, godspeed, we're eagerly waiting for the 1.10 release.

Sean Corfield

unread,
Nov 22, 2018, 11:56:42 AM11/22/18
to clo...@googlegroups.com

In news that should surprise no one: our full test suite passes on Beta 8 (I meant to post that yesterday afternoon but got distracted).

 

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

 

Sent: Wednesday, November 21, 2018 7:17:26 AM
To: Clojure
Subject: [ANN] Clojure 1.10.0-beta8
 
--
Reply all
Reply to author
Forward
0 new messages