Releases: elixir-lang/elixir
Releases · elixir-lang/elixir
v1.19.0-rc.0
1. Enhancements
Elixir
- [Access] Add
Access.values/0for traversing maps and keyword lists values - [Base] Add functions to verify if an encoding is valid, such as
valid16?,valid64?, and so forth - [Calendar] Support 2-arity options for
Calendar.strftime/3which receives the whole data type - [Code] Add
:migrate_call_parens_on_pipeformatter option - [Code] Add
:indentationoption toCode.string_to_quoted/2 - [Code.Fragment] Preserve more block content around cursor in
container_cursor_to_quoted - [Code.Fragment] Add
:block_keyword_or_binary_operatortoCode.Fragmentfor more precise suggestions after operators and closing terminators - [Code.Fragment] Add
Code.Fragment.lines/1 - [Enum] Provide more information on
Enum.OutOfBoundsError - [Inspect] Allow
optional: :allwhen deriving Inspect - [Inspect.Algebra] Add optimistic/pessimistic groups as a simplified implementation of
next_break_fits - [IO.ANSI] Add ANSI codes to turn off conceal and crossed_out
- [Kernel] Allow controlling which applications are used during inference
- [Kernel] Support
min/2andmax/2as guards - [Kernel.ParallelCompiler] Add
each_long_verification_thresholdwhich invokes a callback when type checking a module takes too long - [Kernel.ParallelCompiler] Include lines in
== Compilation error in file ... ==slogans - [Macro] Print debugging results from
Macro.dbg/3as they happen, instead of once at the end - [Module] Do not automatically load modules after their compilation, guaranteeing a more consistent compile time experience and drastically improving compilation times
- [Protocol] Type checking of protocols dispatch and implementations
- [Regex] Add
Regex.to_embed/2which returns an embeddable representation of regex in another regex - [String] Add
String.count/2to count occurrences of a pattern
ExUnit
- [ExUnit.CaptureLog] Parallelize log dispatch when multiple processes are capturing log
- [ExUnit.Case] Add
:test_groupto the test context - [ExUnit.Doctest] Support ellipsis in doctest exceptions to match the remaining of the exception
- [ExUnit.Doctest] Add
:inspect_optsoption for doctest
IEx
- [IEx] Support multi-line prompts (due to this feature,
:continuation_promptand:alive_continuation_promptare no longer supported as IEx configuration) - [IEx.Autocomplete] Functions annotated with
@doc group: "Name"metadata will appear within their own groups in autocompletion
Mix
- [mix] Add support for
MIX_PROFILE_FLAGSto configureMIX_PROFILE - [mix compile] Debug the compiler and type checker PID when
MIX_DEBUG=1and compilation/verification thresholds are met - [mix compile] Add
Mix.Tasks.Compiler.reenable/1 - [mix deps.compile] Support
MIX_OS_DEPS_COMPILE_PARTITION_COUNTfor compiling deps concurrently across multiple operating system processes - [mix help] Add
mix help Mod,mix help :mod,mix help Mod.funandmix help Mod.fun/arity - [mix test] Allow to distinguish the exit status between warnings as errors and test failures
- [mix xref graph] Add support for
--format json - [mix xref graph] Emit a warning if
--sourceis part of a cycle - [M ix.Task.Compiler] Add
Mix.Task.Compiler.run/2
2. Bug fixes
Elixir
- [DateTime] Do not truncate microseconds regardless of precision in
DateTime.diff/3 - [File] Properly handle permissions errors cascading from parent in
File.mkdir_p/1 - [Kernel]
not_a_map.keynow raisesBadMapErrorfor consistency with other map operations - [Regex] Fix
Regex.split/2returning too many results when the chunk being split on was empty (which can happen when using features such as/K) - [Stream] Ensure
Stream.transform/5respects suspend command when its inner stream halts - [URI] Several fixes to
URI.merge/2related to trailing slashes, trailing dots, and hostless base URIs
Mix
- [mix cmd] Preserve argument quoting in subcommands
- [mix format] Ensure the formatter does not go over the specified limit in certain corner cases
- [mix release] Fix
RELEASE_SYS_CONFIGfor Windows 11 - [mix test] Preserve files with no longer filter on
mix test - [mix xref graph] Provide more consistent output by considering strong connected components only when computing graphs
3. Soft deprecations (no warnings emitted)
Elixir
- [Inspect.Algebra]
next_break_fitsis deprecated in favor ofoptimistic/pessimisticgroups - [Node]
Node.start/2-3is deprecated in favor ofNode.start/2with a keyword list
Mix
- [mix compile]
--no-protocol-consolidationis deprecated in favor of--no-consolidate-protocolsfor consistency withmix.exsconfiguration - [mix compile.protocols] Protocol consolidation is now part of
compile.elixirand has no effect
4. Hard deprecations
Elixir
- [Code] The
on_undefined_variable: :warnis deprecated. Relying on undefined variables becoming function calls will not be supported in the future - [File] Passing a callback as third argument to
File.cp/3is deprecated, pass it as aon_conflict: callbackoption instead - [File] Passing a callback as third argument to
File.cp_r/3is deprecated, pass it as aon_conflict: callbackoption instead - [Kernel] The struct update syntax, such as
%URI{uri | path: "/foo/bar"}is deprecated in favor of pattern matching on the struct when the variable is defined and then using the map update syntax%{uri | path: "/foo/bar"}. Thanks to the type system, pattern matching on structs can find more errors, more reliably - [Kernel.ParallelCompiler] Passing
return_diagnostics: trueas an option is required oncompile,compile_to_pathandrequire
Logger
- [Logger] The
:backendsconfiguration is deprecated, either set the:default_handlerto false or start backends in your application start callback
Mix
- [mix] The
:default_task,:preferred_cli_env, and:preferred_cli_targetconfiguration insidedef projectin yourmix.exshas been deprecated in favor of:default_task,:preferred_envsand:preferred_targetsinside thedef clifunction - [mix do] Using commas as task separator in
mix do(such asmix do foo, bar) is deprecated, use+instead (as inmix do foo + bar)
v1.18.4
This release includes initial support for Erlang/OTP 28, for those who want to try it out. In such cases, you may use Elixir v1.18.4 precompiled for Erlang/OTP 27, as it is binary compatible with Erlang/OTP 28. Note, however, that Erlang/OTP 28 no longer allows regexes to be defined in the module body and interpolated into an attribute. If you do this:
@some_attribute ~r/foo/
def some_fun, do: @some_attributeYou must rewrite it to:
def some_fun, do: ~r/foo/1. Enhancements
IEx
- [IEx.Helpers] Add
IEx.Helpers.process_info/1which prints process information
Mix
- [mix compile] Support the
--no-listenersoption - [mix local] Retry HTTP requests with disabled middlebox comp mode depending on the failure reason
- [mix local.hex] Install Hex per OTP release
- [mix local.rebar] Install Hex per OTP release
- [mix run] Support the
--no-listenersoption
2. Bug fixes
Elixir
- [Kernel] Emit trace events for
@on_definitioncallbacks - [Kernel] Emit trace events for
@on_loadcallbacks - [Kernel] Emit trace events for
supercalls - [Kernel] Emit trace events for imported function calls
- [Kernel] Optimize map unions to avoid building long lists
- [Kernel] Do not crash when type checking nested bitstrings in patterns
- [Kernel] Do not crash when non-binary bitstring is given as struct default value
- [Kernel] Recompile regexes when escaped from module attributes for Erlang/OTP 28 compatibility
- [Kernel] Preserve backwards compatibility in
elixir_erl
Mix
- [mix deps.get] Ensure git checkout works when there are untracked files in the dependency
- [mix loadpaths] Do not run listeners when not checking the deps
v1.18.3
1. Enhancements
Elixir
- [JSON] Encode any JSON key to string
- [Kernel] Allow
<<_::3*8>>in typespecs
Mix
- [mix loadpaths] Support
--no-listenersoption
2. Bug fixes
Elixir
- [CLI] Fix
--no-colornot setting:ansi_enabledto false - [Protocol] Return correct implementation for an invalid struct pointing to
nil - [Stream] Do not raise when
Stream.cycle/1is explicitly halted
ExUnit
- [ExUnit.Diff] Fix regression when diffing nested improper lists
IEx
- [IEx.Autocomplete] Fix autocomplete crash when expanding struct with
__MODULE__ - [IEx.Helpers] Do not purge on
recompileif IEx is not running
v1.18.2
1. Enhancements
Elixir
- [CLI] Add
--color/--no-colorfor enabling and disabling of ANSI colors - [Code.Fragment] Provide more AST context when invoking
container_cursor_to_quotedwith trailing fragments - [Regex] Ensure compatibility with Erlang/OTP 28+ new Regex engine
Mix
- [mix] Print compilation lock waiting message to stderr
- [mix] Add an environment variable to optionally disable compilation locking
2. Bug fixes
Elixir
- [CLI] Temporarily remove PowerShell scripts for
elixir,elixirc, andmixon Windows, as they leave the shell broken after quitting Erlang
ExUnit
- [ExUnit] Fix crash when diffing bitstring specifiers
IEx
- [IEx.Autocomplete] Fix crashing whhen autocompleting structs with runtime values
Mix
- [mix] Track compilation locks per user to avoid permission errors
- [mix deps.update] Ensure Git dependencies can be upgraded by doing so against the origin
v1.18.1
1. Enhancements
- [Kernel] Do not emit type violation warnings when comparing or matching against literals
- [Kernel] Do not validate clauses of private overridable functions
2. Bug fixes
Elixir
- [Code.Fragment] Ensure
Code.Fragment.container_cursor_to_quoted/2with:trailing_fragmentparses expressions that were supported in previous versions - [Kernel] Do not crash when typing violation is detected on dynamic dispatch
- [Kernel] Properly annotate the source for warnings emitted by the compiler with the
@fileannotation - [Kernel] Properly annotate the source for warnings emitted by the type system with the
@fileannotation - [Kernel] Remove
:no_parensmetadata when using capture with arity on all cases - [Kernel] Ensure diagnostic traces are kept backwards compatible
ExUnit
- [ExUnit.Case] Ensure async groups do not run concurrenly while the test suite is still loading
- [ExUnit.Case] Ensure
--repeat-until-failurecan be combined with groups
Mix
- [mix compile.elixir] Store compilation results if compilation fails due to
--warnings-as-errors - [mix deps.loadpaths] Add build lock
- [mix escript.build] Ensure build succeeds when protocol consolidation is disabled
- [Mix.Shell] Ensure encoding is properly respected on Windows and Unix systems
v1.18.0
Official announcement: https://elixir-lang.org/blog/2024/12/19/elixir-v1-18-0-released/
1. Enhancements
Elixir
- [CLI] Add experimental PowerShell scripts for
elixir,elixirc, andmixon Windows. Those provide a safer entry point for running Elixir from other platforms - [Calendar] Add
Duration.to_string/1 - [Code] Support several migration options in
Code.format_string!/2 - [Code] Add parenthesis around
--and---inCode.format_string!/2to make precedence clearer - [Code] Include more metadata in
Code.string_to_quoted/2whentoken_metadata: trueto help compute ranges from the AST - [Code.Fragment] Have
:capture_argas its own entry inCode.Fragment.surround_context/2 - [Config] Add
Config.read_config/1 - [Enumerable] Add
Enum.product_by/2andEnum.sum_by/2 - [Exception] Add
MissingApplicationsErrorexception to denote missing applications - [JSON] Add a new
JSONmodule with encoding and decoding functionality - [JSON] Implement
JSON.Encoderfor all Calendar types - [Kernel] Update source code parsing to match UTS #55 latest recommendations. In particular, mixed script is allowed in identifiers as long as they are separate by underscores (
_), such ashttp_сервер. Previously allowed highly restrictive identifiers, which mixed Latin and other scripts, such as the japanese word for t-shirt,Tシャツ, now require the underscore as well - [Kernel] Warn on bidirectional confusability in identifiers
- [Kernel] Verify the type of the binary generators
- [Kernel] Track the type of tuples in patterns and inside
elem/2 - [Kernel] Perform validation of root AST nodes in
unquoteandunquote_splicingto catch bugs earlier - [Kernel] Add source, behaviour, and record information to Docs chunk metadata
- [Kernel] Support deterministic builds in tandem with Erlang by setting
ERL_COMPILER_OPTIONS=deterministic. Keep in mind deterministic builds strip source and other compile time information, which may be relevant for programs - [Kernel] Allow aliases and imports to be enabled conditionally in module body
- [List] Add
List.ends_with?/2 - [Macro] Improve
dbghandling ofif/2,with/1and of code blocks - [Macro] Add
Macro.struct_info!/2to return struct information mirroringmod.__info__(:struct) - [Registry] Add
Registry.lock/3for local locking - [PartitionSupervisor] Add
PartitionSupervisor.resize!/2to resize the number of partitions in a supervisor (up to the limit it was started with) - [Process] Handle arbitrarily high integer values in
Process.sleep/1 - [Protocol] Add
@undefined_impl_descriptionto customize error message when an implementation is undefined - [Protocol] Add
__deriving__/1as optional macro callback toProtocol, no longer requiring empty implementations - [String] Inspect special whitespace and zero-width characters using their Unicode representation
- [String] Update Unicode to 16.0
ExUnit
- [ExUnit] Support parameterized tests on
ExUnit.Case - [ExUnit] Support test groups: tests in the same group never run concurrently
- [ExUnit.Case] Add
test_pidas a tag
IEx
- [IEx] Add
IEx.configure(auto_reload: true)to automatically pick up modules recompiled from other operating system processes - [IEx] Add
:dot_iexsupport toIEx.configure/1 - [IEx] Add report for normal/shutdown exits in IEx
Mix
- [mix compile] Ensure only a single operating system process can compile at a given time
- [mix deps.get] Ensure only a single operating system process can fetch deps at a given time
- [mix format] Add
mix format --migrateto migrate from deprecated functionality - [mix format] Add new options and metadata to improve formatting applying by editors and other environments
- [mix test] Taint failure manifest if requiring or compiling tests fail
- [Mix.Project] Add a
:listenersconfiguration to listen to compilation events from the current and other operating system processes - [Mix.Task.Compiler] Add API for fetching all persisted compiler diagnostics
- [Mix.Task.Compiler] Add API for fetching all compiler tasks
2. Bug fixes
Elixir
- [Code] Fix delimiter metadata for single quoted atoms and remote calls in
Code.string_to_quoted/2 - [Code.Formatter] Fix formatter adding extra escapes to quoted remote calls
- [Code.Fragment] Properly handle keyword keys as their own entry
- [Inspect.Algebra] Ensure
next_break_fitsrespectsline_length - [Kernel] Validate AST on
unquoteandunquote_splicingto provide better error reports instead of failing too late inside the compiler - [Kernel] Avoid crashes when emitting diagnostics on code using \t for indentation
- [Module] Include module attribute line and name when tracing its aliases
- [Stream] Do not halt streams twice in
Stream.transform/5 - [URI] Fix a bug when a schemaless URI is given to
URI.merge/2
ExUnit
- [ExUnit.Assertions] Raise if guards are used in
assert/1with= - [ExUnit.Assertions] Format inserted/deleted maps in list assertions
IEx
- [IEx.Helpers]
IEx.Helpers.recompile/0will reload modules changed by other operating system processes
Mix
- [mix compile] Ensure warnings from external resources are emitted with
--all-warningswhen files do not change - [mix deps.compile] Fix escaping issues when invoking
rebar3in some cases - [mix escript] Fix escript layout and support storing
privdirectories - [mix release] Make
.appfiles deterministic in releases - [Mix.Shell] Fix
Mix.Shellon Windows when outputting non UTF-8 characters
3. Soft deprecations (no warnings emitted)
Elixir
- [Inspect.Algebra]
color/3is deprecated in favor ofcolor_doc/3 - [Inspect.Algebra]
fold_doc/2is deprecated in favor offold/2 - [Kernel] Deprecate
unlessin favor ofif. Usemix format --migrateto automate the migration - [Macro]
Macro.struct!/2is deprecated in favor ofMacro.struct_info!/2 - [Protocol] Defining
__deriving__/3inside theAnyimplementation is deprecated, derive it inside the protocol definition itself
4. Hard deprecations
EEx
- [EEx]
<%#is deprecated in favor of<%!--or<% # - [EEx]
c:EEx.handle_text/2is deprecated in favor ofc:EEx.handle_text/3
Elixir
- [Code] Setting
:warnings_as_errorsis deprecated viaCode.put_compiler_option/2. This must not affect developers, as the:warnings_as_errorsoption is managed by Mix tasks, and not directly used via theCodemodule - [Enumerable] Deprecate returning a two-arity function in
Enumerable.slice/1 - [List]
List.zip/1is deprecated in favor ofEnum.zip/1 - [Module] Deprecate
Module.eval_quoted/3in favor ofCode.eval_quoted/3 - [Range] Deprecate inferring negative ranges on
Range.new/2 - [Tuple]
Tuple.append/2is deprecated, useTuple.insert_at/3instead
Mix
- [mix cmd] Deprecate
mix cmd --app APPin favor ofmix do --app APP - [mix compile]
:warnings_as_errorsconfiguration in:elixirc_optionsis deprecated. Instead pass the--warnings-as-errorsflag tomix compile. Alternatively, you might alias the task:aliases: [compile: "compile --warnings-as-errors"] - [mix test]
:warnings_as_errorsconfiguration in:test_elixirc_optionsis deprecated. Instead pass the--warnings-as-errorsflag tomix test. Alternatively, you might alias the task:aliases: [test: "test --warnings-as-errors"] - [Mix.Tasks.Compile] Deprecate
compilers/0in favor ofMix.Task.Compiler.compilers/0
v1.17
The CHANGELOG for v1.17 releases can be found in the v1.17 branch.
v1.18.0-rc.0
1. Enhancements
Elixir
- [CLI] Add experimental PowerShell scripts for
elixir,elixirc, andmixon Windows. Those provide a safer entry point for running Elixir from other platforms - [Calendar] Add
Duration.to_string/1 - [Code] Support several migration options in
Code.format_string!/2 - [Code] Add parenthesis around
--and---inCode.format_string!/2to make precedence clearer - [Code] Include more metadata in
Code.string_to_quoted/2whentoken_metadata: trueto help compute ranges from the AST - [Code.Fragment] Have
:capture_argas its own entry inCode.Fragment.surround_context/2 - [Config] Add
Config.read_config/1 - [Enumerable] Add
Enum.product_by/2andEnum.sum_by/2 - [Exception] Add
MissingApplicationsErrorexception to denote missing applications - [Kernel] Update source code parsing to match UTS #55 latest recommendations. In particular, mixed script is allowed in identifiers as long as they are separate by underscores (
_), such ashttp_сервер. Previously allowed highly restrictive identifiers, which mixed Latin and other scripts, such as the japanese word for t-shirt,Tシャツ, now require the underscore as well - [Kernel] Warn on bidirectional confusability in identifiers
- [Kernel] Verify the type of the binary generators
- [Kernel] Track the type of tuples in patterns and inside
elem/2 - [Kernel] Perform validation of root AST nodes in
unquoteandunquote_splicingto catch bugs earlier - [Kernel] Add source, behaviour, and record information to Docs chunk metadata
- [Kernel] Support deterministic builds in tandem with Erlang by setting
ERL_COMPILER_OPTIONS=deterministic. Keep in mind deterministic builds strip source and other compile time information, which may be relevant for programs - [Kernel] Allow aliases and imports to be enabled conditionally in module body
- [List] Add
List.ends_with?/2 - [Macro] Improve
dbghandling ofif/2,with/1and of code blocks - [Macro] Add
Macro.struct_info!/2to return struct information mirroringmod.__info__(:struct) - [Registry] Add
Registry.lock/3for local locking - [PartitionSupervisor] Add
PartitionSupervisor.resize!/2to resize the number of partitions in a supervisor (up to the limit it was started with) - [Process] Handle arbitrarily high integer values in
Process.sleep/1 - [Protocol] Add
@undefined_impl_descriptionto customize error message when an implementation is undefined - [Protocol] Add
__deriving__/1as optional macro callback toProtocol, no longer requiring empty implementations - [String] Inspect special whitespace and zero-width characters using their Unicode representation
- [String] Update Unicode to 16.0
ExUnit
- [ExUnit] Support parameterized tests on
ExUnit.Case - [ExUnit] Support test groups: tests in the same group never run concurrently
- [ExUnit.Case] Add
test_pidas a tag
IEx
- [IEx] Add
:dot_iexsupport toIEx.configure/1 - [IEx] Add report for normal/shutdown exits in IEx
Mix
- [mix compile] Ensure only a single operating system process can compile at a given time
- [mix deps.get] Ensure only a single operating system process can fetch deps at a given time
- [mix format] Add
mix format --migrateto migrate from deprecated functionality - [mix format] Add new options and metadata to improve formatting applying by editors and other environments
- [mix test] Taint failure manifest if requiring or compiling tests fail
- [Mix.Project] Add a
:listenersconfiguration to listen to compilation events from the current and other operating system processes - [Mix.Task.Compiler] Add API for fetching all persisted compiler diagnostics
- [Mix.Task.Compiler] Add API for fetching all compiler tasks
2. Bug fixes
Elixir
- [Code] Fix delimiter metadata for single quoted atoms and remote calls in
Code.string_to_quoted/2 - [Code.Formatter] Fix formatter adding extra escapes to quoted remote calls
- [Code.Fragment] Properly handle keyword keys as their own entry
- [Inspect.Algebra] Ensure
next_break_fitsrespectsline_length - [Kernel] Validate AST on
unquoteandunquote_splicingto provide better error reports instead of failing too late inside the compiler - [Module] Include module attribute line and name when tracing its aliases
- [Stream] Do not halt streams twice in
Stream.transform/5 - [URI] Fix a bug when a schemaless URI is given to
URI.merge/2
ExUnit
- [ExUnit.Assertions] Raise if guards are used in
assert/1with= - [ExUnit.Assertions] Format inserted/deleted maps in list assertions
IEx
- [IEx.Helpers]
IEx.Helpers.recompile/0will reload modules changed by other operating system processes
Mix
- [mix compile] Ensure warnings from external resources are emitted with
--all-warningswhen files do not change - [mix deps.compile] Fix escaping issues when invoking
rebar3in some cases - [mix escript] Fix escript layout and support storing
privdirectories - [mix release] Make
.appfiles deterministic in releases - [Mix.Shell] Fix
Mix.Shellon Windows when outputting non UTF-8 characters
3. Soft deprecations (no warnings emitted)
Elixir
- [Inspect.Algebra]
color/3is deprecated in favor ofcolor_doc/3 - [Inspect.Algebra]
fold_doc/2is deprecated in favor offold/2 - [Kernel] Deprecate
unlessin favor ofif. Usemix format --migrateto automate the migration - [Macro]
Macro.struct!/2is deprecated in favor ofMacro.struct_info!/2 - [Protocol] Defining
__deriving__/3inside theAnyimplementation is deprecated, derive it inside the protocol definition itself
4. Hard deprecations
EEx
- [EEx]
<%#is deprecated in favor of<%!--or<% # - [EEx]
c:EEx.handle_text/2is deprecated in favor ofc:EEx.handle_text/3
Elixir
- [Code] Setting
:warnings_as_errorsis deprecated viaCode.put_compiler_option/2. This must not affect developers, as the:warnings_as_errorsoption is managed by Mix tasks, and not directly used via theCodemodule - [Enumerable] Deprecate returning a two-arity function in
Enumerable.slice/1 - [List]
List.zip/1is deprecated in favor ofEnum.zip/1 - [Module] Deprecate
Module.eval_quoted/3in favor ofCode.eval_quoted/3 - [Range] Deprecate inferring negative ranges on
Range.new/2 - [Tuple]
Tuple.append/2is deprecated, useTuple.insert_at/3instead
Mix
- [mix cmd] Deprecate
mix cmd --app APPin favor ofmix do --app APP - [Mix.Tasks.Compile] Deprecate
compilers/0in favor ofMix.Task.Compiler.compilers/0
v1.17.3
1. Bug fixes
Elixir
- [Duration] Fix parsing of fractional durations with non-positive seconds
- [Kernel] Do not attempt to group module warnings when they have a large context
IEx
- [IEx.Helpers] Properly reconsolidate protocols on
recompile
Mix
- [mix compile.elixir] Do not verify modules twice
- [mix xref] Respect the
--labeloption on stats and cycles
v1.17.2
1. Bug fixes
Logger
- [Logger.Translator] Fix logger crash when
:gen_statem'sformat_status/2returns non-tuple
Mix
- [mix deps.get] Fix regression when fetching a git repository with a
:ref - [mix release] Validate
RELEASE_MODEand set ERRORLEVEL on.batscripts - [mix release] Fix invalid example in code comment inside the generated vm.args.eex
v1.17.1
1. Enhancements
Mix
- [mix compile.elixir] Do not run fixpoint computation on runtime dependencies. This should considerably improve compilation times for large projects when changing only one or two files
2. Bug fixes
EEx
- [EEx] Do not warn for assignment with blocks in EEx
Elixir
- [Kernel] Fix bug when using pinned variables inside
with'selsepatterns - [Kernel] Fix Dialyzer error when with else clause is calling a
no_returnfunction
ExUnit
- [ExUnit] Do not alternative sync/async suites on
--repeat-until-failure