Skip to content
Newer
Older
100644 311 lines (223 sloc) 11.7 KB
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
1 <!-- -*- mode: markdown ; mode: visual-line ; coding: utf-8 -*- -->
547b775 @stuarthalloway changes
stuarthalloway authored
2
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
3 # Changes to Clojure in Version 1.4
36b8d75 @stuartsierra Various small fixes to changes.txt (CLJ-777)
stuartsierra authored
4
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
5 ## CONTENTS
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
6
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
7 <pre>
36b8d75 @stuartsierra Various small fixes to changes.txt (CLJ-777)
stuartsierra authored
8 1 Deprecated and Removed Features
8b52c00 @stuarthalloway minor edits to changelog
stuarthalloway authored
9 1.1 Fields that Start With a Dash Can No Longer Be Accessed Using Dot Syntax
87e1652 @stuarthalloway release notes
stuarthalloway authored
10 2 New/Improved Features
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
11 2.1 Reader Literals
12 2.2 clojure.core/mapv
13 2.3 clojure.core/filterv
14 2.4 clojure.core/ex-info and clojure.core/ex-data
15 2.5 clojure.core/reduce-kv
16 2.6 clojure.core/contains? Improved
17 2.7 clojure.core/min and clojure.core/max prefer NaN
18 2.8 clojure.java.io/as-file and clojure.java.io/as-url Handle URL-Escaping Better
19 2.9 New Dot Syntax for Record and Type Field Access
20 2.10 Record Factory Methods Available Inside defrecord
21 2.11 assert-args Displays Namespace and Line Number on Errors
22 2.12 File and Line Number Added to Earmuff Dynamic Warning
23 2.13 require Can Take a :refer Option
24 2.14 *compiler-options* Var
25 2.15 Improved Reporting of Invalid Characters in Unicode String Literals
26 2.16 clojure.core/hash No Longer Relies on .hashCode
27 2.17 Java 7 Documentation
28 2.18 loadLibrary Loads Library Using System ClassLoader
29 2.19 Java int is boxed as java.lang.Integer
87e1652 @stuarthalloway release notes
stuarthalloway authored
30 3 Performance Enhancements
31 4 Bug Fixes
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
32 </pre>
d75d3d6 @redinger 1.3 Release Notes
redinger authored
33
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
34 ## 1 Deprecated and Removed Features
d75d3d6 @redinger 1.3 Release Notes
redinger authored
35
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
36 ### 1.1 Record and Type Fields that Start With a Dash Can No Longer Be Accessed Using Dot Syntax
d75d3d6 @redinger 1.3 Release Notes
redinger authored
37
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
38 Clojure 1.4 introduces a field accessor syntax for the dot special form that aligns Clojure field lookup syntax with ClojureScript's.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
39
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
40 For example, in Clojure 1.3, one can declare a record with a field starting with dash and access it like this:
d75d3d6 @redinger 1.3 Release Notes
redinger authored
41
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
42 (defrecord Bar [-a]) ;=> user.Bar
43 (.-a (Bar. 10)) ;=> 10
44
45 In 1.4, the above code results in `IllegalArgumentException No matching field found: a for class user.Bar`
d75d3d6 @redinger 1.3 Release Notes
redinger authored
46
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
47 However, the field may still be accessed as a keyword:
d75d3d6 @redinger 1.3 Release Notes
redinger authored
48
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
49 (:-a (Bar. 10)) ;=> 10
d75d3d6 @redinger 1.3 Release Notes
redinger authored
50
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
51 ## 2 New and Improved Features
d75d3d6 @redinger 1.3 Release Notes
redinger authored
52
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
53 ### 2.1 Reader Literals
d75d3d6 @redinger 1.3 Release Notes
redinger authored
54
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
55 Clojure 1.4 supports reader literals, which are data structures tagged
56 by a symbol to denote how they will be read.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
57
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
58 When Clojure starts, it searches for files named `data_readers.clj`
59 at the root of the classpath. Each such file must contain a Clojure
60 map of symbols, like this:
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
61
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
62 {foo/bar my.project.foo/bar
63 foo/baz my.project/baz}
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
64
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
65 The key in each pair is a tag that will be recognized by
66 the Clojure reader. The value in the pair is the
67 fully-qualified name of a Var which will be invoked by the reader to
68 parse the form following the tag. For example, given the
69 data_readers.clj file above, the Clojure reader would parse this
70 form:
d75d3d6 @redinger 1.3 Release Notes
redinger authored
71
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
72 #foo/bar [1 2 3]
d75d3d6 @redinger 1.3 Release Notes
redinger authored
73
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
74 by invoking the Var `#'my.project.foo/bar` on the vector `[1 2 3]`. The
75 data reader function is invoked on the form AFTER it has been read
76 as a normal Clojure data structure by the reader.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
77
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
78 Reader tags without namespace qualifiers are reserved for Clojure. Default
79 reader tags are defined in `clojure.core/default-data-readers` but may be
80 overridden in `data_readers.clj` or by rebinding `*data-readers*`.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
81
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
82 #### 2.1.1 Instant Literals
d75d3d6 @redinger 1.3 Release Notes
redinger authored
83
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
84 Clojure supports literals for instants in the form
85 `#inst "yyyy-mm-ddThh:mm:ss.fff+hh:mm"`. These literals are parsed as `java.util.Date`s
86 by default. They can be parsed as `java.util.Calendar`s or `java.util.Timestamp`s
87 by binding `*data-readers*` to use `clojure.instant/read-instant-calendar` or
88 `clojure.instant/read-instant-timestamp`.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
89
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
90 (def instant "#inst \"@2010-11-12T13:14:15.666\"")
91
92 ; Instants are read as java.util.Date by default
93 (= java.util.Date (class (read-string instant)))
94 ;=> true
95
96 ; Instants can be read as java.util.Calendar or java.util.Timestamp
97
98 (binding [*data-readers* {'inst read-instant-calendar}]
99 (= java.util.Calendar (class (read-string instant))))
100 ;=> true
d75d3d6 @redinger 1.3 Release Notes
redinger authored
101
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
102 (binding [*data-readers* {'inst read-instant-timestamp}]
103 (= java.util.Timestamp (class (read-string instant))))
104 ;=> true
d75d3d6 @redinger 1.3 Release Notes
redinger authored
105
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
106 #### 2.1.2 UUID Literals
d75d3d6 @redinger 1.3 Release Notes
redinger authored
107
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
108 Clojure supports literals for UUIDs in the form `#uuid "uuid-string"`. These
109 literals are parsed as `java.util.UUID`s.
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
110
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
111 ### 2.2 clojure.core/mapv
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
112
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
113 `mapv` takes a function `f` and one or more collections and returns a
114 vector consisting of the result of applying `f` to the set of first items of
115 each collection, followed by applying `f` to the set of second items in each
116 collection, until any one of the collections is exhausted. Any remaining
117 items in other collections are ignored. `f` should accept a number of arguments
118 equal to the number of collections.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
119
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
120 (= [1 2 3] (mapv + [1 2 3]))
121 ;=> true
d75d3d6 @redinger 1.3 Release Notes
redinger authored
122
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
123 (= [2 3 4] (mapv + [1 2 3] (repeat 1)))
124 ;=> true
d75d3d6 @redinger 1.3 Release Notes
redinger authored
125
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
126 ### 2.3 clojure.core/filterv
d75d3d6 @redinger 1.3 Release Notes
redinger authored
127
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
128 `filterv` takes a predicate `pred` and a collection and returns a vector
129 of the items in the collection for which `(pred item)` returns true. `pred`
130 must be free of side-effects.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
131
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
132 (= [] (filterv even? [1 3 5]))
133 ;=> true
d75d3d6 @redinger 1.3 Release Notes
redinger authored
134
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
135 (= [2 4] (filter even? [1 2 3 4 5]))
136 ;=> true
d75d3d6 @redinger 1.3 Release Notes
redinger authored
137
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
138 ### 2.4 clojure.core/ex-info and clojure.core/ex-data
d75d3d6 @redinger 1.3 Release Notes
redinger authored
139
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
140 `ex-info` creates an instance of `ExceptionInfo`. `ExceptionInfo` is a
141 `RuntimeException` subclass that takes a string `msg` and a map of data.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
142
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
143 (ex-info "Invalid use of robots" {:robots false})
144 ;=> #<ExceptionInfo clojure.lang.ExceptionInfo: Invalid use of robots {:robots false}>
d75d3d6 @redinger 1.3 Release Notes
redinger authored
145
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
146 `ex-data` is called with an exception and will retrieve that map of data
147 if the exception is an instance of `ExceptionInfo`.
36b8d75 @stuartsierra Various small fixes to changes.txt (CLJ-777)
stuartsierra authored
148
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
149 (ex-data (ex-info "Invalid use of robots" {:robots false}))
150 ;=> {:robots false}
d75d3d6 @redinger 1.3 Release Notes
redinger authored
151
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
152 ### 2.5 clojure.core/reduce-kv
d75d3d6 @redinger 1.3 Release Notes
redinger authored
153
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
154 `reduce-kv` reduces an associative collection. It takes a function `f`,
8b52c00 @stuarthalloway minor edits to changelog
stuarthalloway authored
155 an initial value `init` and an associative collection `coll`. `f` should
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
156 be a function of 3 arguments. Returns the result of applying `f` to `init`,
157 the first key and the first value in `coll`, then applying `f` to that result
158 and the 2nd key and value, etc. If `coll` contains no entries, returns `init`
159 and f is not called. Note that `reduce-kv` is supported on vectors,
160 where the keys will be the ordinals.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
161
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
162 (reduce-kv str "Hello " {:w \o :r \l :d \!})
163 ;=> "Hello :rl:d!:wo"
164 (reduce-kv str "Hello " [\w \o \r \l \d \!])
165 ;=> "Hello 0w1o2r3l4d5!"
d75d3d6 @redinger 1.3 Release Notes
redinger authored
166
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
167 ### 2.6 clojure.core/contains? Improved
d75d3d6 @redinger 1.3 Release Notes
redinger authored
168
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
169 `contains?` now works with `java.util.Set`.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
170
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
171 ### 2.7 clojure.core/min and clojure.core/max prefer NaN
d75d3d6 @redinger 1.3 Release Notes
redinger authored
172
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
173 `min` and `max` now give preference to returning NaN if either of their
174 arguments is NaN.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
175
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
176 ### 2.8 clojure.java.io/as-file and clojure.java.io/as-url Handle URL-Escaping Better
d75d3d6 @redinger 1.3 Release Notes
redinger authored
177
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
178 `as-file` and `as-url` now handle URL-escaping in both directions.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
179
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
180 ### 2.9 New Dot Syntax for Record and Type Field Access
d75d3d6 @redinger 1.3 Release Notes
redinger authored
181
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
182 Clojure 1.4 introduces a field accessor syntax for the dot special
183 form that aligns Clojure field lookup syntax with ClojureScript's.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
184
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
185 In 1.4, to declare a record type and access its property `x`, one can
186 write:
d75d3d6 @redinger 1.3 Release Notes
redinger authored
187
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
188 (defrecord Foo [x]) ;=> user.Foo
189 (.-x (Foo. 10)) ;=> 10
190
191 This addition makes it easier to write code that will run as expected
192 in both Clojure and ClojureScript.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
193
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
194 ### 2.10 Record Factory Methods Available Inside defrecord
d75d3d6 @redinger 1.3 Release Notes
redinger authored
195
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
196 Prior to 1.4, you could not use the factory functions (`->RecordClass`
197 and `map->RecordClass`) to construct a new record from inside a
198 `defrecord` definition.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
199
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
200 The following example did not work prior to 1.4, but is now
201 valid. This example makes use of `->Mean` which would have not yet
202 been available.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
203
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
204 (defrecord Mean [last-winner]
205 Player
206 (choose [_] (if last-winner last-winner (random-choice)))
207 (update-strategy [_ me you] (->Mean (when (iwon? me you) me))))
d75d3d6 @redinger 1.3 Release Notes
redinger authored
208
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
209 ### 2.11 assert-args Displays Namespace and Line Number on Errors
d75d3d6 @redinger 1.3 Release Notes
redinger authored
210
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
211 `assert-args` now uses &form to report the namespace and line number where
212 macro syntax errors occur.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
213
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
214 ### 2.12 File and Line Number Added to Earmuff Dynamic Warning
d75d3d6 @redinger 1.3 Release Notes
redinger authored
215
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
216 When a variable is defined using earmuffs but is not declared dynamic,
217 Clojure emits a warning. That warning now includes the file and line
218 number.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
219
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
220 ### 2.13 require Can Take a :refer Option
d75d3d6 @redinger 1.3 Release Notes
redinger authored
221
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
222 `require` can now take a `:refer` option. `:refer` takes a list of symbols
223 to refer from the namespace or `:all` to bring in all public vars.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
224
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
225 ### 2.14 \*compiler-options\* Var
d75d3d6 @redinger 1.3 Release Notes
redinger authored
226
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
227 The dynamic var `*compiler-options*` contains a map of options to send
228 to the Clojure compiler.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
229
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
230 Supported options:
d75d3d6 @redinger 1.3 Release Notes
redinger authored
231
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
232 * `:elide-meta`: Have certain metadata elided during compilation. This
233 should be set to a collection of keywords.
234 * `:disable-locals-clearing`: Set to true to disable clearing. Useful for
235 using a debugger.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
236
8b52c00 @stuarthalloway minor edits to changelog
stuarthalloway authored
237 The main function of the Clojure compiler sets the
238 `*compiler-options*` from properties prefixed by `clojure.compiler`,
239 e.g.
240
241 java -Dclojure.compiler.elide-meta='[:doc :file :line]'
242
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
243 ### 2.15 Improved Reporting of Invalid Characters in Unicode String Literals
d75d3d6 @redinger 1.3 Release Notes
redinger authored
244
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
245 When the reader finds an invalid character in a Unicode string literal, it
246 now reports the character instead of its numerical representation.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
247
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
248 ### 2.16 clojure.core/hash No Longer Relies on .hashCode
d75d3d6 @redinger 1.3 Release Notes
redinger authored
249
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
250 `hash` no longer directly uses .hashCode() to return the hash of a Clojure
251 data structure. It calls `clojure.lang.Util.hasheq`, which has its own implementation
252 for Integer, Short, Byte, and Clojure collections. This ensures that the hash code
253 returned is consistent with `=`.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
254
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
255 ### 2.17 Java 7 Documentation
d75d3d6 @redinger 1.3 Release Notes
redinger authored
256
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
257 `*core-java-api*` will now return the URL for the Java 7 Javadoc when you are
258 running Java 7.
0db11e5 @bpsm add example for 'Add docstring support to def'
bpsm authored
259
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
260 ### 2.18 loadLibrary Loads Library Using System ClassLoader
d75d3d6 @redinger 1.3 Release Notes
redinger authored
261
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
262 A static method, `loadLibrary`, was added to `clojure.lang.RT` to load a
263 library using the system ClassLoader instead of Clojure's class loader.
d75d3d6 @redinger 1.3 Release Notes
redinger authored
264
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
265 ### 2.19 Java int is Boxed As java.lang.Integer
d75d3d6 @redinger 1.3 Release Notes
redinger authored
266
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
267 Java `int`s are now boxed as `java.lang.Integer`s. See
268 [the discussion on clojure-dev](https://groups.google.com/forum/#!msg/clojure/7-hARL5c1lI/ntnnOweEGfUJ)
269 for more information.
f0b092b @stuarthalloway more changes.txt tweaks
stuarthalloway authored
270
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
271 ## 3 Performance Enhancements
36b8d75 @stuartsierra Various small fixes to changes.txt (CLJ-777)
stuartsierra authored
272
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
273 * `(= char char)` is now optimized
274 * `equiv` is inlined in variadic =
275 * `toString` cached on keywords and symbols
d75d3d6 @redinger 1.3 Release Notes
redinger authored
276
e5d3bfe @bpsm changes.txt recoded as markdown
bpsm authored
277 ## 4 Bug Fixes
278
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
279 * [CLJ-829](http://dev.clojure.org/jira/browse/CLJ-829)
280 Transient hashmaps mishandle hash collisions
281 * [CLJ-773](http://dev.clojure.org/jira/browse/CLJ-773)
282 Macros that are expanded away still have their vars referenced in the emitted byte code
283 * [CLJ-837](http://dev.clojure.org/jira/browse/CLJ-837)
8b52c00 @stuarthalloway minor edits to changelog
stuarthalloway authored
284 java.lang.VerifyError when compiling deftype or defrecord with argument name starting with double underscore characters
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
285 * [CLJ-369](http://dev.clojure.org/jira/browse/CLJ-369)
286 Check for invalid interface method names
287 * [CLJ-845](http://dev.clojure.org/jira/browse/CLJ-845)
288 Unexpected interaction between protocol extension and namespaced method keyword/symbols
289 * Ignoring namespace portion of symbols used to name methods in extend-type and extend-protocol
290 * [CLJ-852](http://dev.clojure.org/jira/browse/CLJ-852)
8b52c00 @stuarthalloway minor edits to changelog
stuarthalloway authored
291 IllegalArgumentException thrown when defining a var whose value is calculated with a primitive fn
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
292 * [CLJ-855](http://dev.clojure.org/jira/browse/CLJ-855)
293 catch receives a RuntimeException rather than the expected checked exception
294 * [CLJ-876](http://dev.clojure.org/jira/browse/CLJ-876)
295 #^:dynamic vars declared in a nested form are not immediately dynamic
296 * [CLJ-886](http://dev.clojure.org/jira/browse/CLJ-886)
297 java.io/do-copy can garble multibyte characters
298 * [CLJ-895](http://dev.clojure.org/jira/browse/CLJ-895)
299 Collection.toArray implementations do not conform to Java API docs
300 * obey contract for toArray return type
301 * [CLJ-898](http://dev.clojure.org/jira/browse/CLJ-898)
302 Agent sends consume heap
8b52c00 @stuarthalloway minor edits to changelog
stuarthalloway authored
303 * Only capture a shallow copy of the current Frame in binding-conveyor-fn, so that sends in agent actions don't build infinite Frame stacks
98367ce @cndreisbach Updated changelog for Clojure 1.4
cndreisbach authored
304 * [CLJ-928](http://dev.clojure.org/jira/browse/CLJ-928)
305 Instant literal for Date and Timestamp should print in UTC
306 * [CLJ-931](http://dev.clojure.org/jira/browse/CLJ-933)
307 Syntactically broken clojure.test/are tests succeed
308 * [CLJ-933](http://dev.clojure.org/jira/browse/CLJ-933)
309 Compiler warning on clojure.test-clojure.require-scratch
310
Something went wrong with that request. Please try again.