Enhancement
32 changes
Include relative file information in diagnostics
Add :emit_warnings for Code.string_to_quoted/2
Automatically include columns in parsing options
Introduce MismatchedDelimiterError for handling mismatched delimiter exceptions
Handle anonymous calls in fragments
Trim trailing whitespace on heredocs with \r\n
Add :offset option to File.stream!/2
Auto infer size of matched variable in bitstrings
Preserve column information when translating typespecs
Suggest module names based on suffix and casing errors when the module does not exist in UndefinedFunctionError
Introduce Kernel.ParallelCompiler.pmap/2 to compile multiple additional entries in parallel
Warn if True/False/Nil are used as aliases and there is no such alias
Add Macro.compile_apply/4
Add support for @nifs annotation from Erlang/OTP 25
Add support for missing @dialyzer configuration
Update to Unicode 15.1.0
Add String.replace_invalid/2
Add :limit option to Task.yield_many/2
Add Logger.levels/0
Add MIX_PROFILE to profile a list of comma separated tasks
Support --sparse option
Warn if both :applications and :extra_applications are used
Pass original exception down to diagnostic :details when possible
Optimize scenario where there are thousands of files in lib/ and one of them is changed
Emit a warning instead of crashing when a dependency cannot be removed
Support --sparse option
Include include/ directory in releases
Allow testing multiple file:line at once, such as mix test test/foo_test.exs:13 test/bar_test.exs:27
Deprecate File.stream!(file, options, line_or_bytes) in favor of keeping the options as last argument, as in File.stream!(file, line_or_bytes, options)
Deprecate Kernel.ParallelCompiler.async/1 in favor of Kernel.ParallelCompiler.pmap/2
Deprecate Path.safe_relative_to/2 in favor of Path.safe_relative/2
Returning a four-element tuple as a position in Mix.Task.Compiler.Diagnostic