- [Calendar] Limit
Calendar.ISO
up to year 10000 - [Calendar] Add Rata Die format for conversions between Calendars and
Date.convert/2
,Time.convert/2
,NaiveDateTime.convert/2
andDateTime.convert/2
(as well as bang variants) - [Calendar] Add
:calendar
field toTime
struct - [Calendar] Add
Date.diff/2
- [File] Add
File.read_link/1
andFile.read_link!/1
- [File] Introduce
:trim_bom
option forFile.stream!/2
- [Integer] Add
Integer.gcd/2
- [Kernel] Use the new
debug_info
chunk in OTP 20. This provides a mechanism for tools to retrieve the Elixir AST from beam files - [Kernel]
defoverridable/1
accepts a module name as argument and marks all callbacks as overridable - [Keyword] Add
replace/3
andreplace!/3
for replacing an existing key - [List]
List.starts_with?/2
- [Macro] Introduce
Macro.generate_arguments/2
- [Map] Optimize
Map.merge/3
by choosing merge direction - [Map] Add
replace/3
andreplace!/3
for replacing an existing key - [MapSet] Reduce
MapSet
size when serialized to approximately half - [Process] Add
Process.cancel_timer/2
- [Registry] Support ETS guard conditions in
Registry.match/3
- [Task] Support
:on_timeout
inTask.async_stream
to control how tasks are terminated
- [IEx.Helpers] Add
e/1
IEx helper to list all exports in a module - [IEx.Info] Implement
IEx.Info
protocol for calendar types
- [Logger] Add
metadata: :all
option
- [Mix.Hex] Add
--if-missing
flag tolocal.hex
mix task - [Mix.Tasks] Strip debug information from escripts by default and add option
:strip_beam
which defaults to true - [Mix.Tasks] Add
Mix.Tasks.Profile.Cprof
for count-based profiling
- [Kernel] Support guards on anonymous functions of zero arity
- [Kernel] Fix compilation of maps used as maps keys inside matches
- [ExUnit] Properly account failed tests when
setup_all
fails
- [Kernel]
not left in right
is soft-deprecated in favor ofleft not in right
- [Calendar] Deprecate
NaiveDateTime
andDateTime
inDate.to_iso8601/1
,Date.to_erl/1
,Time.to_iso8601/1
andTime.to_erl/1
to avoid loss of precision - [GenEvent] Hard deprecate
GenEvent
and provide alternatives in its docs - [Kernel] Using
()
to meannil
is deprecated - [Kernel]
Atom.to_char_list/1
,Float.to_char_list/1
,Integer.to_char_list/1
,Kernel.to_char_list/1
,String.to_char_list/1
have been deprecated in favor of theirto_charlist/1
version. This aligns with the naming conventions in both Erlang and Elixir - [Kernel]
:as_char_lists value
inInspect.Opts.t/0
type, in favor of:as_charlists
- [Kernel]
:char_lists
key inInspect.Opts.t/0
type, in favor of:charlists
- [Module] Using Erlang parse transforms via
@compile {:parse_transform, _}
is deprecated * [Typespec]char_list/0
type is deprecated in favor ofcharlist/0
The CHANGELOG for v1.4 releases can be found in the v1.4 branch.