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