- [Calendar.ISO] Support negative dates in
Calendar.ISO
- [Calendar] Add
months_in_year/1
callback - [Code] Add
Code.compile_file/2
that compiles files without leaving footprints on the system - [Date] Add
months_in_year/1
function - [DynamicSupervisor] Use the name of the
DynamicSupervisor
as the ID whenever possible - [Function] Add
Function
module withcapture/3
,info/1
andinfo/2
functions - [IO.ANSI] Add cursor movement to
IO.ANSI
- [Kernel] Introduce
__STACKTRACE__
to retrieve the current stacktrace insidecatch
/rescue
(this will be a requirement for Erlang/OTP 21+) - [Kernel] Raise on unsafe variables in order to allow us to better track unused variables
- [Kernel] Warn when using
length
to check if a list is not empty on guards - [Macro] Add
Macro.special_form?/2
andMacro.operator?/2
that returns true if the given name/arity is a special form or operator respectively - [Macro.Env] Add
Macro.Env.vars/1
andMacro.Env.has_var?/2
that gives access to environment data without accessing private fields - [Regex] Include endianness in the regex version. This allows regexes to be recompiled when an archive is installed in a system with a different endianness
- [Registry] Add
Registry.count/1
andRegistry.count_match/4
- [System] Use ISO 8601 in
System.build_info/0
- [ExUnit.Assertion] Print the arguments in error reports when asserting on a function call. For example, if
assert is_list(arg)
fails, the argument will be shown in the report - [ExUnit.Formatter] Excluded tests, via the
--exclude
and--only
flags, are now shown as "Excluded" in reports. Tests skipped via@tag :skip
are now exclusively shown as "Skipped" and in yellow - [ExUnit.DocTest] Show colored diffs on failed doctests
- [IEx.Helpers] Add
IEx.Helpers.use_if_available/2
- [Logger] Improve error messages on invalid inputs
- [mix compile] Improve support for external build tools such as
rebar
- [mix local] Use ipv6 with auto fallback to ipv4 when downloading data
- [mix profile] Allow all profiling tasks to run programatically
- [mix test] Add
--failed
option that only runs previously failed tests - [Mix.Project] Add
Mix.Project.clear_deps_cache/0
- [IO.ANSI.Docs] Fix table column alignment when converting docs to ANSI escapes
- [Kernel] Raise on unsafe variables as some of the code emitted with unsafe variables would not correctly propagate variables or would disable tail call optimization semantics
- [ExUnit.Case] Raise proper error if
@tag
and@moduletag
are used beforeuse ExUnit.Case
- [ExUnit.Case] Raise proper error if
@describetag
is used outside of describe - [ExUnit.DocTest] Emit proper assertion error on doctests with invalid UTF-8
- [Code] Deprecate
Code.load_file/2
in favor ofCode.compile_file/2
- [Code] Deprecate
Code.loaded_files/0
in favor ofCode.required_files/0
- [Code] Deprecate
Code.unload_files/1
in favor ofCode.unrequire_files/1
- [Enum]
Enum.chunk/2/3/4
is deprecated in favor ofEnum.chunk_every/2/3/4
- noticechunk_every
does not discard incomplete chunks by default - [Kernel]
not left in right
is ambiguous and is deprecated in favor ofleft not in right
- [Kernel] Warn on confusing operator sequences, such as
1+++1
meaning1 ++ +1
or........
meaning... .. ...
- [OptionParser] Deprecate dynamic option parser mode that depended on atoms to be previously loaded and therefore behaved inconsistently
- [Stream]
Stream.chunk/2/3/4
is deprecated in favor ofStream.chunk_every/2/3/4
- noticechunk_every
does not discard incomplete chunks by default
The CHANGELOG for v1.6 releases can be found in the v1.6 branch.