TODO
TODO
How to disable: IEx.configure [colors: [syntax_colors: []]]
TODO
TODO
TODO
TODO
- [Calendar] Add
Date.compare/2
,Time.compare/2
,NaiveDateTime.compare/2
andDateTime.compare/2
- [Calendar] Support
NaiveDateTime.add/3
andNaiveDateTime.diff/3
for adding seconds (up to microseconds) as well as the difference between two NaiveDateTimes in seconds (up to microseconds) - [Calendar] Add
Date.leap_year?/1
andDate.day_of_week/1
- [Calendar] Generate
Date
,Time
andNaiveDateTime
APIs so they work with any struct that provides the same set of fields as their respective struct. For example, aNaiveDateTime
can be given toDate
since it contains a superset of the fields in theDate
struct - [Enum] Add
Enum.map_every/2
that invokes the given function with every nth item - [Enum] Add
min/2
,max/2
,min_max/2
,min_by/3
,max_by/3
, andmin_max_by/3
that allow a function specifying the default value when the enumerable is empty - [Enum] Introduce
Enum.zip/1
to zip multiple entries at once - [Float] Introduce
Float.ratio/1
that returns a tuple with the numerator and denominator to retrieve the given float - [GenServer] Log error on default
handle_info/2
implementation - [Inspect] Support syntax coloring via the
:syntax_color
option - [Integer]
Integer.digits/2
now accepts negative integers - [Integer] Add
Integer.mod/2
andInteger.floor_div/2
- [Kernel] Recognize merge conflict markers in source and provide a readable error message
- [Kernel] Warn on unused module attributes
- [List] Add
List.pop_at/3
- [List] Add
List.myers_difference/2
- [OptionParser] Expand multi-letter aliases in
OptionParser
- [Process] Add
Process.send_after/4
- [Process] Improve error messages on
Process.register/2
errors - [Registry] Add a local, decentralized and scalable key-value process storage
- [Stream] Add
Stream.map_every/2
that invokes the given function with every nth item - [Stream] Introduce
Stream.zip/1
to lazily zip multiple entries at once - [String] Update to Unicode 9.0.0
- [Task] Add
Task.async_stream/3
andTask.async_stream/5
as well as the supervised versionsTask.Supervisor.async_stream/4
andTask.Supervisor.async_stream/6
- [URI] Allow 0 as URI scheme default port
- [ExUnit.Doctest] Allow inspected structures with multiples lines and unicode characters in the doctest result
- [ExUnit.Formatter] Replace lhs/rhs with left/right in the formatter for clarity
- [IEx.Helpers]
c/1
now compiles in memory by default to avoid common issue where.beam
files remain at projects root directory - [IEx.Helpers] Add info about protocols in
i/1
- [IEx.Autocomplete] Stop appending a trailing dot when autocompleting modules in IEx
- [IEx.Autocomplete] Support autocompletion for structs
- [IEx.Server] Support interrupting IEx evaluation through the Ctrl+G prompt
- [Mix] Provide "did you mean?" suggestions for
mix xref
- [Mix] Add the ability to specify one or more apps in
mix cmd
- [Mix] Compress archive files built by
mix archive
as they are now unzipped during installation - [Mix] Check directory existence in
mix new
and ask how to proceed if one exists - [Mix] Applications built with the
--sup
flag now have an individual module to work as application callback - [Mix] Add
--formatter
option tomix test
- [Mix.Dep] Add warning for invalid paths on
mix deps.clean
- [Mix.Project] Add
Mix.Project.apps_paths
that returns the paths to children applications in umbrella projects - [Mix.Rebar] Add
MIX_REBAR
environment variable for overriding local rebar
- [Float] Avoid multiple roundings in
Float.{ceil/2, floor/2, round/2}
- [Kernel] Don't crash in
macro_exported?/3
when dealing with Erlang modules - [Kernel.SpecialForms] Produce meaningful warning when with's else clauses have no effect
- [Macro] Wrap fn calls in parens in
Macro.to_string/2
- [Macro] Do not print aliases as keys inside keyword lists in
Macro.to_string/2
- [OptionParser] Support options in
OptionParser.to_argv/2
to ensure:count
switches are correctly encoded - [Stream] Ensure
Stream.take/2
does not consume next element on:suspend
- [String] Fix infinite recursion in
String.replace_leading/3
andString.replace_trailing/3
when given an empty string - [Task] Fix
Task.shutdown/1,2
infinite block when task has no monitor
- [ExUnit] Fix a race condition in
assert_receive
where we would assert a message was not received but show it in the list of messages when the message is delivered right after the timeout value
- [Mix.Dep] Use
gmake
on FreeBSD instead ofmake
when compiling make dependencies - [Mix.Project] Only copy files from source when they're newer than destination (for Windows machines)
- [Mix.Task] Ensure non-recursive tasks inside umbrella are reenabled
- [Enum]
Enum.partition/2
has been deprecated in favor ofEnum.split_with/2
- [System] Deprecate plural time units in favor of singular ones to align with future Erlang releases
- [Behaviour] The
Behaviour
module is deprecated. Callbacks may now be defined directly via the@callback
attribute - [Enum] Deprecate
Enum.uniq/2
in favor ofEnum.uniq_by/2
- [Float]
Float.to_char_list/2
andFloat.to_string/2
are deprecated (use the :erlang functions if such conversions are desired) - [Kernel] Deprecate support for making private functions overridable. Overridable functions must always be public as they must be contracts
- [Kernel] Warn if variable is used as a function call
- [OptionParser] Deprecate aliases with multiple letters, such as
-abc
- [Stream] Deprecate
Stream.uniq/2
in favor ofStream.uniq_by/2
- [IEx.Helpers]
import_file/2
is deprecated in favor ofimport_file_if_available/1
- [Mix.Utils]
underscore/1
andcamelize/1
are deprecated
The CHANGELOG for v1.3 releases can be found in the v1.3 branch.