= TODO =
- Add documentation around the interesting tickets in this list
- Remove less interesting tickets that don't have more docs
- Comb through Git history and document the stuff not captured by tickets
Changes to Clojure in Version 1.3 Beta
= CONTENTS =
0 Still In Process
1 Deprecated and Removed Features
2 New/Improved Features in clojure.core
2.1 ^:const defs
2.2 More Info Needed
3 New Namespaces
4 Functions with Improved Performance
5 Bug Fixes
6 JIRA issues
= 0 Still In Process =
- CLJ-184 n-ary bit functions, also inlining of n-ary bit and math operations
- CLJ-236 Add error checking for defmulti options.
- CLJ-371 dynamic defrecord definitions trumped by AOT versions in classpath
- CLJ-374 print/read syntax for defrecords
- CLJ-425 case should handle hash collision
- CLJ-435 stackoverflow exception in printing meta with :type
- CLJ-666 Add support for Big* numeric types to Reflector
- CLJ-671 Recur mismatch causes infinite loop in compiler
- CLJ-772 bit ops to have primitive semantics by default, no conditionals, direct mapping to JVM primitive ops
= 1 Deprecated and Removed Features =
- CLJ-182 Symbol.create is now Symbol.intern
- CLJ-278 replicate could be marked deprecated
- CLJ-741 Stop ISeq from inheriting Sequential
- CLJ-752 Remove earmuff == dynamic support
= 2 New/Improved Features in clojure.core =
== 2.1 ^:const defs ==
added support for ^:const defs
== 2.2 More Info Needed ==
- CLJ-244 walk support for sorted-by collections
- CLJ-249 Add "starting at <line>" to EOF while reading exceptions
- CLJ-263 Add an optional environment argument to #'resolve and ns-resolve
- CLJ-276 Add non-interning keyword lookup function
- CLJ-280 def should support an optional doc-string
- CLJ-285 Make it easier to discover the source of compiler exceptions when two files have the same name in different directories
- CLJ-315 Add support for running -main namespace from clojure.main without AOT
- CLJ-364 Make PersistentQueue Counted
- CLJ-378 Set thread names on agent thread pools
- CLJ-380 bit-and missing long parameters overload
- CLJ-390 sends from agent error-handlers should be allowed
- CLJ-397 better error message when calling macros with arity
- CLJ-425 stop early-loading ancillary libraries
- CLJ-429 revamp ant build
- CLJ-439 Automatic type translation from Integer to Long
- CLJ-441 Add unchecked coercions
- CLJ-443 Add zero-arity body to comp function
- CLJ-448 structural diff
- CLJ-435 Reflection
- CLJ-454 docstrings for special ops
- CLJ-458 print-table
- CLJ-460 promote interrupt handling to clojure.repl
- CLJ-665 Add mechanism to temporarily replace root bindings of vars
- CLJ-681 Build Clojure with Maven 2
- CLJ-729 Add any-pred and every-pred combinators
- CLJ-742 Error message for invalid map literals is not helpful
- CLJ-748 fast path equal case for diff
= 5 Bug Fixes =
- CLJ-8 GC Issue 3: Re-enable detection of circular loads
- CLJ-31 GC Issue 27: Disallow recur across try
- CLJ-139 defmulti should not add {:tag 'clojure.lang.MultiFn} to multimethod metatdata
- CLJ-235 clojure.test fixtures don't work with test-ns-hook
- CLJ-282 Replace references to duck-streams in clojure.test comments to io
- CLJ-286 out being used as java.io.PrintWriter
- CLJ-292 LazySeq.sval() nests RuntimeExceptions
- CLJ-300 newline should output platform-specific newline sequence
- CLJ-305 out has a misleading docstring
- CLJ-320 alias function gives confusing message if using unknown namespace
- CLJ-368 Redefining a function that uses a redifined macro, picks up old macro defintion
- CLJ-421 clojure tests can fail because of a race in the pprint tests
- CLJ-430 clojure.java.io URL Coercion throws java.lang.ClassCastException
- CLJ-432 deftype does not work if containing ns contains dashes
- CLJ-433 munge should not munge $ (which isJavaIdentifierPart), should munge ' (which is not)
- CLJ-437 Bugs in clojure.set/subset? and superset? for sets with false/nil elements
- CLJ-444 Infinite recursion in Keyword.intern leads to stack overflow
- CLJ-447 biginteger fn misses a case for clojure.lang.BigInt
- CLJ-462 clojure.core/slurp docstring out of date
- CLJ-465 with-local-vars broken after changes to make dynamic off by default
- CLJ-674 Typo and/or out-of-place example in clojure.string docstring.
- CLJ-678 into-array should work with all primitive types
- CLJ-680 printing promises should not block
- CLJ-682 cl-format: ~w throws an exception when not wrapped in a pretty-writer
- CLJ-684 agent self-send test heisenfailing
- CLJ-690 unchecked int math inconsistency with Java
- CLJ-691 missing stacktrace confuses REPL error reporting
- CLJ-693 VerifyError with symbol metadata, macros, and defrecord
- CLJ-695 pprint does not respect print-length
- CLJ-697 Compiler doesn't push a binding for unchecked-math
- CLJ-702 case gives NPE when used with nil
- CLJ-708 Multi-methods hold onto the head of their arguments
- CLJ-710 clojure/set fns don't work with mutable sets
- CLJ-715 pprint test failing only on Hudson
- CLJ-719 clojure.data/diff does not correctly handle arrays as first argument
- CLJ-728 Test for error message fails in IBM JDK
- CLJ-734 starting scope of let bindings seems incorrect from jdi perspective
- CLJ-737 definterface/gen-interface do not support array parameter and return types
- CLJ-739 version.properties file is not closed
- CLJ-747 stack overflow diffing large objects
- CLJ-749 reference a definterface in file that declares it
- CLJ-751 cl-format: ~( thows an exception with an empty string
= 6 JIRA Issues =
The complete list of JIRA issues is here: http://dev.clojure.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10052