- [Calendar] Add
Calendar.TimeZoneDatabaseand aCalendar.UTCOnlyTimeZoneDatabaseimplementation - [DateTime] Add
DateTime.from_naive/3,DateTime.now/1andDateTime.shift_zone/3 - [File] Allow
:rawoption inFile.exists?/2,File.regular?/2andFile.dir?/2 - [Inspect] Allow Inspect protocol to be derivable with the only/except options
- [Kernel] Do not propagate counters to variables in quote inside another quote
- [Kernel] Warn on ambiguous use of
::and|in typespecs - [Kernel] Add
:delegate_to@docmetadata tag when usingdefdelegate - [Kernel] Improve compile-time building of ranges via the
..operator - [List] Add
List.myers_difference/3 - [Macro] Add
Macro.struct!/2for proper struct resolution during compile time - [Map] Optimize and merge nested maps
putandmergeoperations - [Registry] Allow associating a value on
:viatuple - [String] Add
String.bag_distance/2
- [ExUnit.Assertions] Show last N messages (instead of first N) from mailbox on
assert_receivefail - [ExUnit] Add
ExUnit.after_suite/1callback
- [IEx.Server] Expose
IEx.Serverfor custom IEx sessions
- [Mix.Project] Add
:depthand:parentsoptions todeps_paths/1 - [mix compile] Include optional dependencies in
:extra_applications - [mix format] Warn when the same file may be formatted by multiple
.formatter.exs - [mix test] Allow setting the maximum number of failures via
--max-failures - [mix test] Print a message instead of raising on unmatched tests inside umbrella projects
- [Calendar] Allow printing dates with more than 9999 years
- [Exception] Exclude deprecated functions in "did you mean?" hints
- [Float] Handle subnormal floats in
Float.ratio/1 - [Kernel] Remove
Guard test tuple_size(...) can never succeeddialyzer warning on try - [Kernel] Expand operands in
size*unitbitstring modifier instead of expectingsizeandunitto be literal integers - [Kernel] Do not deadlock on circular struct dependencies in typespecs
- [NaiveDateTime] Do not accept leap seconds in builder and parsing functions
- [String] Fix ZWJ handling in Unicode grapheme clusters
- [mix compile.protocols] Reconsolidate protocols if local deps is stale
- [mix deps] Properly mark dependencies with different
:system_envas diverged
- [Enum] Passing a non-empty list to
Enum.into/2was inconsistent with maps and is deprecated in favor ofKernel.++/2orKeyword.merge/2 - [Inspect.Algebra]
surround/3is deprecated in favor ofInspect.Algebra.concat/2andInspect.Algebra.nest/2 - [Inspect.Algebra]
surround_many/6is deprecated in favor ofcontainer_doc/6 - [Kernel] Passing a non-empty list as
:intoinforcomprehensions was inconsistent with maps and is deprecated in favor ofKernel.++/2orKeyword.merge/2 - [Kernel.ParallelCompiler]
files/2is deprecated in favor ofcompile/2 - [Kernel.ParallelCompiler]
files_to_path/2is deprecated in favor ofcompile_to_path/2 - [Kernel.ParallelRequire]
files/2is deprecated in favor ofKernel.ParallelCompiler.require/2 - [System]
:seconds,:milliseconds, etc. as time units is deprecated in favor of:second,:millisecond, etc. - [System]
System.cwd/0andSystem.cwd!/0are deprecated in favor ofFile.cwd/0andFile.cwd!/0
- [mix compile.erlang] Returning
{:ok, contents}or:erroras the callback inMix.Compilers.Erlang.compile/6is deprecated in favor of returning{:ok, contents, warnings}or{:error, errors, warnings}
The CHANGELOG for v1.7 releases can be found in the v1.7 branch.