Enhancement
23 changes
Warnings now are explicitly tagged with "warning:" in messages
Explicit functions inlined by the compiler, including operators. This means that Kernel.+/2 will now expand to :erlang.+/2 and so on
Do not fail if a Mix dependency relies on an outdated Elixir version
Add Process.send/2 and Process.send_after/3
Add Version.compare/2
Inspect :... and :foo@bar without quoting
The list [1, 2, three: :four] now correctly expands to [1, 2, {:three, :four}]
Ensure undefined @attributes shows proper stacktrace in warnings
Guarantee nullary funs/macros are allowed in guards
Ensure monitoring functions are inlined by the compiler
The helper m/0 has been deprecated. The goal is to group all runtime statistic related helpers into a single module
binary_to_term/1, binary_to_term/2, term_to_binary/1 and term_to_binary/2 are deprecated in favor of their counterparts in the :erlang module
// for default arguments is deprecated in favor of \\. This is a soft deprecation, no warnings will be emitted for it in this release
Deprecated @behavior in favor of @behaviour
to_keywords, getter and list getter functionalities in defrecordp are deprecated
Record.import/2 is deprecated
Implementations of equal?/2 and merge/2 in HashDict and ListDict are no longer polymorphic. To get polymorphism, use the functions in Dict instead
File.cp/3 and File.cp_r/3 no longer carry Unix semantics where the function behaves differently if the destination is an existing previous directory or not. It now always copies source to destination, doing it recursively in the latter
IEx now loads the .iex.exs file instead of .iex
Remove ** from the list of allowed operators
Limit sigils delimiters to one of the following: <>, {}, [], (), ||, //, " and '
Range is no longer a record, instead use first .. last if you need pattern matching
Implementations of difference/2, disjoint?/2, equal?/2, intersection/2, subset?/2 and union/2 in HashSet are no longer polymorphic. To get polymorphism, use the functions in Set instead