CLJ-890: tagged reader literals

* tag definitions loaded from /data_readers.clj files on classpath
* read as a series of symbol-symbol pairs
* "target" symbol interpreted as a Var
* creates namespaces and interns Vars as necessary
* may be more than one file
* throws exception on conflict
* sets root binding of *data-readers*
[maven-release-plugin] prepare release clojure-1.4.0-alpha4
[maven-release-plugin] prepare for next development iteration
Set source level explicitly to 1.5 to make clojure compile with JDK7.

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
Fix the already pushed fix for CLJ-898.

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
CLJ-871: provide instant literal using JRE classes only

This patch implements instant literals of the form
#@yyyy-mm-ddThh:mm:ss.fff+hh:mm using only classes available in the
JRE.

clojure.instant provides instant-readers producing instances of three
different JDK classes. These functions accept a string representing a
timestamp See (doc clojure.instant/parse-timestamp) for details.

- read-instant-date (java.util.Date)
- read-instant-calendar (java.util.Calendar)
- read-instant-timestamp (java.sql.Timestamp)

By default *instant-reader* is bound to read-instant-date.

print-method and print-dup are provided for all three types.

Rough bits include:

I'm not yet certain about the exact public interface of
clojure.instant. It's clear that read-instant-* need to be visible. It
also seems likely that parse-timestamp and validated could usefully
support alternate implementations for *instant-reader*.

fixup-offset and fixup-nanos are ugly warts necessitated by Java's
pathetic built-in support for dates and times (possibly exacerbated by
my own misunderstandings of the same).

Unit tests are very basic. For example, I'm not testing validated
except in the good case where everything is valid.

Signed-off-by: fogus <mefogus@gmail.com>
Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
CLJ-915: Modified the patch to work with the tagged literal functionality in 1.4-alpha4

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
CLJ-871, CLJ-890: Separate default reader literals from user tags

Also add documentation for reader literals on *data-readers*

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
CLJ-914: Added UUID literal support.

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
[maven-release-plugin] prepare release clojure-1.4.0-alpha5
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] prepare release clojure-1.4.0-beta1
[maven-release-plugin] prepare for next development iteration
CLJ-921: prevent warning from Ant 1.8 bug

Reformatted from patch by Steve Miner
Allow require to take a :refer option.

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
CLJ-895 obey contract for toArray return type
CLJ_933: Fix compiler warning in test for 'require :refer :all'
CLJ-928 instant literals for Date and Timestamp should print in UTC

Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
Added regression test for catching checked exceptions.

Signed-off-by: Rich Hickey <richhickey@gmail.com>
CLJ-855: add test that goes through Reflector

(The existing test produces the same wrapped exception symptom,
but does so by going through eval.)

Signed-off-by: Rich Hickey <richhickey@gmail.com>