0.12.0
Released on 2013-12-15
Changes
- Type
- enhancement
- Tool
- Elixir
- Module
- Exception
- Description
- Allow `exception/1` to be overriden and promote it as the main mechanism to customize exceptions
- Type
- enhancement
- Tool
- Elixir
- Module
- File
- Description
- Add `File.stream_to!/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- Float
- Description
- Add `Float.floor/1`, `Float.ceil/1` and `Float.round/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add `List.delete_at/2` and `List.updated_at/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add `Enum.reverse/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Implement `defmodule/2`, `@/1`, `def/2` and friends in Elixir itself. `case/2`, `try/2` and `receive/1` have been made special forms. `var!/1`, `var!/2` and `alias!/1` have also been implemented in Elixir and demoted from special forms
- Type
- enhancement
- Tool
- Elixir
- Module
- Record
- Description
- Support dynamic fields in `defrecordp`
- Type
- enhancement
- Tool
- Elixir
- Module
- Stream
- Description
- Add `Stream.resource/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- Stream
- Description
- Add `Stream.zip/2`, `Stream.filter_map/3`, `Stream.each/2`, `Stream.take_every/2`, `Stream.chunk/2`, `Stream.chunk/3`, `Stream.chunk/4`, `Stream.chunk_by/2`, `Stream.scan/2`, `Stream.scan/3`, `Stream.uniq/2`, `Stream.after/2` and `Stream.run/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- Stream
- Description
- Support `Stream.take/2` and `Stream.drop/2` with negative counts
- Type
- enhancement
- Tool
- Elixir
- Module
- HashDict
- Description
- Ensure a `HashDict` stored in an attribute can be accessed via the attribute
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Fix bug in `Enum.chunk/4` where you'd get an extra element when the enumerable was a multiple of the counter and a pad was given
- Type
- enhancement
- Tool
- Elixir
- Module
- IEx
- Description
- Ensure `c/2` helper works with full paths
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- `quote location: :keep` now only affects definitions in order to keep the proper trace in definition exceptions
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Also symlink `include` directories in _build dependencies
- Type
- enhancement
- Tool
- Elixir
- Module
- Version
- Description
- Fix `Version.match?/2` with `~>` and versions with alphanumeric build info (like `-dev`)
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- `Enumerable.count/1` and `Enumerable.member?/2` should now return tagged tuples. Please see `Enumerable` docs for more info
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Deprecate `Enum.chunks/2`, `Enum.chunks/4` and `Enum.chunks_by/2` in favor of `Enum.chunk/2`, `Enum.chunk/4` and `Enum.chunk_by/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- File
- Description
- `File.binstream!/3` is deprecated. Simply use `File.stream!/3` which is able to figure out if `stream` or `binstream` operations should be used
- Type
- enhancement
- Tool
- Elixir
- Module
- Macro
- Description
- `Macro.extract_args/1` is deprecated in favor of `Macro.decompose_call/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Behaviour of `Enum.drop/2` and `Enum.take/2` has been switched when given negative counts
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Behaviour of `Enum.zip/2` has been changed to stop as soon as the first enumerable finishes
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- `Enumerable.reduce/3` protocol has changed to support suspension. Please see `Enumerable` docs for more info
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Require `:escript_main_module` to be set before generating escripts
- Type
- enhancement
- Tool
- Elixir
- Module
- Range
- Description
- `Range.Iterator` protocol has changed in order to work with the new `Enumerable.reduce/3`. Please see `Range.Iterator` docs for more info
- Type
- enhancement
- Tool
- Elixir
- Module
- Stream
- Description
- The `Stream.Lazy` structure has changed to accumulate functions and accumulators as we go (its inspected representation has also changed)
- Type
- enhancement
- Tool
- Elixir
- Module
- Typespec
- Description
- `when` clauses were moved to the outer part of the spec and should be in the keywords format. So `add(a, b) when is_subtype(a, integer) and is_subtype(b, integer) :: integer` should now be written as `add(a, b) :: integer when a: integer, b: integer`