Enhancement
34 changes
Add :strict option that only parses known switches
Add next/2 useful for manual parsing of options
Add Macro.prewalk/2/3 and Macro.postwalk/2/3
GenEvent, GenServer, Supervisor, Agent and Task modules added
Make deprecations compiler warnings to avoid the same deprecation being printed multiple times
Fix Enum.join/2 and Enum.map_join/3 for empty binaries at the beginning of the collection
Ensure the formatter doesn't error when printing :EXITs
Rename ELIXIR_ERL_OPTS to ELIXIR_ERL_OPTIONS for consistency with ERL_COMPILER_OPTIONS
Parse - as a plain argument
-- is always removed from argument list on parse/2 and when it is the leading entry on parse_head/2
Properly escape regex (previously regex controls were double escaped)
Dict.Behaviour is deprecated in favor of Dict
Application.Behaviour, GenEvent.Behaviour, GenServer.Behaviour and Supervisor.Behaviour are deprecated in favor of Application, GenEvent, GenServer and Supervisor
defexception/3 is deprecated in favor of defexception/1
raise/3 is deprecated in favor of reraise/2
set_elem/3 is deprecated in favor of put_elem/3
atom_to_binary/1 and atom_to_list/1 are deprecated in favor of Atom.to_string/1 and Atom.to_char_list/1
bitstring_to_list/1 and list_to_bitstring/1 are deprecated in favor of the :erlang ones
binary_to_atom/1, binary_to_existing_atom/1, binary_to_float/1, binary_to_integer/1 and binary_to_integer/2 are deprecated in favor of conversion functions in String
float_to_binary/* and float_to_list/* are deprecated in favor of Float.to_string/* and Float.to_char_list/*
integer_to_binary/* and integer_to_list/* are deprecated in favor of Integer.to_string/* and Integer.to_char_list/*
iodata_to_binary/1 and iodata_length/1 are deprecated IO.iodata_to_binary/1 and IO.iodata_length/1
list_to_atom/1, list_to_existing_atom/1, list_to_float/1, list_to_integer/1, list_to_integer/2 and list_to_tuple/1 are deprecated in favor of conversion functions in List
tuple_to_list/1 is deprecated in favor of Tuple.to_list/1
List.from_char_data/1 and List.from_char_data!/1 deprecated in favor of String.to_char_list/1
String.from_char_data/1 and String.from_char_data!/1 deprecated in favor of List.to_string/1
is_exception/1, is_record/1 and is_record/2 are deprecated in favor of Exception.exception?1, Record.record?/1 and Record.record?/2
defrecord/3 is deprecated in favor of structs
:hygiene in quote is deprecated
Mix.project/0 is deprecated in favor of Mix.Project.config/0
Process.spawn/1, Process.spawn/3, Process.spawn_link/1, Process.spawn_link/3, Process.spawn_monitor/1, Process.spawn_monitor/3, Process.send/2 and Process.self/0 are deprecated in favor of the ones in Kernel
Exceptions now generate structs instead of records
Errors on parsing returns the switch and value as binaries (unparsed)
String.to_char_list/1 (previously deprecated) no longer returns a tuple but the char list only and raises in case of failure