v0.14.0
Pre-release
Pre-release
Enhancements
- [ExUnit] Add
on_exit/1callbacks that are guaranteed to run once the test process exits and always in another process - [Kernel] Store documentation in the abstract code to avoid loading them when the module is loaded
- [Kernel] Add
get_in/2,put_in/3,update_in/3andget_and_update_in/3to handle nested data structure operations - [Kernel] Add
get_in/1,put_in/2,update_in/2andget_and_update_in/2to handle nested data structure operations via paths - [Mix] Add
Mix.Configto ease definition of configuration files - [Mix] Add
mix loadconfigtask that can be called multiple times to load external configs - [Mix] Support
--configoption onmix run - [Mix] Support
HTTP_PROXYandHTTPS_PROXYon Mix url commands - [Mix] Support
--namesoptions inmix helpwhich emit only names (useful for autocompletion) - [Protocol] Add
Protocol.consolidate/2,Protocol.consolidated?/1and amix compile.protocolstask for protocol consolidation - [Protocol] Add
Protocol.derive/3for runtime deriving of a struct - [String] Add
String.chunk/2 - [Struct] Add support for
@derivebeforedefstruct/2definitions
Bug fixes
- [File]
File.rmnow consistently deletes read-only across operating systems - [Kernel] Ensure Mix
_buildstructure works on Windows when copying projects - [Kernel] Ensure
1.0E10(with uppercase E) is also valid syntax - [Mix] Fix
mix dotask for Windows' powershell users - [Path] Fix
Path.absname("/")andPath.expand("/")to return the absolute path"/".
Soft deprecations (no warnings emitted)
- [Kernel]
size/1is deprecated, please usebyte_size/1ortuple_size/1instead - [ExUnit]
teardown/2andteardown_all/2are deprecated in favor ofon_exit/1callbacks
Deprecations
- [Access]
Access.access/2is deprecated in favor ofAccess.get/2 - [Dict]
Dict.Behaviouris deprecated in favor ofDict - [Kernel]
Application.Behaviour,GenEvent.Behaviour,GenServer.BehaviourandSupervisor.Behaviourare deprecated in favor ofApplication,GenEvent,GenServerandSupervisor - [Kernel]
defexception/3is deprecated in favor ofdefexception/1 - [Kernel]
raise/3is deprecated in favor ofreraise/2 - [Kernel]
set_elem/3is deprecated in favor ofput_elem/3 - [Kernel] Passing an atom
var!/1is deprecated, variables can be built dynamically withMacro.var/2 - [Mix] Exceptions that define a
:mix_errorfield to be compatible with Mix are no longer supported. Instead please provide a:mixfield and useMix.raise/1andMix.raise/2
Backwards incompatible changes
- [Access]
Kernel.access/2no longer exists and theAccessprotocol now requiresget/2(instead ofaccess/2) andget_and_update/3to be implemented - [Kernel] Retrieving docs as
module.__info__(:docs)is no longer supported, please useCode.get_docs/2instead - [Kernel]
Code.compiler_options/1no longer accepts custom options, only the ones specified by Elixir (use mix config instead) - [Mix]
mix newno longer generates a supevision tree by default, please pass--supinstead - [Task] Tasks are automatically linked to callers and a failure in the task will crash the caller directly