Enhancement
39 changes
Add Base module which does conversions to bases 16, 32, hex32, 64 and url64
Add Code.eval_file/2
Add the Collectable protocol that empowers Enum.into/2 and Stream.into/2 and the :into option in comprehensions
Implement Collectable for lists, dicts, bitstrings, functions and provide both File.Stream and IO.Stream
Add handle_body/1 callback to EEx.Engine
Add Enum.group_by/2, Enum.into/2, Enum.into/3, Enum.traverse/2 and Enum.sum/2
Randomize cases and tests suite runs, allow seed configuration and the --seed flag via mix test
Support --only for filtering when running tests with mix test
Raise an error if another capture_io process already captured the device
Improve formatter to show source code and rely on lhs and rhs (instead of expected and actual)
Allow prompt configuration with the :prompt option
Use werl on Windows
Support ERL_PATH in bin/elixir
Support interpolation in keyword syntax
Add a Map module and support 17.0 maps and structs
Add dependency option :only to specify the dependency environment. mix deps.get and mix deps.update works accross all environment unless --only is specified
Add Mix.Shell.prompt/1
Ensure the project is compiled in case Mix' CLI cannot find a task
Add Node.ping/1
Include Process.send/3 and support the --gen-debug option
Regexes no longer need the "g" option when there is a need to use named captures
Add Stream.into/2 and Stream.into/3
Add a StringIO module that allows a String to be used as IO device
Add System.delete_env/1 to remove a variable from the environment
Ensure --app is handled as an atom before processing
Ensure ExUnit.Assertions does not emit compiler warnings for assert_receive
Ensure the same pid is not queued twice in the parallel compiler
Macro.to_string/2 considers proper precedence when translating !(foo > bar) into a string
Automatically recompile on outdated Elixir version and show proper error messages
Ensure generated .app file includes core dependencies
Allow a dependency with no SCM to be overridden
Allow queries in mix local.install URL
Do not recognize undefined aliases as switches
Dict.empty/1, Dict.new/1 and Dict.new/2 are deprecated
Exception.normalize/1 is deprecated in favor of Exception.normalize/2
lc and bc comprehensions are deprecated in favor of for (this is a soft deprecation, no warning will be emitted)
ListDict is deprecated in favor of Map (this is a soft deprecation, no warning will be emitted)
defrecord/2, defrecordp/3, is_record/1 and is_record/2 macros in Kernel are deprecated. Instead, use the new macros and API defined in the Record module (this is a soft deprecation, no warnings will be emitted)
Formatters are now required to be a GenEvent and ExUnit.run/2 returns a map with results