0.10.2
Released on 2013-09-03
Changes
- Type
- enhancement
- Tool
- Elixir
- Module
- CLI
- Description
- Add `--verbose` to elixirc, which now is non-verbose by default
- Type
- enhancement
- Tool
- Elixir
- Module
- Dict
- Description
- Add `Dict.Behaviour` as a convenience to create your own dictionaries
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Add `Enum.split/2`, `Enum.reduce/2`, `Enum.flat_map/2`, `Enum.chunks/2`, `Enum.chunks/4`, `Enum.chunks_by/2`, `Enum.concat/1` and `Enum.concat/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- Support negative indices in `Enum.at/fetch/fetch!`
- Type
- enhancement
- Tool
- Elixir
- Module
- ExUnit
- Description
- Show failures on CLIFormatter as soon as they pop up
- Type
- enhancement
- Tool
- Elixir
- Module
- IEx
- Description
- Allow for strings in `h` helper
- Type
- enhancement
- Tool
- Elixir
- Module
- IEx
- Description
- Helpers `r` and `c` can handle erlang sources
- Type
- enhancement
- Tool
- Elixir
- Module
- Integer
- Description
- Add `odd?/1` and `even?/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- IO
- Description
- Added support to specifying a number of bytes to stream to `IO.stream`, `IO.binstream`, `File.stream!` and `File.binstream!`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Include file and line on error report for overriding an existing function/macro
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Convert external functions into quoted expressions. This allows record fields to contain functions as long as they point to an `&Mod.fun/arity`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Allow `foo?` and `bar!` as valid variable names
- Type
- enhancement
- Tool
- Elixir
- Module
- List
- Description
- Add `List.replace_at/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- Macro
- Description
- Improve printing of the access protocol on `Macro.to_string/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- Macro
- Description
- Add `Macro.to_string/2` to support annotations on the converted string
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Automatically recompile a project if the Elixir version changes
- Type
- enhancement
- Tool
- Elixir
- Module
- Path
- Description
- Add `Path.relative_to_cwd/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Regex
- Description
- Allow erlang `re` options when compiling Elixir regexes
- Type
- enhancement
- Tool
- Elixir
- Module
- Stream
- Description
- Add `Stream.concat/1`, `Stream.concat/2` and `Stream.flat_map/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- String
- Description
- Add regex pattern support to `String.replace/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- String
- Description
- Add `String.ljust/2`, `String.rjust/2`, `String.ljust/3` and `String.rjust/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- URI
- Description
- `URI.parse/1` supports IPv6 addresses
- Type
- enhancement
- Tool
- Elixir
- Module
- Behaviour
- Description
- Do not compile behaviour docs if docs are disabled on compilation
- Type
- enhancement
- Tool
- Elixir
- Module
- ExUnit
- Description
- Doctests no longer eat too much space and provides detailed reports for poorly indented lines
- Type
- enhancement
- Tool
- Elixir
- Module
- File
- Description
- Fix a bug where `File.touch(file, datetime)` was not setting the proper datetime when the file did not exist
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Limit `inspect` results to 50 items by default to avoid printing too much data
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Return a readable error on oversized atoms
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Allow functions ending with `?` or `!` to be captured
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Fix default shutdown of child supervisors to `:infinity`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Fix regression when calling a function/macro ending with bang, followed by `do/end` blocks
- Type
- enhancement
- Tool
- Elixir
- Module
- List
- Description
- Fix bug on `List.insert_at/3` that added the item at the wrong position for negative indexes
- Type
- enhancement
- Tool
- Elixir
- Module
- Macro
- Description
- `Macro.escape/2` can now escape improper lists
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Fix `Mix.Version` matching on pre-release info
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Ensure `watch_exts` trigger full recompilation on change with `mix compile`
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- Fix regression on `mix clean --all`
- Type
- enhancement
- Tool
- Elixir
- Module
- String
- Description
- `String.strip/2` now supports removing unicode characters
- Type
- enhancement
- Tool
- Elixir
- Module
- String
- Description
- `String.slice/3` still returns the proper result when there is no length to be extracted
- Type
- enhancement
- Tool
- Elixir
- Module
- System
- Description
- `System.get_env/0` now returns a list of tuples as previously advertised
- Type
- enhancement
- Tool
- Elixir
- Module
- Dict
- Description
- `Dict.update/3` is deprecated in favor of `Dict.update!/3`
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- `Enum.min/2` and `Enum.max/2` are deprecated in favor of `Enum.min_by/2` and `Enum.max_by/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Enum
- Description
- `Enum.join/2` and `Enum.map_join/3` with a char list are deprecated
- Type
- enhancement
- Tool
- Elixir
- Module
- IO
- Description
- `IO.stream(device)` and `IO.binstream(device)` are deprecated in favor of `IO.stream(device, :line)` and `IO.binstream(device, :line)`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- `list_to_binary/1`, `binary_to_list/1` and `binary_to_list/3` are deprecated in favor of `String.from_char_list!/1` and `String.to_char_list!/1` for characters and `:binary.list_to_bin/1`, `:binary.bin_to_list/1` and `:binary.bin_to_list/3` for bytes
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- `to_binary/1` is deprecated in favor of `to_string/1`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Deprecate `def/4` and friends in favor of `def/2` with unquote and friends
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- Deprecate `%b` and `%B` in favor of `%s` and `%S`
- Type
- enhancement
- Tool
- Elixir
- Module
- List
- Description
- `List.concat/2` is deprecated in favor of `Enum.concat/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Macro
- Description
- `Macro.unescape_binary/1` and `Macro.unescape_binary/2` are deprecated in favor of `Macro.unescape_string/1` and `Macro.unescape_string/2`
- Type
- enhancement
- Tool
- Elixir
- Module
- Mix
- Description
- `:umbrella` option for umbrella paths has been deprecated in favor of `:in_umbrella`
- Type
- enhancement
- Tool
- Elixir
- Module
- IO
- Description
- IO functions now only accept iolists as arguments
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- `Binary.Chars` was renamed to `String.Chars`
- Type
- enhancement
- Tool
- Elixir
- Module
- Kernel
- Description
- The previous ambiguous import syntax `import :functions, Foo` was removed in favor of `import Foo, only: :functions`
- Type
- enhancement
- Tool
- Elixir
- Module
- OptionParser
- Description
- `parse` and `parse_head` now returns a tuple with three elements instead of two