+1 to everything Dom Kiva-Meyer said.


On Fri, Feb 14, 2014 at 2:13 PM, Andrey Antukh <n...@niwi.be> wrote:

> Awesome! Thanks!
>
>
> 2014-02-14 21:47 GMT+01:00 Daniel <doubleagen...@gmail.com>:
>
> Thanks to everyone involved!
>>
>>
>> On Friday, February 14, 2014 1:04:09 PM UTC-6, Alex Miller wrote:
>>>
>>> Clojure 1.6.0-beta1 is now available.
>>>
>>> Try it via
>>> - Download: http://central.maven.org/maven2/org/clojure/
>>> clojure/1.6.0-beta1
>>> - Leiningen: [org.clojure/clojure "1.6.0-beta1"]
>>>
>>> Highlights below or see the full change log here:
>>> https://github.com/clojure/clojure/blob/master/changes.md
>>>
>>> We expect Clojure 1.6.0-beta1 to be close to a release candidate; no
>>> other big changes are planned. Please give us your feedback and final
>>> issues if you find them so we can do the final release!
>>>
>>> Clojure 1.6.0-beta1 has the following changes from 1.5.1:
>>>
>>> 1) 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) The following features are no longer marked "Alpha" in Clojure:
>>>
>>> * Watches - add-watch, remove-watch
>>> * Transients - transient, persistent!, conj!, assoc!, dissoc!, pop!,
>>> disj!
>>> * Exception data - ex-info, ex-data
>>> * Promises - promise, deliver
>>> * Records - defrecord
>>> * Types - deftype
>>> * Pretty-print tables - print-table
>>>
>>> 3) The clojure.java.api package provides a minimal interface to
>>> bootstrap
>>> Clojure access from other JVM languages. Example:
>>>
>>>     IFn map = Clojure.var("clojure.core", "map");
>>>     IFn inc = Clojure.var("clojure.core", "inc");
>>>     map.invoke(inc, Clojure.read("[1 2 3]"));
>>>
>>> 4) Map destructuring extended to support namespaced keys. [CLJ-1318]
>>>
>>> In the past, map destructuring with :keys and :syms would not work
>>> with maps containing namespaced keys or symbols. The :keys and :syms
>>> forms have been updated to allow them to match namespaced keys and
>>> bind to a local variable based on the name.
>>>
>>> Examples:
>>>
>>>     (let [m {:x/a 1, :y/b 2}
>>>           {:keys [x/a y/b]} m]
>>>       (+ a b))
>>>
>>>     (let [m {'x/a 1, 'y/b 2}
>>>           {:syms [x/a y/b]} m]
>>>       (+ a b))
>>>
>>> Additionally, the :keys form can now take keywords instead of symbols.
>>>  This provides support specifically for auto-resolved keywords:
>>>
>>>     (let [m {::x 1}
>>>           {:keys [::x]} m]
>>>       x)
>>>
>>> 5) New "some" operations
>>>
>>> Many conditional functions rely on logical truth (where "falsey"
>>> values are nil or false). Sometimes it is useful to have functions
>>> that rely on "not nilness" instead. These functions have been added to
>>> support these cases [CLJ-1343]:
>>>
>>> * some? - same as (not (nil? x))
>>> * if-some - like if-let, but checks (not (nil? test)) instead of test
>>> * when-some - like when-let, but checks (not (nil? test)) instead of test
>>>
>>> 6) Hashing overhaul
>>>
>>> The Clojure hash algorithms have changed for many primitives and
>>> collections.
>>> Read the changelog and http://clojure.org/data_structures#hash for more
>>> detail
>>> and if you are building external collections.
>>>
>>> In general, this change creates better hash codes (better bit
>>> dispersion, fewer
>>> collisions) to improve performance of hashed collections (maps and
>>> sets).
>>> *NOTE:* One side effect may be that code currently relying on the
>>> arbitrary order
>>> of hashed elements in a collection (tests for example) may need to be
>>> fixed.
>>>
>>> 7) Other new things
>>>
>>> * unsigned-bit-shift-right - Java's >>>
>>> * clojure.test/test-vars - run a set of tests with fixtures
>>>
>>> 8) Printing enhancements
>>>
>>> * [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.
>>>
>>> 9) Error messages
>>>
>>> * [CLJ-1248](http://dev.clojure.org/jira/browse/CLJ-1248)
>>>   Print type information in reflection messages to help diagnose
>>> problem.
>>> * [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
>>> definitions.
>>>  * [CLJ-1102](http://dev.clojure.org/jira/browse/CLJ-1102)
>>>   Better handling of exceptions with empty stack traces.
>>> * [CLJ-939](http://dev.clojure.org/jira/browse/CLJ-939)
>>>   Exceptions thrown in the top level ns form are reported without file
>>> or line number.
>>>
>>> 10) 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.
>>> * [CLJ-1304](http://dev.clojure.org/jira/browse/CLJ-1304)
>>>   Fix minor typos in documentation and comments
>>> * [CLJ-1302](http://dev.clojure.org/jira/browse/CLJ-1302)
>>>   Mention that keys and vals order are consistent with seq order
>>>
>>> 11) Performance
>>>
>>> * [CLJ-858](http://dev.clojure.org/jira/browse/CLJ-858)
>>>   Improve speed of STM by removing System.currentTimeMillis.
>>> * [CLJ-669](http://dev.clojure.org/jira/browse/CLJ-669)
>>>   clojure.java.io/do-copy: use java.nio for Files
>>> * [commit](https://github.com/clojure/clojure/commit/
>>> 0b73494c3c855e54b1da591eeb687f24f608f346)
>>>   Reduce overhead of protocol callsites by removing unneeded generated
>>>   cache fields.
>>>
>>> 12) Other enhancements
>>>
>>> * [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.
>>>  * [CLJ-1105](http://dev.clojure.org/jira/browse/CLJ-1105)
>>>   clojure.walk now supports records.
>>> * [CLJ-949](http://dev.clojure.org/jira/browse/CLJ-949)
>>>   Removed all unnecessary cases of sneakyThrow.
>>> * [CLJ-1238](http://dev.clojure.org/jira/browse/CLJ-1238)
>>>   Allow EdnReader to read foo// (matches LispReader behavior).
>>> * [CLJ-1264](http://dev.clojure.org/jira/browse/CLJ-1264)
>>>   Remove uses of _ as a var in the Java code (causes warning in Java 8).
>>> * [CLJ-394](http://dev.clojure.org/jira/browse/CLJ-394)
>>>   Add record? predicate.
>>> * [CLJ-1200](http://dev.clojure.org/jira/browse/CLJ-1200)
>>>   ArraySeq dead code cleanup, ArraySeq_short support added.
>>> * [CLJ-1331](http://dev.clojure.org/jira/browse/CLJ-1331)
>>>   Primitive vectors should implement hasheq and use new hash algorithm
>>>
>>> 13) 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-1184](http://dev.clojure.org/jira/browse/CLJ-1184)
>>>   Evaling #{do ...} or [do ...] is treated as do special form.
>>> * [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.
>>> * [CLJ-1285](http://dev.clojure.org/jira/browse/CLJ-1285)
>>>   Data structure invariants are violated after persistent operations when
>>>   collision node created by transients.
>>> * [CLJ-1222](http://dev.clojure.org/jira/browse/CLJ-1222)
>>>   Multiplication overflow issues around Long/MIN_VALUE
>>> * [CLJ-1118](http://dev.clojure.org/jira/browse/CLJ-1118)
>>>   Inconsistent numeric comparison semantics between BigDecimals and
>>> other numerics
>>> * [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-1082](http://dev.clojure.org/jira/browse/CLJ-1082)
>>>   Subvecs of primitve vectors cannot be reduced
>>> * [CLJ-1301](http://dev.clojure.org/jira/browse/CLJ-1301)
>>>   Case expressions use a mixture of hashCode and hasheq, potentially
>>>   leading to missed case matches when these differ.
>>> * [CLJ-983](http://dev.clojure.org/jira/browse/CLJ-983)
>>>   proxy-super does not restore original binding if call throws exception
>>> * [CLJ-1176](http://dev.clojure.org/jira/browse/CLJ-1176)
>>>   clojure.repl/source errors when *read-eval* bound to :unknown
>>> * [CLJ-935](http://dev.clojure.org/jira/browse/CLJ-935)
>>>   clojure.string/trim uses different definition of whitespace than
>>>   triml and trimr
>>> * [CLJ-935](http://dev.clojure.org/jira/browse/CLJ-935)
>>>   StackOverflowError on exception in reducef for PersistentHashMap
>>>   fold
>>> * [CLJ-1328](http://dev.clojure.org/jira/browse/CLJ-1328)
>>>    Fix some tests in the Clojure test suite to make their names unique
>>>   and independent of hashing order
>>> * [CLJ-1328](http://dev.clojure.org/jira/browse/CLJ-1328)
>>>   Empty primitive vectors throw NPE on .equals with non-vector
>>>   sequential types
>>>
>>> Happy Valentine's Day!
>>>
>>> Alex Miller
>>>
>>>  --
>> 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.
>>
>
>
>
> --
> Andrey Antukh - Андрей Антух - <andrei.anto...@kaleidos.net> / <
> n...@niwi.be>
> http://www.niwi.be <http://www.niwi.be/page/about/>
> https://github.com/niwibe
>
> --
> 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.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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