[ANN] Clojure 1.9.0-beta4

1,058 views
Skip to first unread message

Alex Miller

unread,
Oct 31, 2017, 10:24:04 AM10/31/17
to Clojure
Clojure 1.9.0-beta4 is now available.

Try it via

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

1.9.0-beta4 includes the following changes since 1.9.0-beta3:

- CLJ-2259 - Remove unnecessary bigdec? predicate added in 1.9
- Bumped spec.alpha dependency to 0.1.143

We would appreciate anything you can do to try out this release. We do not plan to make any further changes prior to 1.9.0 release unless regressions are found.

Sean Corfield

unread,
Nov 1, 2017, 11:21:50 AM11/1/17
to clo...@googlegroups.com

Aside from needing to change bigdec? to decimal? in four places in our code, testing with Beta 4 has not shown any problems so we’ll probably go to production with it early next week.

 

FWIW, bigdec? seemed to fit better, given bigdec as a coercion and BigDecimal as the underlying type – decimal? always seemed like the anomaly.

 

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: Tuesday, October 31, 2017 7:24:04 AM
To: Clojure
Subject: [ANN] Clojure 1.9.0-beta4
 
--
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 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.

Didier

unread,
Nov 1, 2017, 9:26:12 PM11/1/17
to Clojure
FWIW, bigdec? seemed to fit better, given bigdec as a coercion and BigDecimal as the underlying type – decimal? always seemed like the anomaly.

Thought so too, but since there's no small decimal, or any other decimal, its survivable. Though it does get a bit confusing, especially since int? exclude bigint, for which you have to use integer?, which gets very confusing if that includes or not biginteger.

My conclusion is, its already all a bit of a mess, so maybe the broken window principle applies here (even though that principle is actually to say broken windows are not a good reason to break more of them, but...).

Alan Thompson

unread,
Nov 2, 2017, 2:29:33 PM11/2/17
to clo...@googlegroups.com
Hi.  1.9.0-beta4 works great for the Tupelo library on java 1.8, but I get the following warnings using Java 9.0.1:

​WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by dynapath.defaults$eval380$fn__381 to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of dynapath.defaults$eval380$fn__381
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

lein test tst.tupelo._bootstrap

---------------------------------------
   Clojure 1.9.0-beta4    Java 9.0.1
---------------------------------------

Is Clojure 1.9 intended to be compatible with Java 9?

Alan





For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
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+unsubscribe@googlegroups.com.

Andy Fingerhut

unread,
Nov 2, 2017, 3:31:59 PM11/2/17
to clo...@googlegroups.com
Alan, I get similar messages when starting 'lein repl' with this combination of versions:
+ Leiningen version 2.8.0, Clojure 1.8.0, Java 9.0.1 (note - No Clojure 1.9.0 involved)

Changing only the Leiningen to version 2.8.1 and there is no such error message.

Andy

Alex Miller

unread,
Nov 2, 2017, 3:46:35 PM11/2/17
to clo...@googlegroups.com
I think this is an issue with Leiningen with Java 1.9 (re things in dynapath and the changes in classloader details in Java 1.9), and not Clojure itself. 

Peter Hull

unread,
Nov 2, 2017, 4:11:25 PM11/2/17
to Clojure
On Thursday, 2 November 2017 19:46:35 UTC, Alex Miller wrote:
I think this is an issue with Leiningen with Java 1.9 (re things in dynapath and the changes in classloader details in Java 1.9), and not Clojure itself. 

Yes this was leiningen issue #2331 now fixed:

Alan Thompson

unread,
Nov 3, 2017, 4:37:09 PM11/3/17
to clo...@googlegroups.com
OK, I upgraded lein to 2.8.1, and it removed one of the error messages.   I still have one remaining:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by clojure.lang.Reflector (file:/home/alan/.m2/repository/org/clojure/clojure/1.9.0-beta4/clojure-1.9.0-beta4.jar) to method com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(org.xml.sax.InputSource,org.xml.sax.helpers.DefaultHandler)
WARNING: Please consider reporting this to the maintainers of clojure.lang.Reflector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

It seems to claim that  clojure.lang.Reflector  is a problem....   Trying to narrow it down.
Alan


Alex Miller

unread,
Nov 3, 2017, 4:50:31 PM11/3/17
to clo...@googlegroups.com
I believe this is https://dev.clojure.org/jira/browse/CLJ-2066 which can most easily be fixed by avoiding reflection. If this is happening from data.xml, newer versions of that lib have fixed it I believe.

Alan Thompson

unread,
Nov 3, 2017, 5:03:14 PM11/3/17
to clo...@googlegroups.com
Just upgraded from 0.0.8 to 

[org.clojure/data.x
​​
ml "0.2.0-alpha3"]

 and am still getting the same error.  The offending statement is 

(clojure.data.xml/parse  <buffered input stream>  )

where the BIS is the result of 

  (clojure.java.io/resource <html file>))
​Alan

Toby Crawley

unread,
Nov 3, 2017, 8:26:10 PM11/3/17
to clo...@googlegroups.com
This is indeed related to CLJ-2066 - the issue is the object that
data.xml is trying to reflect on is a SaxParserImpl, which comes from
a non-exported module in Java 9. The object implements SaxParser, and
parse() is a public method there, but Reflector is calling getClass()
on the object and trying to reflect on the result instead of on the
SaxParser parent class. The module system doesn't like any reflective
access on classes from non-exported packages, so complains. CLJ-2066
provides a patch that modifies Reflector to walk the ancestor tree
looking for something it can legally reflect on. However, that patch
was made when Java 9 early access builds would throw instead warn when
you made this type of access - now that it warns, the Reflector has no
way to know that it should walk the ancestor tree instead (without
adding Java 9 specific code, breaking Clojure on java < 9 unless
Clojure moves to a multi-release jar) since there is no exception, so
the only way to avoid this warning is to have wherever is calling
.parse() on the SaxParser type-hint. I looked through the data.xml
code, and it wasn't obvious to me where that is happening (that's one
frustrating thing about the reflection warning - it doesn't give a
stack, so tracking down where it is actually happening can be
difficult).

- Toby
>>> 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 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.
>>
>>
>
> --
> 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 the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages