Elixir release

1.0.5

Change breakdown

Organization at a glance

Detailed changelog

Enhancement

17 changes

Tool: Elixir Module: Elixir

Support Erlang 18.0

Tool: Elixir Module: IEx

Rely only on loaded applications for autocompletion on IEx

Tool: Elixir Module: Record

Expand attributes and macros in record extractor

Tool: Elixir Module: String

Optimize String.rstrip/1

Tool: Elixir Module: String

Optimize String.downcase/1

Tool: Elixir Module: String

Optimize String.upcase/1

Tool: Elixir Module: EEx

Ensure blocks do not clobber EEx buffers

Tool: Elixir Module: Enum

Ensure Enum.take/2 does not consume one extra item when halting on the last emittable item

Tool: Elixir Module: ExUnit

Fix StringIO processes leakage in the ExUnit.CaptureIO when there are errors inside the capture_io block

Tool: Elixir Module: Float

Avoid rounding errors on Float.parse/1

Tool: Elixir Module: GenEvent

Fix GenEvent detection of modules that aren't loaded

Tool: Elixir Module: IO

Read 4K blocks instead of lines in IO.binread/2. This fixes a bug where CRLF were being ignored and is also going to improve performance

Tool: Elixir Module: Logger

Handle :undefined arity in Logger.Translator (we get :undefined when a temporary worker of a simple_one_for_one supervisor crashes)

Tool: Elixir Module: Mix

Ensure config is escaped before being injected into escripts. This fixes a bug where escripts failed to build when containing values like maps in config files

Tool: Elixir Module: Mix

Ensure we properly underscore acronyms followed by paths, for example, HTTP.Foo

Tool: Elixir Module: Stream

Ensure Stream.flat_map/2 does not consume more items than necessary when piped to another Stream.flat_map/2 that halts in the inner stream

Tool: Elixir Module: Version

Fix to_string for versions with numeric pre releases