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`