Elixir release

0.14.2

Change breakdown

Organization at a glance

Detailed changelog

Enhancement

22 changes

Tool: Elixir Module: Enum

Improve performance of Enum.join/2 and Enum.map_join/3 by using iolists

Tool: Elixir Module: Kernel

Ensure compatibility with Erlang 17.1

Tool: Elixir Module: Kernel

Support @external_resource attribute to external dependencies to a module

Tool: Elixir Module: Mix

Allow built Git dependencies to run on a system without Git by passing --no-deps-check

Tool: Elixir Module: Mix

Add MIX_ARCHIVES env variable (it is recommended for Elixir build tools to swap this environment)

Tool: Elixir Module: Task

Set :proc_lib initial call on task to aid debugging

Tool: Elixir Module: Typespec

Delay typespec compilation to after expansion

Tool: Elixir Module: URI

Allow parse/1 now accepts %URI{} as argument and return the uri itself

Tool: Elixir Module: CLI

Support paths inside archives in -pa and -pz options

Tool: Elixir Module: IEx

Remove delay when printing data from the an application start callback

Tool: Elixir Module: IEx

Ensure we show a consistent error when we cannot evaluate .iex.exs

Tool: Elixir Module: Kernel

Ensure derived protocols are defined with a file

Tool: Elixir Module: Kernel

Change precedence of & to not special case /

Tool: Elixir Module: Kernel

Ensure we can only use variables and \\ as arguments of bodyless clause

Tool: Elixir Module: EEx

Using EEx.TransformerEngine and EEx.AssignsEngine are deprecated in favor of function composition with Macro.prewalk/1 (see EEx.SmartEngine for an example)

Tool: Elixir Module: Kernel

Kernel.xor/2 is deprecated

Tool: Elixir Module: Mix

Mix.Generator.from_file/1 is deprecated in favor of passing from_file: file option to embed_text/2 and embed_template/2 (note though that from_file/1 expects a path relative to the current file while the from_file: file expects one relative to the current working directory)

Tool: Elixir Module: Kernel

size/1 is deprecated in favor of byte_size/1 and tuple_size/1 (this change was soft deprecated two releases ago)

Tool: Elixir Module: CLI

Remove support for the --gen-debug option as its usage is not documented by OTP

Tool: Elixir Module: Kernel

Sigils no longer balance start and end tokens, e.g. the sigil ~s(f(o)o) is no longer valid as it finishes in the first closing )

Tool: Elixir Module: Kernel

Variables set in cond clause heads are no longer available outside of that particular cond clause (this is the behaviour also found in case, receive and friends)

Tool: Elixir Module: System

build_info/0 now returns a map