Enhancement
22 changes
Improve performance of Enum.join/2 and Enum.map_join/3 by using iolists
Ensure compatibility with Erlang 17.1
Support @external_resource attribute to external dependencies to a module
Allow built Git dependencies to run on a system without Git by passing --no-deps-check
Add MIX_ARCHIVES env variable (it is recommended for Elixir build tools to swap this environment)
Set :proc_lib initial call on task to aid debugging
Delay typespec compilation to after expansion
Allow parse/1 now accepts %URI{} as argument and return the uri itself
Support paths inside archives in -pa and -pz options
Remove delay when printing data from the an application start callback
Ensure we show a consistent error when we cannot evaluate .iex.exs
Ensure derived protocols are defined with a file
Change precedence of & to not special case /
Ensure we can only use variables and \\ as arguments of bodyless clause
Using EEx.TransformerEngine and EEx.AssignsEngine are deprecated in favor of function composition with Macro.prewalk/1 (see EEx.SmartEngine for an example)
Kernel.xor/2 is deprecated
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)
size/1 is deprecated in favor of byte_size/1 and tuple_size/1 (this change was soft deprecated two releases ago)
Remove support for the --gen-debug option as its usage is not documented by OTP
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 )
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)
build_info/0 now returns a map