|
1 | 1 | <!-- -*- mode: markdown ; mode: visual-line ; coding: utf-8 -*- -->
|
2 | 2 |
|
| 3 | +# Changes to Clojure in Version 1.10.1 |
| 4 | + |
| 5 | +## 1 Features and Major Changes |
| 6 | + |
| 7 | +### 1.1 Workaround Java Performance Regression When Loading user.clj |
| 8 | + |
| 9 | +Recent builds of Java 8 (u202), 11 (11.0.2), 12, and 13 included |
| 10 | +some changes that [drastically affect](https://bugs.openjdk.java.net/browse/JDK-8219233) |
| 11 | +optimization performance of calls from static initializers to static fields. |
| 12 | +Clojure provides support for loading code on startup from a user.clj file and this |
| 13 | +occurred in the static initializer of the Clojure runtime (RT) class and was thus |
| 14 | +affected. |
| 15 | + |
| 16 | +This issue may eventually be resolved in Java, but in Clojure we have |
| 17 | +modified runtime initialization to avoid loading user.clj in a static |
| 18 | +initializer, which mitigates the case where this caused a performance |
| 19 | +degradation. |
| 20 | + |
| 21 | +* [CLJ-2484](https://clojure.atlassian.net/browse/CLJ-2484) |
| 22 | + Significant performance regression of code loaded in user.clj in Java 8u202/11.0. |
| 23 | + |
| 24 | +### 1.2 clojure.main Error Reporting |
| 25 | + |
| 26 | +clojure.main is frequently used as a Clojure program launcher by external tools. |
| 27 | +Previously, uncaught exceptions would be automatically printed by the JVM, which |
| 28 | +would also print the stack trace. |
| 29 | + |
| 30 | +This release will now catch exceptions and use the same error triage and printing |
| 31 | +functionality as the Clojure repl. The full stack trace, ex-info, and other |
| 32 | +information will be printed to a target specified by the configuration. |
| 33 | + |
| 34 | +The three available error targets are: |
| 35 | + |
| 36 | +* file - write to a temp file (default, falls back to stderr) |
| 37 | +* stderr - write to stderr stream |
| 38 | +* none - don't write |
| 39 | + |
| 40 | +These error targets can be specified either as options to clojure.main, or as |
| 41 | +Java system properties (flags take precedence). When invoking clojure.main |
| 42 | +(or using the clj tool), use `--report <target>`. For Java system property, |
| 43 | +use `-Dclojure.main.report=<target>`. |
| 44 | + |
| 45 | +* [CLJ-2463](https://clojure.atlassian.net/browse/CLJ-2463) |
| 46 | + Improve error printing in clojure.main with -m, -e, etc |
| 47 | +* [CLJ-2497](https://clojure.atlassian.net/browse/CLJ-2497) |
| 48 | + Put error report location on its own line |
| 49 | +* [CLJ-2504](https://clojure.atlassian.net/browse/CLJ-2504) |
| 50 | + Provide more options for error reporting in clojure.main |
| 51 | + |
| 52 | +## 2 Fixes |
| 53 | + |
| 54 | +* [CLJ-2499](http://dev.clojure.org/jira/browse/CLJ-2499) |
| 55 | + Some compiler expr evals report as wrong error phase |
| 56 | +* [CLJ-2491](https://clojure.atlassian.net/browse/CLJ-2491) |
| 57 | + Updated fragile tests so Clojure test suite runs on Java 12 |
| 58 | + |
3 | 59 | # Changes to Clojure in Version 1.10
|
4 | 60 |
|
5 | 61 | ## 1 Compatibility and Dependencies
|
|
0 commit comments