1.2.0

Released on 2016-01-01

Changes

Type
enhancement
Tool
Elixir
Module
Application
Description
Add `spec/1` and `spec/2` to retrieve application specification
Type
enhancement
Tool
Elixir
Module
Application
Description
Add `get_application/1` to retrieve the application a given module belongs to
Type
enhancement
Tool
Elixir
Module
Base
Description
Optimize encode and decode operations about 10 times
Type
enhancement
Tool
Elixir
Module
Enum
Description
Use the faster and auto-seeding `:rand` instead of `:random` in `Enum.shuffle/1` and `Enum.random/1` and `Enum.take_random/2`
Type
enhancement
Tool
Elixir
Module
Enum
Description
Add `Enum.with_index/2`
Type
enhancement
Tool
Elixir
Module
GenServer
Description
Add `GenServer.stop/1` for shutting down servers reliably
Type
enhancement
Tool
Elixir
Module
IO
Description
Add `color` related functions to `IO.ANSI`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Support multiple aliases in `alias`, `import`, `require` and `use`. For example, `alias MyApp.{Foo, Bar, Baz}`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Add `struct!/2`. Similar to `struct/2` but raises on invalid keys
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Warn if `@doc/@typedoc/@moduledoc` attributes are redefined
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Warn if non-variables are used in `defdelegate/2` (as they have no effect)
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Mark quoted expressions as generated, avoiding false positives on dialyzer
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Allow variables as map keys on creation `%{key => value}` and on matches `%{^key => value}`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Allow the pin operator `^` in `fn` clauses and on the left side of `<-` in `for` comprehensions
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Introduce `with` as a special form that allows matching on right side parameters
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Warn when right hand side of `->` does not provide any expression
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Warn if the Elixir was compiled with a different endianness than the one currently available at runtime
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Warn if a variable is used after being defined exclusively in a nested context
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Warn if piping into an expression without parentheses
Type
enhancement
Tool
Elixir
Module
Macro
Description
Add `Macro.traverse/4` that performs pre and post-walk at once
Type
enhancement
Tool
Elixir
Module
Macro
Description
Add `Macro.camelize/1` and `Macro.underscore/1`
Type
enhancement
Tool
Elixir
Module
Process
Description
Add `Process.get_keys/0`
Type
enhancement
Tool
Elixir
Module
Stream
Description
Add `Stream.with_index/2`
Type
enhancement
Tool
Elixir
Module
String
Description
Introduce `String.replace_{prefix,suffix,leading,trailing}/2`. The first two will replace only the first occurrence of the given match in string. The last two will replace all occurrences of the given match
Type
enhancement
Tool
Elixir
Module
String
Description
Support `String.normalize/2` and `String.equivalent?/2` that perform NFD and NFC normalization
Type
enhancement
Tool
Elixir
Module
System
Description
Add `System.time_offset`, `System.monotonic_time`, `System.system_time`, `System.convert_time_unit` and `System.unique_integer`
Type
enhancement
Tool
Elixir
Module
System
Description
Allow `System.cmd/3` to remove variables by specifying nil values
Type
enhancement
Tool
Elixir
Module
Task
Description
Add `Task.Supervisor.async_nolink/1/3` that spawns a supervised task without linking to the caller process
Type
enhancement
Tool
Elixir
Module
Task
Description
Introduce `Task.yield_many/2`
Type
enhancement
Tool
Elixir
Module
Task
Description
Raise an error when a task is queried from a non-owning process (instead of waiting forever)
Type
enhancement
Tool
ExUnit
Module
ExUnit
Description
Allow one test to raise multiple errors. The goal is to enable tools in the ecosystem to emit multiple failure reports from the same test
Type
enhancement
Tool
ExUnit
Module
ExUnit
Description
Support `@tag report: [:foo, :bar]` which will include the values for tags `:foo` and `:bar` whenever a test fails
Type
enhancement
Tool
IEx
Module
IEx
Description
Allow `IEX_WITH_WERL` to be set on Windows to always run on WERL mode
Type
enhancement
Tool
IEx
Module
IEx
Description
Display type docs for `t(Module.type)` and `t(Module.type/arity)`
Type
enhancement
Tool
IEx
Module
IEx
Description
Add `i/1` helper that prints information about any data type
Type
enhancement
Tool
IEx
Module
IEx
Description
Show source code snippet whenever there is a request to pry a given process
Type
enhancement
Tool
Logger
Module
Logger
Description
Add file to logger metadata
Type
enhancement
Tool
Mix
Module
Mix
Description
Cache and always consolidate protocols
Type
enhancement
Tool
Mix
Module
Mix
Description
Add `warn_test_pattern` to `mix test` that will warn on potentially misconfigured test files
Type
enhancement
Tool
Mix
Module
Mix
Description
Introduce `MIX_QUIET` environment variable that configures the underlying Mix task to output only error messages
Type
enhancement
Tool
Mix
Module
Mix
Description
Introduce `MIX_DEBUG` environment variable that prints information about the task being run
Type
enhancement
Tool
Mix
Module
Mix
Description
Validate git options and warn on conflicting ref, branch or tags
Type
enhancement
Tool
Mix
Module
Mix
Description
New umbrella applications will now share configuration and build files
Type
enhancement
Tool
Mix
Module
Mix
Description
Add experimental support for Rebar 3
Type
enhancement
Tool
Mix
Module
Mix
Description
Do not warn when an optional dependency has a conflicting `:only` option with another dependency
Type
enhancement
Tool
Mix
Module
Mix
Description
Raise readable error message when parsertools is not available
Type
enhancement
Tool
Mix
Module
Mix
Description
Add `--build` flag to `mix deps.clean DEP` to only remove artifacts from `_build`
Type
bugfix
Tool
Kernel
Module
Access
Description
Improve error messages when using Access on non-valid key-value structures
Type
bugfix
Tool
Kernel
Module
Kernel
Description
Raise when conflicting `:only` and `:except` are given to import
Type
bugfix
Tool
Kernel
Module
Kernel
Description
Change `__ENV__.file` if `@file` is set for the given function
Type
bugfix
Tool
Kernel
Module
Kernel
Description
Make `Kernel.ParallelRequire` aware of `:warning_as_errors`
Type
bugfix
Tool
Kernel
Module
Kernel
Description
Improve error message for invalid `do`/`do:`
Type
bugfix
Tool
Kernel
Module
Macro
Description
Ensure `Macro.to_string/2` respects operator precedence when using the access operator
Type
bugfix
Tool
Kernel
Module
Path
Description
Do not crash when expanding paths that go beyond the root, for example, `Path.expand("/../..")`
Type
bugfix
Tool
Kernel
Module
String
Description
Ensure `UnicodeConversionError` does not contain invalid string in its error message
Type
bugfix
Tool
IEx
Module
IEx
Description
Do not start apps on `recompile` helper if `--no-start` was given
Type
bugfix
Tool
IEx
Module
IEx
Description
Avoid copying of data when evaluating every expression in IEx
Type
bugfix
Tool
Mix
Module
Mix
Description
Always run non-recursive tasks at the umbrella root
Type
bugfix
Tool
Mix
Module
Mix
Description
Ensure rebar projects work on directory names that contain non-latin characters
Type
bugfix
Tool
Mix
Module
Mix
Description
Ignore directories inside `apps` in umbrellas that do not have a `mix.exs` file
Type
bugfix
Tool
Mix
Module
Mix
Description
Ensure Mix can be used with path dependencies where the app name is different than the path basename
Type
bugfix
Tool
Mix
Module
Mix
Description
Ensure dependencies won't crash when updating from a git repository to a hex repository and the git version did not respect SemVer
Type
bugfix
Tool
Mix
Module
Mix
Description
Do not run remote converger if dependencies have diverged
Type
bugfix
Tool
Mix
Module
Mix
Description
Ensure umbrella dependencies across all environments are loaded on parent deps.get/deps.update
Type
bugfix
Tool
ExUnit
Module
ExUnit
Description
Include file and line in all compilation errors for doctests
Type
enhancement
Tool
Kernel
Module
Dict
Description
`Dict` and `HashDict` are soft deprecated in favor of `Map`
Type
enhancement
Tool
Kernel
Module
Keyword
Description
`Keyword.size/1` is deprecated in favor of `length/1`
Type
enhancement
Tool
Kernel
Module
Map
Description
`Map.size/1` is deprecated in favor of `map_size/1`
Type
enhancement
Tool
Kernel
Module
Set
Description
`Set` and `HashSet` are soft deprecated in favor of `MapSet`
Type
enhancement
Tool
Mix
Module
Mix
Description
`Mix.Utils.camelize/1` and `Mix.Utils.underscore/1` are soft deprecated in favor of `Macro.camelize/1` and `Macro.underscore/1`