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