0.14.0

Released on 2014-06-08

Changes

Type
enhancement
Tool
Elixir
Module
ExUnit
Description
Add `on_exit/1` callbacks that are guaranteed to run once the test process exits and always in another process
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Store documentation in the abstract code to avoid loading them when the module is loaded
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Add `get_in/2`, `put_in/3`, `update_in/3` and `get_and_update_in/3` to handle nested data structure operations
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Add `get_in/1`, `put_in/2`, `update_in/2` and `get_and_update_in/2` to handle nested data structure operations via paths
Type
enhancement
Tool
Elixir
Module
Mix
Description
Add `Mix.Config` to ease definition of configuration files
Type
enhancement
Tool
Elixir
Module
Mix
Description
Add `mix loadconfig` task that can be called multiple times to load external configs
Type
enhancement
Tool
Elixir
Module
Mix
Description
Support `--config` option on `mix run`
Type
enhancement
Tool
Elixir
Module
Mix
Description
Support `HTTP_PROXY` and `HTTPS_PROXY` on Mix url commands
Type
enhancement
Tool
Elixir
Module
Mix
Description
Support `--names` options in `mix help` which emit only names (useful for autocompletion)
Type
enhancement
Tool
Elixir
Module
Protocol
Description
Add `Protocol.consolidate/2`, `Protocol.consolidated?/1` and a `mix compile.protocols` task for protocol consolidation
Type
enhancement
Tool
Elixir
Module
Protocol
Description
Add `Protocol.derive/3` for runtime deriving of a struct
Type
enhancement
Tool
Elixir
Module
String
Description
Add `String.chunk/2`
Type
enhancement
Tool
Elixir
Module
Struct
Description
Add support for `@derive` before `defstruct/2` definitions
Type
enhancement
Tool
Elixir
Module
File
Description
`File.rm` now consistently deletes read-only across operating systems
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Ensure Mix `_build` structure works on Windows when copying projects
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Ensure `1.0E10` (with uppercase E) is also valid syntax
Type
enhancement
Tool
Elixir
Module
Mix
Description
Fix `mix do` task for Windows' powershell users
Type
enhancement
Tool
Elixir
Module
Path
Description
Fix `Path.absname("/")` and `Path.expand("/")` to return the absolute path `"/"`.
Type
enhancement
Tool
Elixir
Module
Kernel
Description
`size/1` is deprecated, please use `byte_size/1` or `tuple_size/1` instead
Type
enhancement
Tool
Elixir
Module
ExUnit
Description
`teardown/2` and `teardown_all/2` are deprecated in favor of `on_exit/1` callbacks
Type
enhancement
Tool
Elixir
Module
Access
Description
`Access.access/2` is deprecated in favor of `Access.get/2`
Type
enhancement
Tool
Elixir
Module
Dict
Description
`Dict.Behaviour` is deprecated in favor of `Dict`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
`Application.Behaviour`, `GenEvent.Behaviour`, `GenServer.Behaviour` and `Supervisor.Behaviour` are deprecated in favor of `Application`, `GenEvent`, `GenServer` and `Supervisor`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
`defexception/3` is deprecated in favor of `defexception/1`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
`raise/3` is deprecated in favor of `reraise/2`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
`set_elem/3` is deprecated in favor of `put_elem/3`
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Passing an atom `var!/1` is deprecated, variables can be built dynamically with `Macro.var/2`
Type
enhancement
Tool
Elixir
Module
Mix
Description
Exceptions that define a `:mix_error` field to be compatible with Mix are no longer supported. Instead please provide a `:mix` field and use `Mix.raise/1` and `Mix.raise/2`
Type
enhancement
Tool
Elixir
Module
Access
Description
`Kernel.access/2` no longer exists and the `Access` protocol now requires `get/2` (instead of `access/2`) and `get_and_update/3` to be implemented
Type
enhancement
Tool
Elixir
Module
Kernel
Description
Retrieving docs as `module.__info__(:docs)` is no longer supported, please use `Code.get_docs/2` instead
Type
enhancement
Tool
Elixir
Module
Kernel
Description
`Code.compiler_options/1` no longer accepts custom options, only the ones specified by Elixir (use mix config instead)
Type
enhancement
Tool
Elixir
Module
Mix
Description
`mix new` no longer generates a supevision tree by default, please pass `--sup` instead
Type
enhancement
Tool
Elixir
Module
Task
Description
Tasks are automatically linked to callers and a failure in the task will crash the caller directly