Clojure 1.6.0-alpha1 is now available.

Try it via
- Download:
http://central.maven.org/maven2/org/clojure/clojure/1.6.0-alpha1/
- Leiningen: [org.clojure/clojure "1.6.0-alpha1"]

A list of tickets included is below. Please note that CLJ-1252 introduces a
breaking change such that keywords beginning with a digit are no longer
considered valid by the reader. This has caused some failures in java.jdbc
and other contrib libs and has already been rolled back for alpha2.

Please try it and reply to this post (or email alex.mil...@cognitect.com)
with feedback on breakage, performance, or other concerns.

# CONTENTS

## 1 Deprecated and Removed Features

None.

## 2 New and Improved Features

### 2.1 Java API

The clojure.api package provides a minimal interface to bootstrap Clojure
access from other JVM languages. It does this by providing:
1. The ability to use Clojure's namespaces to locate an arbitrary var,
returning the var's clojure.lang.IFn interface.
2. A convenience method read for reading data using Clojure's edn reader

IFns provide complete access to Clojure's APIs. You can also access any
other library written in Clojure, after adding either its source or
compiled form to the classpath.

The public Java API for Clojure consists of the following classes and
interfaces:
* clojure.api.API
* clojure.lang.IFn

All other Java classes should be treated as implementation details, and
applications should avoid relying on them.

To lookup and call a Clojure function:

    IFn plus = API.var("clojure.core", "+");
    plus.invoke(1, 2);

Functions in clojure.core are automatically loaded. Other namespaces can be
loaded via require:

    IFn require = API.var("clojure.core", "require");
    require.invoke(API.read("clojure.set"));

IFns can be passed to higher order functions, e.g. the example below passes
plus to read:

    IFn map = API.var("clojure.core", "map");
    IFn inc = API.var("clojure.core", "inc");
    map.invoke(inc, API.read("[1 2 3]"));

Most IFns in Clojure refer to functions. A few, however, refer to
non-function data values. To access these, use deref instead of fn:

    IFn printLength = API.var("clojure.core", "*print-length*");
    API.var("clojure.core", "deref").invoke(printLength);

### 2.2 JDK and Dependency Version Updates

Clojure now builds with Java SE 1.6 and emits bytecode requiring Java SE
1.6 instead of Java SE 1.5. [CLJ-1268]

### 2.3 Printing

