diff options
author | Stuart Halloway <stu@thinkrelevance.com> | 2010-07-13 20:23:34 -0400 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2010-07-13 20:23:34 -0400 |
commit | 9c01e1faf5c3c81a6c06234c4ce6df7c2e1f79f4 (patch) | |
tree | 5cab9aec6efe620145c484d5f6b9a0fd156497d0 | |
parent | d184ed95817c5ddfd5874ea75e83e0df7e753c24 (diff) |
prepare for 1.2.0 beta11.2.0-beta1
-rw-r--r-- | changes.txt | 257 | ||||
-rw-r--r-- | src/clj/clojure/version.properties | 4 |
2 files changed, 259 insertions, 2 deletions
diff --git a/changes.txt b/changes.txt new file mode 100644 index 00000000..36a449e6 --- /dev/null +++ b/changes.txt @@ -0,0 +1,257 @@ +Changes to Clojure in Version 1.2 + += CONTENTS = + + 1 Deprecated and Removed Features + 1.1 metadata reader macro is now ^ + 2 New/Improved Features in clojure.core + 2.1 Protocols, Records, and Types + 2.2 Sequence Library + 2.3 Destructuring + 2.4 Case + 2.5 Duplicate Key Prevention + 2.6 Primitive Vectors + 2.7 Agent Error Handling + 2.8 Improved Ratio Support + 2.9 Macro Implicit Args + 2.10 Multimethod Enhancements + 2.11 Function Metadata (Alpha) + 2.12 Java Annotations + 2.13 Namespace Collision Warnings + 3 New Namespaces + 3.1 clojure.java.io + 3.1 clojure.java.javadoc + 3.3 clojure.java.shell + 3.4 clojure.pprint + 3.5 clojure.repl + 3.6 clojure.string + 4 Functions with Improved Performance + 5 Bug Fixes + += 1 Deprecated and Removed Features = + +== 1.1 metadata reader macro is now ^ == + +^ is the metadata reader macro. The former syntax #^ is deprecated and +will be removed in a future version of Clojure. + + += 2 New Features in clojure.core = + +== 2.1 Protocols, Records, Reify, and Types == + +defprotocol provides polymorphism without type intrusion. + +defrecord, reify, and deftype provide datatypes. They support, in a +relatively clean manner, access to the highest-performance primitive +representation and polymorphism mechanisms of the host. + +See http://clojure.org/protocols and http://clojure.org/datatypes for +a more complete description. + + +== 2.2 Sequence Library == + +The sequence library has several new functions in Clojure 1.2. The +notes in parentheses indicate differences from the similarly-named +functions in clojure-contrib. + + * flatten - New + * frequencies - New + * group-by - New (note: unsorted) + * keep - New + * keep-indexed - New (preferred over contrib's indexed for perf) + * map-indexed - New (preferred over contrib's indexed for perf) + * partition-all - New + * partition-by - New + * rand-nth - New (name indicates dependency on nth's perf) + * range - Improved (added zero arity) + * reductions - New + * repeatedly - Improved! (added "do n times" semantics) + * shuffle - New + + +== 2.3 Destructuring Enhanced == + +If you associatively destructure a seq, it will be poured into a map first: + + (defn foo [& {:keys [a b c]}] + [a b c]) + + (foo :c 3 :b 2) + => [nil 2 3] + + +== 2.4 Case == + +Case provides constant time dispatch on its clauses, which can be any +compile-time literal + + (defn release-status + [version] + (case version + (0.9 1.0 1.1) "History" + 1.2 "Right now" + :sentient "RSN")) + + +== 2.5 Duplicate Key Prevention == + +Associative literals and their constructor functions hash-map and +hash-set now prevent duplicate keys: + + #{1 1} + => java.lang.IllegalArgumentException: Duplicate key: 1 + + +== 2.6 Primitive Vectors == + +vector-of creates a vector of unboxed Java primitives, which follows +the contract of Clojure vectors. + + +== 2.7 Agent Error Handling == + +Agent error handling has been reworked in Clojure 1.2. + + * agent-error - New + * restart-agent - New + * set-error-handler - New + * error-handler - New + * set-error-mode! - New + * error-mode - New + * await - improved docstring, explains failed agent semantics + * agent-errors - DEPRECATED + * clear-agent-errors - DEPRECATED + + +== 2.8 Improved Ratio Support == + + * numerator - New + * denominator - New + * bigint - Enhanced, now ratio aware + + +== 2.9 Macro Implicit Args == + +Macros now have access to implicit arguments: + + * &form - the macro form + * &env - the local bindings + + +== 2.10 Multimethod Enhancements == + +Multimethods have been enhanced to improve interactive development: + + * remove-all-methods - New + * defmulti - Enhanced to have defonce semantics + + +== 2.11 Function Metadata == + +Clojure functions can now have metadata. Please treat this capability +as alpha and subject to possible change or removal in a future version +of Clojure. + + +== 2.12 Java Annotations == + +Java Annotations can be added simply by making a Java annotation +class a key in a Clojure metadata map: + + ;; Name is deprecated + (defrecord ^{Deprecated true} Name [first last]) + +Please use Java annotations for interop purposes only. + +== 2.13 Namespace Collision Warnings == + +If a namespace defines a Var whose name collides with a name in the +clojure.core namespace, you will see a warning but the definition will +be allowed to proceed. This facilitates promoting useful functions +into clojure.core without causing a breaking change. + +Please track down and fix these warnings, as matching names do not +always imply matching semantics! + + += 3 New Namespaces = + +Complete documentation for all namespaces is in the source and API +docs: http://richhickey.github.com/clojure/ + + +== 3.1 clojure.java.io == + +Java I/O libraries distilled from the duck-streams and io namespaces +in clojure-contrib. + + +== 3.2 clojure.java.javadoc == + +Launch a Javadoc browser from the REPL, promoted from the javadoc and +repl-util namespace in clojure-contrib. + + +== 3.3 clojure.java.shell == + +Utilities for launching a subprocess, promoted from shell-out +namespace in clojure-contrib. + + +== 3.4 clojure.pprint == + +Pretty-printer for Clojure, promoted from pprint in clojure-contrib. + + +== 3.5 clojure.repl == + +Utilities for a more pleasant REPL experience, promoted from the +repl-utils and ns-utils namespaces in clojure-contrib. + + +== 3.6 clojure.string == + +String utilities promoted from the str-utils, str-utils2, str-utils3, +and string namespaces in clojure-contrib. + + += 4 Performance Enhancements = + +Many functions have improved performance in Clojure 1.2: + + aget + array-map + aset + bit-shift-left + bit-shift-right + boolean + byte + count + count + double + false? + float + future-call + get + get + into + keyword + line-seq + long + nil? + nth + promise + re-seq + reduce + resultset-seq + set + short + true? + vector + += 5 Bug Fixes = + +Please see the complete list at +https://www.assembla.com/spaces/ticket_reports/show/13167?space_id=clojure. diff --git a/src/clj/clojure/version.properties b/src/clj/clojure/version.properties index 61f0da6c..18724a26 100644 --- a/src/clj/clojure/version.properties +++ b/src/clj/clojure/version.properties @@ -1,5 +1,5 @@ clojure.version.major=1 clojure.version.minor=2 clojure.version.incremental=0 -clojure.version.qualifier=master -clojure.version.interim=true +clojure.version.qualifier=beta1 +clojure.version.interim=false |