Enhancement
45 changes
Allow function access on get_in/2 and get_and_update_in/3
Add Enum.sort_by/3
Match the line filter by proximity instead of exact match
Support precision in Float.ceil/1 and Float.floor/1
Add IO.(bin)read(device, :all)
Print a warning if a dangling @doc clause is found
Use absolute symbolic links on Windows for _build instead of copying
Add Mix.compilers that returns all default compilers used by mix tasks
Issue warning and reset mtime for source files from the future
Support task aliases in Mix
Add OptionParser.split/1 that splits a string into argv
Allow a record to be converted to a keyword list with record(some_record)
Improve performance of String.split/1
Allow %Struct{} syntax to be used in typespecs
Allow record(:record, fields) syntax to be used in typespecs
Do not print ANSI sequences on IEx.Helpers.clear/0 if ANSI sequences are not supported
Ensure Inspect.Algebra.to_doc/2 doesn't go into a loop when there is a failure printing a struct
|>, <<<, >>> and ^^^ made left associative in operator table
<, >, <=, >= given higher precedence than comparison operators (==, !=, etc) in the operator table
Run command line and escripts in a process that does not trap exits
Fix a bug where Mix paths had higher priority than CLI ones, causing protocol consolidations to not be properly loaded
Fix wording on error messages when a check/guard always passes or always fails
Fix a bug where an unused function warning was printed even when the function was used via defoverridable
Improve typespecs so they don't generate supertype dialyzer warnings
to_string correctly displays sigils
Ensure Mix dependencies are not compiled every second time when mix deps.compile is invoked
Fix a bug where Mix.shell.error/1 and friends choked when printing a map
Ensure multiple @external_resource entries are read by Mix compilers
Fix a bug where tasks for umbrella projects were not properly reenabled
Fix bug when flat_map is used inside another flat_map with an Enumerable
Fix a bug where the list typespec was incorrectly rendered as []
Using a list for bitstring modifiers is deprecated (as in <<x :: [little, utf16]>>), please use - as the separator instead (as in <<x :: little-utf16>>)
System.cmd/1 is deprecated in favor of System.cmd/3
mix escriptize is deprecated in favor of escript.build
mix local.install and mix local.uninstall have been deprecated in favor of mix archive.install and mix archive.uninstall respectively
:embed_extra_apps for escripts is deprecated, instead list the dependencies inside def application
Giving a char list to System.find_executable/1 is deprecated
No longer fill in missing intermediate values with empty maps
Float.ceil/2 and Float.floor/2 now always returns floats and no longer accept integers
defstruct no longer automatically defines a type
exit(integer) is no longer supported from scripts to configure the exit signal. Use exit({:shutdown, integer}) instead
Default argument values have to be defined in a function head if the function has multiple clauses
mix archive.build replaces the functionality of mix archive, mix archive now lists locally installed archives
Mix.shell.info/1 no longer automatically escape ANSI sequences. Instead if has to be explicitly enabled with the ansi: true option
--no-SWITCH are only allowed for declared booleans switches