Skip to content

Commit

Permalink
1.8.0-alpha4 changes
Browse files Browse the repository at this point in the history
Signed-off-by: Stuart Halloway <[email protected]>
  • Loading branch information
puredanger authored and stuarthalloway committed Aug 3, 2015
1 parent 4bb1dbd commit e58042c
Showing 1 changed file with 96 additions and 0 deletions.
96 changes: 96 additions & 0 deletions changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,101 @@
<!-- -*- mode: markdown ; mode: visual-line ; coding: utf-8 -*- -->

# Changes to Clojure in Version 1.8

## 1 New and Improved Features

### 1.1 Direct Linking

*This feature is a work in progress, subject to change.*

Direct linking can be enabled with -Dclojure.compiler.direct-linking=true

Direct linking allows functions compiled with direct linking on to make direct
static method calls to most other functions, instead of going through the var
and the Fn object. This can enable further optimization by the jit, at a cost
in dynamism. In particular, directly-linked calls will not see redefinitions.

As of 1.8.0-alpha3, clojure.core is compiled with direct linking by default
and therefore other namespaces cannot redefine core fns and have those
redefinitions seen by core code.

Functions declared as dynamic will never be direct linked.

## 2 Enhancements

### 2.1 Error messages

### 2.2 Documentation strings

* [CLJ-1060](http://dev.clojure.org/jira/browse/CLJ-1060)
'list*' returns not a list
* [CLJ-1722](http://dev.clojure.org/jira/browse/CLJ-1722)
Typo in the docstring of 'with-bindings'
* [CLJ-1769](http://dev.clojure.org/jira/browse/CLJ-1769)
Docstrings for *' and +' refer to * and +

### 2.3 Performance

* [CLJ-703](http://dev.clojure.org/jira/browse/CLJ-703)
Improve writeClassFile performance

### 2.4 Other enhancements

* [CLJ-1208](http://dev.clojure.org/jira/browse/CLJ-1208)
Optionally require namespace on defrecord class init

## 3 Bug Fixes

* [CLJ-130](http://dev.clojure.org/jira/browse/CLJ-130)
Namespace metadata lost in AOT compile
* [CLJ-1134](http://dev.clojure.org/jira/browse/CLJ-1134)
star-directive in clojure.pprint/cl-format with at-prefix ("~n@*") does
not obey its specification
* [CLJ-1137](http://dev.clojure.org/jira/browse/CLJ-1137)
Metadata on a def gets evaluated twice
* [CLJ-1157](http://dev.clojure.org/jira/browse/CLJ-1157)
Classes generated by gen-class aren't loadable from remote codebase
* [CLJ-1225](http://dev.clojure.org/jira/browse/CLJ-1225)
quot overflow issues around Long/MIN_VALUE for BigInt
* [CLJ-1250](http://dev.clojure.org/jira/browse/CLJ-1250)
Reducer (and folder) instances hold onto the head of seqs
* [CLJ-1313](http://dev.clojure.org/jira/browse/CLJ-1313)
Correct a few unit tests
* [CLJ-1319](http://dev.clojure.org/jira/browse/CLJ-1319)
array-map fails lazily if passed an odd number of arguments
* [CLJ-1361](http://dev.clojure.org/jira/browse/CLJ-1361)
pprint with code-dispatch incorrectly prints a simple ns macro call
* [CLJ-1390](http://dev.clojure.org/jira/browse/CLJ-1390)
pprint a GregorianCalendar results in Arity exception
* [CLJ-1399](http://dev.clojure.org/jira/browse/CLJ-1399)
field name unmunged when recreating deftypes serialized into bytecode
* [CLJ-1485](http://dev.clojure.org/jira/browse/CLJ-1485)
clojure.test.junit/with-junit-output doesn't handle multiple expressions
* [CLJ-1528](http://dev.clojure.org/jira/browse/CLJ-1528)
clojure.test/inc-report-counter is not thread-safe
* [CLJ-1533](http://dev.clojure.org/jira/browse/CLJ-1533)
invokePrim path does not take into account var or form meta
* [CLJ-1562](http://dev.clojure.org/jira/browse/CLJ-1562)
some->,some->>,cond->,cond->> and as-> doesn't work with (recur)
* [CLJ-1565](http://dev.clojure.org/jira/browse/CLJ-1565)
pprint produces infinite output for a protocol
* [CLJ-1588](http://dev.clojure.org/jira/browse/CLJ-1588)
StackOverflow in clojure.test macroexpand with `are` and anon `fn`
* [CLJ-1644](http://dev.clojure.org/jira/browse/CLJ-1644)
into-array fails for sequences starting with nil
* [CLJ-1645](http://dev.clojure.org/jira/browse/CLJ-1645)
protocol class does not set the source file
* [CLJ-1657](http://dev.clojure.org/jira/browse/CLJ-1657)
proxy bytecode calls super methods of abstract classes
* [CLJ-1659](http://dev.clojure.org/jira/browse/CLJ-1659)
compile leaks files
* [CLJ-1761](http://dev.clojure.org/jira/browse/CLJ-1761)
clojure.core/run! does not always return nil per docstring
* [CLJ-1782](http://dev.clojure.org/jira/browse/CLJ-1782)
Spelling mistake in clojure.test/use-fixtures
* [CLJ-1785](http://dev.clojure.org/jira/browse/CLJ-1785)
Reader conditionals throw when returning nil

# Changes to Clojure in Version 1.7

## 1 Compatibility Notes
Expand Down

0 comments on commit e58042c

Please sign in to comment.