2018-05-14 17:57:13 by Filip Hajny | Files touched by this commit (2) |
Log message:
lang/elixir: Update to 1.6.5.
- [Code] Preserve the user's choice in the formatter on parens call
with next break fits
- [Code] Preserve the user's choice in the formatter on calls without
parens when we have one argument per line
- [Code] Fix formatting when there is a tilde in the first element of
a bitstring
- [Kernel] Support specsdiff flag on __info__ spec clauses
- [Kernel] Do not exclude hygienic vars in defguard
- [Kernel.SpecialForms] Mark for comprehensions as generated to avoid
dialyzer warnings
- [Macro] Make sure Macro.to_string/2 emits valid quoted expressions
- [Task] Support :infinity timeout on Task.yield_many/2
- [Task.Supervisor] Do not crash spawning supervised tasks when the
parent process is dead
- [URI] Fix parsing of URIs with trailing ?
|
2018-03-23 12:54:58 by Filip Hajny | Files touched by this commit (2) |
Log message:
lang/elixir: Update to 1.6.4.
- [Code.Formatter] Do not double escape quoted keyword list identifiers
- [Kernel] Properly support into: binary in Erlang/OTP 20.3
|
2018-03-13 10:18:19 by Filip Hajny | Files touched by this commit (2) |
Log message:
lang/elixir: Update to 1.6.3.
Elixir
- [Code.Formatter] Support comments in the middle of pipelines,
when and | expressions
- [Code.Formatter] Consider commas when breaking groups
- [Code.Formatter] Ensure proper precedence between & and operators
- [Code.Formatter] Consider .formatter.exs when formatting stdin
Logger
- [Logger.Translator] Ensure logger doesn't crash when reporting
named DynamicSupervisor
|
2018-02-28 16:14:02 by Filip Hajny | Files touched by this commit (2) |
Log message:
lang/elixit: Update to 1.6.2.
1. Enhancements
Mix
- [mix compile.erlang] Teach Mix erlang compiler alternative spelling
for -behavior declaration
- [mix format] Support the :subdirectories configuration that points
to other directories with their own .formatter.exs file. This is
useful in umbrella applications. mix new --umbrella has also been
changed to use this new configuration by default
- [mix format] Include the current environment for missing dependency
errors
2. Bug fixes
Elixir
- [Code.Formatter] Ensure -> does not exceed line length
- [DynamicSupervisor] Properly tag error reports generated by dynamic
supervisors so they can be properly translated by Logger
- [DynamicSupervisor] Consider extra arguments during child restart
- [Kernel] Ensure arguments given to a guard defined with defguard are
evaluated in the correct order
- [Module] Do not remove docs for previous function declaration when
@impl true is used
- [Supervisor] Ensure use Supervisor properly adds the @behaviour
Supervisor annotation
Mix
- [Mix.Shell] Bring back Mix.Shell.cmd/2 - this arity was defined via
a default argument that was accidentally removed
|
2018-01-30 17:27:11 by Filip Hajny | Files touched by this commit (3) |
Log message:
Update lang/elixir to 1.6.1.
1. Enhancements
Elixir
- [DynamicSupervisor] Implement child_spec/1 for DynamicSupervisor
- [Kernel] Raise better error messages on invalid map syntax
2. Bug fixes
Elixir
- [Code.Formatter] Only rearrange not in operator if explicitly
opted-in
- [Code.Formatter] Ensure do blocks do not exceed line length on calls
with a single argument
- [Collectable] Support bitstrings in Collectable and
for-comprehensions (regression in v1.6.0)
- [GenServer] Do not override user own @opts attribute
- [Enum] Reintroduce zipping of any enumerable of enumerables in
Enum.zip/1 (regression in v1.6.0)
- [Macro] Reorder kw blocks in Macro.to_string/1 to avoid warnings
- [Protocol] Fix protocol consolidation when some chunks may be
missing
- [Stream] Reintroduce zipping of any enumerable of enumerables in
Stream.zip/1 (regression in v1.6.0)
- [Supervisor] Do not override user own @opts attribute
- [Supervisor] Add @spec to second clause of start_link/2
ExUnit
- [ExUnit.Case] Reintroduce :case in ExUnit setup/setup_all/test
context
|
2018-01-22 15:59:53 by Filip Hajny | Files touched by this commit (3) | |
Log message:
Update lang/elixir to 1.6.0.
1. Enhancements
EEx
- [EEx] Allow markers `/` and `|` to be used in a custom EEx engine
Elixir
- [Calendar] Add truncate to `Time`, `DateTime` and `NaiveDateTime` to
facilitate microsecond precision pruning
- [Code] Add `format_string!/2` and `format_file!/2` for automatic
code formatting
- [Code] Support column annotations in quoted expressions with
`columns: true` in `Code.string_to_quoted/2`
- [DynamicSupervisor] Add `DynamicSupervisor` designed to manage
children that are added and removed dynamically
- [Exception] Make `Exception.blame/3` extensible by adding an
optional `blame/2` callback to exceptions
- [Exception] Improve the printing of guards on blamed exceptions
- [Enumerable] Add `Enumerable.slice/1` and optimize many `Enum`
operations with the new protocol. This allows data-structures with
index-based random access to provide a non-linear implementation
- [Inspect] Show UTF-8 BOM on inspected strings
- [Inspect.Algebra] Add `:strict` and `:flex` breaks - this gives more
control over the document fitting
- [Inspect.Algebra] Allow a group to inherit the parent group break
- [Inspect.Algebra] Add `force_unfit/1` and `next_break_fits/2` which
give more control over document fitting
- [Inspect.Algebra] Add `collapse_lines/1` for collapsing multiple
lines to a maximum value
- [Inspect.Algebra] Allow `nest/2` to be `:reset` or be set to the
current `:cursor` position
- [Kernel] Prefix variables with V when emitting Erlang code. This
improves the integration with tools such as Erlang code formatters
and the GUI debugger
- [Kernel] Warn on the use of `length(x) == 0` in guards
- [Kernel] Warn if `catch` comes before `rescue` in try
- [Kernel] Warn if heredoc is outdented compared to its closing quotes
- [Kernel] Add `defguard/1` and `defguardp/1` to make it easier to
build guard-safe macros
- [Kernel.ParallelCompiler] Add `compile/2`, `compile_to_path/3` and
`require/2` which provide detailed information about warnings and
errors
- [Kernel.SpecialForms] Support the `uniq: true` flag in `for`
comprehensions
- [Module] Introduce `@deprecated` and `@since` attributes
- [Module] Emit conflicting behaviour warnings if the same behaviour
is given more than once
- [List] Rearrange equals and inserts for shorter diff scripts in
`List.myers_difference/2`
- [Record] Allow `:macros` and `:includes` to be given to
`Record.extract/2`
- [Stream] Add `Stream.intersperse/2`
- [String] Update to Unicode 10
- [String] Allow passing empty string `match` to `String.replace/4`
- [String] Support context and language sensitive operations in
`String.upcase/2` and `String.downcase/2`. Currently only the
`:greek` context is supported
- [String] Support `:ascii` conversion in `String.upcase/2` and
`String.downcase/2`
- [Time] Add `Time.add/3`
ExUnit
- [ExUnit.Assertions] Perform inclusive checks in `assert_in_delta`
- [ExUnit.Callbacks] Add `ExUnit.Callbacks.start_supervised!/2`
- [ExUnit.Case] Generate a random seed per test based on the test
suite seed
IEx
- [IEx.Autocomplete] Provide contextual autocompletion: `t Enum.` will
autocomplete types, `b Enum` will autocomplete callbacks
- [IEx.CLI] Provide hints for developers when a bad host name is given
to `--remsh`
- [IEx.Helpers] Automatically include specs when showing documentation
for functions/macros
- [IEx.Helpers] Improve formatting of behaviours and typespecs by
using the formatter
- [IEx.Helpers] Allow pattern matching and guard expressions when on
`IEx.break!`
Logger
- [Logger] Add `:discard_threshold` to Logger to help with message
queue overflow
Mix
- [mix app.start] Add `--preload-modules` to `mix app.start`
- [mix archive.build] Allow `mix archive.build` to bundle dot files
via an option
- [mix compile] Define a behavior for Mix compiler tasks and return
diagnostics from compiler tasks
- [mix compile] Track struct dependencies between files and recompile
them only if the struct changes
- [mix deps] Support `:system_env` option when specifying dependencies
- [mix format] Add a `mix format` task that formats the given files
(or the files specified in a `.formatter.exs` file)
- [mix profile.eprof] Add a new task for time-based profiling with
eprof
- [mix test] Run all functions in a describe block by giving the
`file:line` the describe block starts
- [mix test] Report the top N slowest tests with the `--slowest N`
flag
- [mix test] Report the number of doctests and tests separately
- [mix xref] Support `--include-siblings` in reports for umbrella
support
- [mix xref] Add `mix xref graph --format stats`
- [mix xref] Add `--only-nodes` and `--label` filters to mix xref
graph
- [mix xref] Add `mix xref deprecated` that shows the callsite of
deprecated functions
2. Bug fixes
Elixir
- [CLI] Support path with spaces as argument to elixir.bat
- [Inspect] Properly handle minus signal for non-decimal negative
integers
- [Integer] Do not raise on non-integer values in `is_odd`/`is_even`
- [Kernel] Solve a precedence issue between `&` and `|`, such as
`[&Foo.bar/1 | &Baz.bat/2]`
- [Kernel] Do not load dynamic Elixir modules as `:in_memory` as this
value is not officially supported by the code server. Instead, use
an empty list, which is the same value used by Erlang.
- [Kernel] Validate variable struct name is atom when used in pattern
matching
- [Macro] Fix `Macro.to_string/2` for tuple calls, such as `alias
Foo.{Bar, Baz}`
- [MapSet] Return valid MapSet when unioning a legacy MapSet
- [Regex] Return a leading empty space when splitting on empty
pattern. This makes the `split` operation consistent with the other
operations in the `Regex` module
- [Stream] Ensure `Stream.chunk_while/4` does not emit more elements
than necessary when halted
- [String] Return a leading empty space when splitting on empty
string. This makes the `split` operation consistent with the other
operations in the `String` module
- [URI] Preserve empty fragments in `URI.parse/1`
Mix
- [mix app.start] Improve the quality of reports if app fails to boot
- [mix cmd] Allow `mix cmd` to be invoked multiple times without
marking it as executed
- [mix deps] Ensure optional dependencies in umbrella applications are
loaded
- [mix deps.update] Ensure transitive new non-Hex dependencies are
also fetched when a repo is updated
- [mix xref] Take compile dependencies with higher priority than
runtime ones when building a graph
- [mix xref] Handle external files for xref callers and warnings
3. Soft deprecations (no warnings emitted)
Elixir
- [Inspect.Algebra] `surround/3` and `surround_many/6` are deprecated
in favor of `container_doc/6`
- [Kernel.ParallelCompiler] `files/2` and `files_to_path/3` are
deprecated in favor of `compile/2` and `compile_to_path/3`
- [Kernel.ParallelRequire] `files/2` is deprecated in favor of
`Kernel.ParallelCompiler.require/2`
- [GenServer] Warn if `init/1` is not defined in `GenServer`. This
brings GenServer closer to the implementation in OTP and aligns all
behaviours to require the `init/1` callback
ExUnit
- [ExUnit.Formatter] `:case_started` and `:case_finished` events are
deprecated in favor of `:module_started` and `:module_finished`
4. Deprecations
Elixir
- [Enum] `Enum.partition/2` is deprecated in favor of
`Enum.split_with/2`
- [Keyword] `Keyword.replace/3` is deprecated in favor of
`Keyword.fetch/2` and `Keyword.put/3`
- [Map] `Map.replace/3` is deprecated in favor of `Map.fetch/2` and
`Map.put/3`
- [Macro] `Macro.unescape_tokens/1` and `Macro.unescape_tokens/2` are
deprecated in favor of `Enum.map/2`
- [Range] Deprecate `Range.range?/1` in favor of pattern matching on
`_ .. _`
|
2018-01-03 14:06:17 by Filip Hajny | Files touched by this commit (5) |
Log message:
Import elixir-1.5.2 as lang/elixir.
Elixir is a functional, meta-programming aware language built on top of the
Erlang VM. It is a dynamic language that focuses on tooling to leverage
Erlang's abilities to build concurrent, distributed and fault-tolerant
applications with hot code upgrades.
|