Elixir release

0.10.1

Change breakdown

Organization at a glance

Detailed changelog

Enhancement

40 changes

Tool: Elixir Module: Behaviour

Add support for defmacrocallback/1

Tool: Elixir Module: Enum

Add Enum.shuffle/1

Tool: Elixir Module: ExUnit

The :trace option now also reports run time for each test

Tool: Elixir Module: ExUnit

Add support for :color to enable/disable ANSI coloring

Tool: Elixir Module: IEx

Add the clear helper to clear the screen.

Tool: Elixir Module: Kernel

Add the capture operator &

Tool: Elixir Module: Kernel

Add support for GenFSM.Behaviour

Tool: Elixir Module: Kernel

Functions now points to the module and function they were defined when inspected

Tool: Elixir Module: Kernel

A documentation attached to a function that is never defined now prints warnings

Tool: Elixir Module: List

Add List.keysort/2

Tool: Elixir Module: Mix

:test_helper project configuration did not affect mix test and was therefore removed. A test/test_helper.exs file is still necessary albeit it doesn't need to be automatically required in each test file

Tool: Elixir Module: Mix

Add manifests for yecc, leex and Erlang compilers, making it easier to detect dependencies in between compilers and providing a more useful clean behaviour

Tool: Elixir Module: Mix

mix help now outputs information about the default mix task

Tool: Elixir Module: Mix

Add --no-deps-check option to mix run, mix compile and friends to not check dependency status

Tool: Elixir Module: Mix

Add support for MIX_GIT_FORCE_HTTPS system environment that forces HTTPS for known providers, useful when the regular git port is blocked. This configuration does not affect the mix.lock results

Tool: Elixir Module: Mix

Allow coverage tool to be pluggable via the :test_coverage configuration

Tool: Elixir Module: Mix

Add mix cmd as a convenience to run a command recursively in child apps in an umbrella application

Tool: Elixir Module: Mix

Support umbrella: true in dependencies as a convenience for setting up umbrella path deps

Tool: Elixir Module: Mix

mix run now behaves closer to the elixir command and properly mangles the ARGV

Tool: Elixir Module: String

Add Regex.scan/3 now supports capturing groups

Tool: Elixir Module: String

Add String.reverse/1

Tool: Elixir Module: Behaviour

Ensure callbacks are stored in the definition order

Tool: Elixir Module: CLI

Speed up boot time on Elixir .bat files

Tool: Elixir Module: IEx

Reduce cases where IEx parser can get stuck

Tool: Elixir Module: Kernel

Improve error messages when the use of an operator has no effect

Tool: Elixir Module: Kernel

Fix a bug where warnings were not being generated when imported macros conflicted with local functions or macros

Tool: Elixir Module: Kernel

Document that on_definition can only be a function as it is evaluated inside the function context

Tool: Elixir Module: Kernel

Ensure %w sigils with no interpolation are fully expanded at compile time

Tool: Elixir Module: Mix

mix deps.update, mix deps.clean and mix deps.unlock no longer change all dependencies unless --all is given

Tool: Elixir Module: Mix

Always run mix loadpaths on mix app.start, even if --no-compile is given

Tool: Elixir Module: OptionParser

Do not add boolean flags to the end result if they were not given

Tool: Elixir Module: OptionParser

Do not parse non-boolean flags as booleans when true or false are given

Tool: Elixir Module: OptionParser

Ensure :keep and :integer|:float can be given together as options

Tool: Elixir Module: OptionParser

Ensure --no-flag sets :flag to false when :flag is a registered boolean switch

Tool: Elixir Module: Kernel

function(Mod.fun/arity) and function(fun/arity) are deprecated in favor of &Mod.fun/arity and &fun/arity

Tool: Elixir Module: Kernel

function/3 is deprecated in favor of Module.function/3

Tool: Elixir Module: Kernel

Kernel.ParallelCompiler now receives a set of callbacks instead of a single one

Tool: Elixir Module: Mix

:test_coverage option now expect keywords arguments and the --cover flag is now treated as a boolean

Tool: Elixir Module: Regex

Regex.scan/3 now always returns a list of lists, normalizing the result, instead of list with mixed lists and binaries

Tool: Elixir Module: System

System.halt/2 was removed since the current Erlang implementation of such function is bugged