Enhancement
42 changes
Allow more complex mixed expressions when tokenizing
Allow Access.at/1 to handle negative index
Add support for --boot, --boot-var, --erl-config, --pipe-to, --rpc-eval, and --vm-args options
Add static_atom_encoder option to Code.string_to_quoted/2
Support :force_do_end_blocks on Code.format_string!/2 and Code.format_file!/2
Do not raise on deadlocks on Code.ensure_compiled/1
Add Config, Config.Reader, and Config.Provider modules for working with configuration
Add File.rename!/2
Add :inspect_fun and :custom_options to Inspect.Opts
Add ~U sigil for UTC date times
Optimize &super/arity and &super(&1)
Optimize generated code for with with a catch-all clause
Validate __struct__ key in map returned by __struct__/0,1
Add Module.get_attribute/3
Improve Protocol.UndefinedError messages to also include the type that was attempted to dispatch on
Optimize performance of dynamic dispatching for non-consolidated protocols
Include field names in generated type for records
Automatically recompile regexes
Add Registry.select/2
Add System.restart/0, System.pid/0 and System.no_halt/1
Add System.get_env/2, System.fetch_env/1, and System.fetch_env!/1
Support SOURCE_DATE_EPOCH for reproducible builds
Allow multiple :exclude on configuration/CLI
No longer wrap doctest errors in custom exceptions. They ended-up hiding more information than showing
Display the actual doctest code when doctest fails
Copy ticktime from remote node on IEx --remsh
Automatically add a host on node given to --remsh
Use a decentralized mode computation for Logger which allows overloads to be detected more quickly
Use persistent_term to store configuration whenever available for performance
Follow XDG base dir specification in Mix for temporary and configuration files
Add copy_file/3, copy_template/4, and overwite?/2
Add preferred_cli_target that works like preferred_cli_env
Allow mix archive.uninstall APP to uninstall any installed version of APP
No longer generate a config/ directory for mix new
Add support for releases
Add templates for release configuration
Allow running tests for a given umbrella app from the umbrella root with mix test apps/APP/test. Test failures also include the apps/APP prefix in the test location
Mix.Config has been deprecated in favor of the Config module that now ships as part of Elixir itself. Reading configuration files should now be done by the Config.Reader module
Deprecate --detached option, use --erl "-detached" instead
Deprecate Enumerable keys in Map.drop/2, Map.split/2, and Map.take/2
The :insert_replaced option in String.replace/4 has been deprecated. Instead you may pass a function as a replacement or use :binary.replace/4 if you need to support earlier Elixir versions
Deprecate Mix.Project.load_paths/1 in favor of Mix.Project.compile_path/1