- [CLI] Add support for
--werl
in Windows bash-like shells - [Dict] Add
Dict.get_and_update/3
as provided in the Access protocol - [Enum] Add
Enum.sample/1
,Enum.minmax/1
,Enum.minmax_by/2
andEnum.reverse_slice/3
- [Enum] Inline common map usages in
Enum
functions for performance - [ExUnit] Add number of skipped tests to
ExUnit
output - [File] Add
File.lstat/1
andFile.lstat/1
that works likeFile.stat/1
but is able to return symlink information (i.e. it does not traverse symlinks) - [Integer] Add
Integer.digits/2
andInteger.undigits/2
- [Inspect] Add the
:safe
option toinspect/2
and make it safe by default, meaning failures while inspecting won't trigger other failures. Instead, it will be wrapped in an exception which is properly formatted - [Kernel] Raise when
var.Alias
syntax is used and it does not expand to an atom at compile time (previously it just warned) - [Mix]
mix help
task now supportsmix help --search PATTERN
for filtering task names - [Mix] Check Elixir version right after archive installation and provide feedback if there is a mismatch
- [StringIO]
StringIO.flush/1
was added to flush the output of a StringIO device - [URI] Default ports were added for "ws" and "wss" schemas
- [Code]
:delegate_locals_to
failed to delegate to the chosen module in many situations and messed up stacktraces. This option has therefore been replaced by imports - [Exception] Do not fail when calculating an exception message, even if the message is invalid
- [ExUnit] Skipped tests now correctly count towards the total of tests in the result returned by
ExUnit.run/0
- [ExUnit] Fix a bug where failures when inspecting data structure or retrieving error messages could bring the whole ExUnit runner down
- [ExUnit] Ensure the Logger is flushed when running ExUnit via Mix
- [Regex] Fix splitting of empty strings with regexes when trim is set to true. Now both
String.split/3
andRegex.split/3
return an empty list when called with an empty string and trim is enabled - [Regex] Fix
Regex.replace/4
so it doesn't discard escape characters
- [Regex] Ungreedy option
r
is deprecated in favor ofU
(which is standard in regular expressions in other languages)
- [Access] The Access protocol is deprecated. The Access protocol relies on the code server in development and test mode (when protocol consolidation is not applied) and it generated a bottleneck when working with multiple processes and the Access protocol was invoked hundreds of times (which is not uncommon). In future releases the Access protocol will be removed although we will keep the
Access
module around for compatibility reasons