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.