* [CLJ-908](http://dev.clojure.org/jira/browse/CLJ-908)
  Print metadata for functions when *print-meta* is true and remove errant
space at beginning.
* [CLJ-937](http://dev.clojure.org/jira/browse/CLJ-937)
  pprint cl-format now supports E, F, and G formats for ratios.

### 2.4 Other improvements

* [CLJ-908](http://dev.clojure.org/jira/browse/CLJ-908)
  Make *default-data-reader-fn* set!-able in REPL, similar to
*data-readers*.
* [CLJ-783](http://dev.clojure.org/jira/browse/CLJ-783)
  Make clojure.inspector/inspect-tree work on sets.
* [CLJ-896](http://dev.clojure.org/jira/browse/CLJ-896)
  Make browse-url aware of xdg-open.
* [CLJ-1160](http://dev.clojure.org/jira/browse/CLJ-1160)
  Fix clojure.core.reducers/mapcat does not stop on reduced? values.
* [CLJ-1121](http://dev.clojure.org/jira/browse/CLJ-1121)
  -> and ->> have been rewritten to work with a broader set of macros.

## 3 Improved error messages

* [CLJ-1099](http://dev.clojure.org/jira/browse/CLJ-1099)
  If non-seq passed where seq is needed, error message now is an
ExceptionInfo with the instance value, retrievable via ex-data.
* [CLJ-1083](http://dev.clojure.org/jira/browse/CLJ-1083)
  Fix error message reporting for "munged" function names (like a->b).
* [CLJ-1056](http://dev.clojure.org/jira/browse/CLJ-1056)
  Handle more cases and improve error message for errors in defprotocol
definnitions.
* [CLJ-1102](http://dev.clojure.org/jira/browse/CLJ-1102)
  Better handling of exceptions with empty stack traces.

## 4 Improved documentation strings

* [CLJ-1164](http://dev.clojure.org/jira/browse/CLJ-1164)
  Fix typos in clojure.instant/validated and other internal instant
functions.
* [CLJ-1143](http://dev.clojure.org/jira/browse/CLJ-1143)
  Correct doc string for ns macro.
* [CLJ-196](http://dev.clojure.org/jira/browse/CLJ-196)
  Clarify value of *file* is undefined in the REPL.
* [CLJ-1228](http://dev.clojure.org/jira/browse/CLJ-1228)
  Fix a number of spelling errors in namespace and doc strings.
* [CLJ-835](http://dev.clojure.org/jira/browse/CLJ-835)
  Update defmulti doc to clarify expectations for hierarchy argument.

## 5 Bug Fixes

* [CLJ-1018](http://dev.clojure.org/jira/browse/CLJ-1018)
  Make range consistently return () with a step of 0.
* [CLJ-863](http://dev.clojure.org/jira/browse/CLJ-863)
  Make interleave return () on 0 args and identity on 1 args.
* [CLJ-1072](http://dev.clojure.org/jira/browse/CLJ-1072)
  Update internal usages of the old metadata reader syntax to new syntax.
* [CLJ-1193](http://dev.clojure.org/jira/browse/CLJ-1193)
  Make bigint and biginteger functions work on double values outside long
range.
* [CLJ-1154](http://dev.clojure.org/jira/browse/CLJ-1154)
  Make Compile.java flush but not close stdout so errors can be reported.
* [CLJ-1161](http://dev.clojure.org/jira/browse/CLJ-1161)
  Remove bad version.properties from sources jar.
* [CLJ-1175](http://dev.clojure.org/jira/browse/CLJ-1175)
  Fix invalid behavior of Delay/deref if an exception is thrown - exception
will now be rethrown on subsequent calls and not enter a corrupted state.
* [CLJ-1171](http://dev.clojure.org/jira/browse/CLJ-1171)
  Fix several issues with instance? to make it consistent when used with
apply.
* [CLJ-1202](http://dev.clojure.org/jira/browse/CLJ-1202)
  Protocol fns with dashes may get incorrectly compiled into field accesses.
* [CLJ-850](http://dev.clojure.org/jira/browse/CLJ-850)
  Add check to emit invokePrim with return type of double or long if
type-hinted.
* [CLJ-1177](http://dev.clojure.org/jira/browse/CLJ-1177)
  clojure.java.io URL to File coercion corrupts path containing UTF-8
characters.
* [CLJ-1234](http://dev.clojure.org/jira/browse/CLJ-1234)
  Accept whitespace in Record and Type reader forms (similar to data
literals).
* [CLJ-1233](http://dev.clojure.org/jira/browse/CLJ-1233)
  Allow ** as a valid symbol name without triggering dynamic warnings.
* [CLJ-1246](http://dev.clojure.org/jira/browse/CLJ-1246)
  Add support to clojure.reflect for classes with annotations.
* [CLJ-1252](http://dev.clojure.org/jira/browse/CLJ-1252)
  Clojure reader incorrectly accepts keywords that start with a number.
* [CLJ-1184](http://dev.clojure.org/jira/browse/CLJ-1184)
  Evaling #{do ...} or [do ...] is treated as do special form.
* [CLJ-1125](http://dev.clojure.org/jira/browse/CLJ-1125)
  Clojure can leak memory in a servlet container when using dynamic
bindings or STM transactions.
* [CLJ-1090](http://dev.clojure.org/jira/browse/CLJ-1090)
  Indirect function calls through Var instances fail to clear locals.
* [CLJ-1076](http://dev.clojure.org/jira/browse/CLJ-1076)
  pprint tests fail on Windows, expecting \n.
* [CLJ-766](http://dev.clojure.org/jira/browse/CLJ-766)
  Make into-array work consistently with short-array and byte-array on
bigger types.

## 6 Compatibility Notes

* [CLJ-1252] - The reader no longer accepts keyword literals beginning with
a digit.
NOTE: this is a breaking change and has already been rolled back for alpha2.

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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+unsubscr...@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+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to