- [Code] Add
:token_metadata
and:literal_encoder
support toCode.string_to_quoted/2
- [Code] Add compiler tracing to lift events done by the compiler
- [DateTime] Add
DateTime.now!/2
andDateTime.shift_zone!/3
- [Exception] Add version alonside app names in stacktraces
- [Function] Add
Function.identity/1
- [Kernel] Warn when function head comes immediately after the implementation instead of before the implementation
- [Keyword] Add
Keyword.pop!/2
andKeyword.pop_values/2
- [Map] Add
Map.pop!/2
- [Module] Add
Module.has_attribute?/2
- [Module] Add
@compile {:no_warn_undefined, mfa_or_module}
to turn off undefined function warnings - [String] Update to Unicode 12.1
- [StringIO] Add
:encoding
option to StringIO and optimizeget_chars
operation
- [ExUnit.Assertions] Support diffs in pattern matching and in
assert_receive
- [mix deps.compile] Add
--skip-umbrella-apps
flag. The new flag does not compile umbrella apps. This is useful for building caches in CD/CI pipelines. - [mix deps.unlock] Add
--check-unused
flag. The new flag raises if there are any unused dependencies in the lock file. - [mix release] Allow
{:from_app, app_name}
as a version for releases
- [Module] Raise instead of silently failing when performing a write during after-compile
- [IEx] Exit IEx session if the group leader exits
- [IEx] Allow
pry
to be used in non-tty terminals
- [Mix.Project] Make sure
MIX_BUILD_PATH
specifies only thebuild_path
prefix and that env+target are still concatenated - [Mix.Task] Always recompile before running tasks from dependencies
- [Code]
compiler_options/0
is deprecated in favor ofcompiler_option/1
- [mix xref]
calls/0
is deprecated in favor of upcoming compiler tracer - [mix xref] The
xref.exclude
option has been moved toelixirc_options.no_warn_undefined
as thexref
pass has been moved into the compiler
- [mix compile.xref] This check has been moved into the compiler and has no effect now
- [mix xref deprecations] This check has been moved into the compiler and has no effect now
- [mix xref unreachable] This check has been moved into the compiler and has no effect now
- [Code]
Code.load_file/2
has been deprecated in favor ofCode.require_file/2
orCode.compile_file/2
- [Code]
Code.loaded_files/0
andCode.unload_file/1
have been deprecated in favor ofCode.required_files/0
andCode.unrequire_file/1
respectively - [String]
String.normalize/2
has been deprecated in favor of:unicode.characters_to_nfc_binary/1
or:unicode.characters_to_nfd_binary/1
which ship as part of Erlang/OTP 20+ - [Supervisor] The
Supervisor.Spec
module and its functions have been deprecated in favor of the new Supervisor child specification - [Supervisor] The
:simple_one_for_one
strategy inSupervisor
has been deprecated in favor ofDynamicSupervisor
- [Logger]
:compile_time_purge_level
application environment configuration has been deprecated in favor of the more general:compile_time_purge_matching
config
The CHANGELOG for v1.9 releases can be found in the v1.9 branch.