Enhancement
47 changes
Optimize the default template engine to compile and execute more efficiently
Add Calendar.TimeZoneDatabase and a Calendar.UTCOnlyTimeZoneDatabase implementation
Add callbacks day_of_year/3, quarter_of_year/3, year_of_era/1, and day_of_era/3
Preserve user's choice of new line after most operators
Add Date.day_of_year/1, Date.quarter_of_year/1, Date.year_of_era/1, and Date.day_of_era/1
Add DateTime.from_naive/3, DateTime.now/1, and DateTime.shift_zone/3
Allow :raw option in File.exists?/2, File.regular?/2, and File.dir?/2
Allow POSIX time as an integer in File.touch/2 and File.touch!/2
Allow Inspect protocol to be derivable with the :only/:except options
Do not propagate counters to variables in quote inside another quote
Warn on ambiguous use of :: and | in typespecs
Add :delegate_to @doc metadata tag when using defdelegate
Improve compile-time building of ranges via the .. operator
Compile charlist interpolation more efficiently
Add floor/1 and ceil/1 guards
Add :reduce option to for comprehensions
Add List.myers_difference/3 and List.improper?/1
Add Macro.struct!/2 for proper struct resolution during compile time
Optimize and merge nested maps put and merge operations
Add Range.disjoint?/2
Reduce memory allocation when updating multiple fields in a record
Allow associating a value on :via tuple
Add String.bag_distance/2
Add $callers tracking to Task - this makes it easier to find which process spawned a task and use it for tracking ownership and monitoring
Add ExUnit.after_suite/1 callback
Show last N messages (instead of first N) from mailbox on assert_receive fail
Add port/1 and port/2
Expose IEx.Server.run/1 for custom IEx sessions with the ability to broker pry sessions
Add Mix.target/0 and Mix.target/1 to control dependency management per target
Add :depth and :parents options to deps_paths/1
Add a timeout when installing archives
Include optional dependencies in :extra_applications
Add a timeout when installing escripts
Warn when the same file may be formatted by multiple .formatter.exs
Allow setting the maximum number of failures via --max-failures
Print a message instead of raising on unmatched tests inside umbrella projects
Passing a non-empty list to Enum.into/2 was inconsistent with maps and is deprecated in favor of Kernel.++/2 or Keyword.merge/2
surround/3 is deprecated in favor of Inspect.Algebra.concat/2 and Inspect.Algebra.nest/2
surround_many/6 is deprecated in favor of container_doc/6
Using @since will now emit a unused attribute warning. Use @doc since: "1.7.2" instead
Passing a non-empty list as :into in for comprehensions was inconsistent with maps and is deprecated in favor of Kernel.++/2 or Keyword.merge/2
files/2 is deprecated in favor of compile/2
files_to_path/2 is deprecated in favor of compile_to_path/2
files/2 is deprecated in favor of Kernel.ParallelCompiler.require/2
:seconds, :milliseconds, etc. as time units is deprecated in favor of :second, :millisecond, etc.
System.cwd/0 and System.cwd!/0 are deprecated in favor of File.cwd/0 and File.cwd!/0
Returning {:ok, contents} or :error as the callback in Mix.Compilers.Erlang.compile/6 is deprecated in favor of returning {:ok, contents, warnings} or {:error, errors, warnings}