0.10.0
Released on 2013-07-15
Changes
- Type
- enhancement
- Tool
- Elixir
- Module
- ExUnit
- Description
- Support `trace: true` option which gives detailed reporting on test runs
- Type
- enhancement
- Tool
- Elixir
- Module
- HashDict
- Description
- Optimize `HashDict` to store pairs in a cons cell reducing storage per key by half
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add pretty printing support for inspect
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add document algebra library used as the foundation for pretty printing
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add `defrecordp/3` that enables specifying the first element of the tuple
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add the `Set` API and a hash based implementation via `HashSet`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Add `Stream` as composable, lazy-enumerables
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- `mix archive` now includes the version of the generated archive
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Mix now requires explicit dependency overriding to be given with `override: true`
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Projects can now define an `:elixir` key to outline supported Elixir versions
- Type
- enhancement
- Tool
- Elixir
- Module
- Typespec
- Description
- Improve error messages to contain file, line and the typespec itself
- Type
- enhancement
- Tool
- Elixir
- Module
- CLI
- Description
- Elixir can now run on Unix directories with `:` in its path
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- `match?/2` does not leak variables to outer scope
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Keep `head|tail` format when splicing at the tail
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Ensure variables defined in the module body are not passed to callbacks
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- On dependencies conflict, show from where each source is coming from
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Empty projects no longer leave empty ebin files on `mix compile`
- Type
- enhancement
- Tool
- Elixir
- Module
- Module
- Description
- Calling `Module.register_attribute/3` no longer automatically changes it to persisted or accumulated
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Receiving the index of iteration in `Enum.map/2` and `Enum.each/2` is deprecated in favor of `Stream.with_index/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- File
- Description
- `File.iterator/1` and `File.biniterator/1` are deprecated in favor of `IO.stream/1` and `IO.binstream/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- File
- Description
- `File.iterator!/2` and `File.biniterator!/2` are deprecated in favor of `File.stream!/2` and `File.binstream!/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Deprecate recently added `quote binding: ...` in favor of the clearer `quote bind_quoted: ...`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Deprecate `Kernel.float/1` in favor of a explicit conversion
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Deprecate `mix run EXPR` in favor of `mix run -e EXPR`
- Type
- enhancement
- Tool
- Elixir
- Module
- Record
- Description
- `Record.__index__/2` deprecated in favor of `Record.__record__(:index, key)`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- The `Binary.Inspect` protocol has been renamed to `Inspect`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Tighten up the grammar rules regarding parentheses omission, previously the examples below would compile but now they raise an error message:
- Type
- enhancement
- Tool
- Elixir
- Module
- Module
- Description
- Calling `Module.register_attribute/3` no longer automatically changes it to persisted or accumulated
- Type
- enhancement
- Tool
- Elixir
- Module
- Record
- Description
- First element of a record via `defrecordp` is now the `defrecordp` name and no longer the current atom
- Type
- enhancement
- Tool
- Elixir
- Module
- URI
- Description
- Remove custom URI parsers in favor of `URI.default_port/2`