You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+29-72Lines changed: 29 additions & 72 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,89 +156,22 @@ Overall, using `@impl` has the following advantages:
156
156
157
157
This release brings further improvements to Calendar types. It adds arithmetic and others functions to `Time`, `Date`, `NaiveDateTime` and `Datetime` as well as conversion between different calendars.
158
158
159
-
## v1.5.0-rc.2 (2017-07-20)
160
-
161
-
### 1. Enhancements
162
-
163
-
#### Elixir
164
-
165
-
*[Calendar] Move calendar from `rata_die` to `iso_days`
*[String] Optimise binary pattern matching in `String.Break`
168
-
169
-
#### IEx
170
-
171
-
*[IEx.Helpers] Allow `__FILE__` and `__LINE__` customization in `IEx.Helpers.open/1`
172
-
173
-
### 2. Bug fixes
174
-
175
-
#### Elixir
176
-
177
-
*[File] Ensure recursive file operations raise on paths with null bytes
178
-
*[Kernel] Bring the `e in _` syntax back to try/rescue (regression)
179
-
*[Kernel] Do not use named ETS tables during module definition (regression)
180
-
*[Path] Ensure recursive path operations raise on paths with null bytes
181
-
*[Registry] Ensure `Registry.match/4` works with `:_` as key
182
-
*[Stream] Fix regression in `Stream.chunk/4` (regression)
183
-
184
-
#### Mix
185
-
186
-
*[mix compile.protocols] Do not raise when consolidating a protocol that was converted into a module
187
-
*[mix compile.erlang] Properly track `-compile` module attribute when specified as a list
188
-
189
-
## v1.5.0-rc.1 (2017-07-12)
159
+
## v1.5.0 (2017-07-25)
190
160
191
161
### 1. Enhancements
192
162
193
163
#### Elixir
194
164
165
+
*[Access] Optimize `Access.get/2`
195
166
*[Base] Optimise Base encode/decode
196
167
*[Calendar] Implement Inspect for DateTime with Calendar.ISO
197
-
*[Enum] Introduce `Enum.chunk_every/2` and `Enum.chunk_every/4` with a more explicit API than `Enum.chunk/2` and `Enum.chunk/4`
198
-
*[Kernel] Cache the AST on definitions. This speeds up the compilation time from 10% to 15% measured across different projects
199
-
*[Kernel] Improve compiler error message on invalid patterns and guards
200
-
*[Stream] Introduce `Stream.chunk_every/2` and `Stream.chunk_every/4` with a more explicit API than `Stream.chunk/2` and `Stream.chunk/4`
201
-
202
-
#### IEx
203
-
204
-
*[IEx.Helpers] Add `break!/2`, `break!/4`, `breaks/0`, `continue/0`, `open/0`, `remove_breaks/0`, `remove_breaks/1`, `reset_break/1`, `reset_break/3` and `whereami/1` for code debugging
205
-
*[IEx.Helpers] No longer emit warnings for IEx commands without parentheses
206
-
*[IEx.Helpers] Add `runtime_info/0` for printing runtime system information
207
-
*[IEx.Helpers] Add `open/1` to open the source of a given module/function in your editor
208
-
209
-
### 2. Bug fixes
210
-
211
-
#### Elixir
212
-
213
-
*[Calendar] Return `{:error, :invalid_time}` for wrong precision instead of crashing
214
-
*[Enum] Rename `Enum.chunk_by/4` to `Enum.chunk_while/4` (`chunk_by/4` was only part of 1.5.0-rc.0) (regression)
215
-
*[Enumerable] Raise `Protocol.UndefinedError` on bad functions in Enumerable implementation
216
-
*[Inspect] Do not use colors when inspecting error messages
217
-
*[Kernel] Do not warn false positives about unused variables on rescue (regression)
218
-
*[Kernel] Ensure `do` clause in `with` is tail call optimizable
219
-
*[Protocol] Do not lose source compile info on protocol consolidation
220
-
*[Stream] Fix stream cycle over empty enumerable
221
-
*[Stream] Rename `Stream.chunk_by/4` to `Stream.chunk_while/4` (`chunk_by/4` was only part of 1.5.0-rc.0) (regression)
222
-
*[StringIO] Fix encoding and performance issues in `StringIO.get_until`
223
-
224
-
#### ExUnit
225
-
226
-
*[ExUnit] Load ExUnit configuration as late as possible (regression)
227
-
228
-
## v1.5.0-rc.0 (2017-06-25)
229
-
230
-
### 1. Enhancements
231
-
232
-
#### Elixir
233
-
234
-
*[Access] Optimize Access.get/2
235
-
*[Calendar] Limit `Calendar.ISO` up to year 10000
236
-
*[Calendar] Add Rata Die format for conversions between Calendars and `Date.convert/2`, `Time.convert/2`, `NaiveDateTime.convert/2` and `DateTime.convert/2` (as well as bang variants)
168
+
*[Calendar] Add "ISO days" format for conversions between Calendars and `Date.convert/2`, `Time.convert/2`, `NaiveDateTime.convert/2` and `DateTime.convert/2` (as well as bang variants)
237
169
*[Calendar] Add `:calendar` field to `Time` struct
*[Stream] Add `Stream.chunk_every/2` and `Stream.chunk_every/4` with a more explicit API than `Stream.chunk/2` and `Stream.chunk/4`
200
+
*[String] Optimise binary pattern matching in `String.split/1` and `String.trim_*/1`
263
201
*[Supervisor] Add `Supervisor.init/2` and `Supervisor.child_spec/2`
264
202
*[Supervisor] Allow `module` and `{module, arg}` to be given to `Supervisor.start_link/2` and invoke `module.child_spec(arg)` on each argument
265
203
*[Task] Support `:on_timeout` in `Task.async_stream` to control how tasks are terminated
@@ -278,6 +216,10 @@ This release brings further improvements to Calendar types. It adds arithmetic a
278
216
*[IEx.Autocomplete] Support autocompletion of functions imported using `import Mod, only: [...]`
279
217
*[IEx.Evaluator] Use `Exception.blame/3` when showing errors in the terminal
280
218
*[IEx.Helpers] Add `exports/1` IEx helper to list all exports in a module
219
+
*[IEx.Helpers] Add `break!/2`, `break!/4`, `breaks/0`, `continue/0`, `open/0`, `remove_breaks/0`, `remove_breaks/1`, `reset_break/1`, `reset_break/3` and `whereami/1` for code debugging
220
+
*[IEx.Helpers] No longer emit warnings for IEx commands without parentheses
221
+
*[IEx.Helpers] Add `runtime_info/0` for printing runtime system information
222
+
*[IEx.Helpers] Add `open/1` to open the source of a given module/function in your editor
281
223
*[IEx.Info] Implement `IEx.Info` protocol for calendar types
282
224
283
225
#### Logger
@@ -297,13 +239,26 @@ This release brings further improvements to Calendar types. It adds arithmetic a
297
239
298
240
#### Elixir
299
241
242
+
*[Calendar] Ensure `Calendar.ISO` raises a readable error when reaching up the year 10000 restriction
243
+
*[Calendar] Return `{:error, :invalid_time}` for wrong precision instead of crashing when parsing ISO dates
244
+
*[Enumerable] Raise `Protocol.UndefinedError` on bad functions in Enumerable implementation
245
+
*[File] Ensure recursive file operations raise on paths with null bytes (*security issue reported by Griffin Byatt*)
300
246
*[File] Support `:ram`/`:raw` files in `File.copy/2`
247
+
*[Inspect] Do not use colors when inspecting error messages
301
248
*[Kernel] Support guards on anonymous functions of zero arity
302
249
*[Kernel] Fix compilation of maps used as maps keys inside matches
250
+
*[Kernel] Ensure `do` clause in `with` is tail call optimizable
303
251
*[Module]`on_definition/6` callback receives body wrapped in a keyword list, such as `[do: body]`. This solves a bug where it was impossible to distinguish between a bodyless clause and a function that returns `nil`.
252
+
*[Path] Ensure recursive path operations raise on paths with null bytes (*security issue reported by Griffin Byatt*)
253
+
*[Protocol] Do not lose source compile info on protocol consolidation
304
254
*[Record] Properly escape quoted expressions passed to `defrecord`
305
255
*[Regex] Fix `inspect/2` for regexes with `/` terminator in them
256
+
*[Registry] Ensure `Registry.match/4` works with `:_` as key
257
+
*[Stream] Fix stream cycle over empty enumerable
306
258
*[String] Consider Unicode non-characters valid according to the specification in `String.valid?/1`
259
+
*[StringIO] Fix encoding and performance issues in `StringIO.get_until`
260
+
*[System] Raise on paths with null bytes in `System.cmd/2` and in `System.find_executable/1` (*security issue reported by Griffin Byatt*)
261
+
*[System] Raise on ill-formed environment variables (*security issue reported by Griffin Byatt*)
307
262
308
263
#### ExUnit
309
264
@@ -319,7 +274,9 @@ This release brings further improvements to Calendar types. It adds arithmetic a
319
274
320
275
*[mix compile.elixir] Store multiple sources in case of module conflicts. This solves an issue where `_build` would get corrupted when compiling Elixir projects with module conflicts
321
276
*[mix compile.erlang] Do not silently discard Erlang compile errors
277
+
*[mix compile.erlang] Properly track `-compile` module attribute when specified as a list
322
278
*[mix compile.protocols] Ensure protocol implementations do not "disappear" when switching between applications in umbrella projects by having separate consolidation paths per project
279
+
*[mix compile.protocols] Do not raise when consolidating a protocol that was converted into a module
323
280
324
281
### 3. Soft deprecations (no warnings emitted)
325
282
@@ -347,7 +304,7 @@ This release brings further improvements to Calendar types. It adds arithmetic a
347
304
348
305
#### EEx
349
306
350
-
*[EEx] Deprecate `<%= ` in middle and end expressions, e.g.: `<%= else %>` and `<%= end %>`
307
+
*[EEx] Deprecate `<%= ` in "middle" and "end" expressions, e.g.: `<%= else %>` and `<%= end %>`
0 commit comments