v0.13.2
Pre-release
      Pre-release
    
        Enhancements
- [Application] Add an Application module with common functions to work with OTP applications
- [Exception] Add Exception.message/1,Exception.format_banner/1,Exception.format_exit/1andException.format/1
- [File] Add File.ln_s/1
- [Mix] mix deps.cleannow works accross environments
- [Mix] Support line numbers in mix test, e.g. test/some/file_test.exs:12
- [Mix] Use @fileattributes to detect dependencies in between.exand external files. This means changing an.eexfile will no longer recompile the whole project only the files that depend directly on it
- [Mix] Support application configurations in config/config.exswhich can be customized by specifying your own:config_path
- [Mix] Support user-wide configuration with ~/.mix/config.exs
- [Mix] mix helpnow uses ANSI formatting to print guides
- [Regex] Support functions in Regex.replace/4
- [String] Support :partsinString.split/3
Bug fixes
- [Code] Ensure we don't lose the caller stacktrace on code evaluation
- [IEx] Exit signals now exits the IEx evaluator and a new one is spawned on its place
- [IEx] Ensure we don't prune too much stacktrace when reporting failures
- [IEx] Fix an issue where iex.baton Windows was not passing the proper parameters forward
- [Kernel] Ensure modules defined on root respect defined aliases
- [Kernel] Do not wrap single lists in :__block__
- [Kernel] Ensure emitted beam code works nicely with dialyzer
- [Kernel] Do not allow a module named Elixirto be defined
- [Kernel] Create remote funs even if mod is a variable in capture &mod.fun/arity
- [Kernel] Improve compiler message when duplicated modules are detected
- [Mix] Generate .gitignorefor--umbrellaprojects
- [Mix] Verify if a git dependency in deps has a proper git checkout and clean it automatically when it doesn't
- [Mix] Ensure mix testworks withIEx.pry/0
- [System] Convert remaining functions in System to rely on char data
Soft deprecations (no warnings emitted)
- [Application] use Application.Behaviouris deprecated in favor ofuse Application
- [Exception] exception.messageis deprecated in favorException.message/1for retrieving exception messages
- [Kernel] is_exception/1,is_record/1andis_record/2are deprecated in favor ofException.exception?1,Record.record?/1andRecord.record?/2
- [Mix] Mix.project/0is deprecated in favor ofMix.Project.config/0
- [Process] Process.spawn/1,Process.spawn/3,Process.spawn_link/1,Process.spawn_link/3,Process.spawn_monitor/1,Process.spawn_monitor/3,Process.send/2andProcess.self/0are deprecated in favor of the ones inKernel
Deprecations
- [IEx] IEx.Options is deprecated in favor of IEx.configure/1andIEx.configuration/0
- [Kernel] lcandbccomprehensions are deprecated in favor offor
- [Macro] Macro.safe_terms/1is deprecated
- [Process] Process.delete/0is deprecated
- [Regex] Deprecate :globaloption inRegex.split/3in favor ofparts: :infinity
- [String] Deprecate :globaloption inString.split/3in favor ofparts: :infinity
Backwards incompatible changes
- [ExUnit] ExUnit.TestandExUnit.TestCasehas been converted to structs
- [ExUnit] The test and callback context has been converted to maps
- [Kernel] File.Stat,HashDict,HashSet,Inspect.Opts,Macro.Env,Range,RegexandVersion.Requirementhave been converted to structs. This meansis_record/2checks will no longer work, instead, you can pattern match on them using%Range{}and similar
- [URI] The URI.Inforecord has now become theURIstruct
- [Version] The Version.Schemarecord has now become theVersionstruct