2020-05-17 16:44:21 by Nia Alarie | Files touched by this commit (2) |
Log message:
elixir: Update to 1.10.3
## v1.10.3 (2020-04-25)
### 1. Bug fixes
#### Elixir
* [Code] Return `[{mod, bin}]` from `Code.compile_file/2`, \
`Code.require_file/2`, `Code.load_file/2`
* [Code] Make sure the formatter respects newlines before and after module \
attributes
* [Kernel.ParallelCompiler] Fix a bug where the parallel compiler would raise \
in long compilation cycles
* [Kernel.ParallelCompiler] Fix a bug where the parallel compiler would raise \
if some of the modules being compiled referred to a module that has been loaded \
directly to memory
* [Module] Fix accidental breaking change where bodiless clauses had their \
body value on `@on_definition` callbacks set to an empty list instead of `nil`
* [String] Undeprecate `String.normalize/2` normalize and fix infinite loop \
caused by certain invalid strings
#### ExUnit
* [ExUnit.Assertions] Fix pattern matching diff when matching on pinned variables
* [ExUnit.Assertions] Fix pattern matching diff when matching variable struct names
* [ExUnit.Assertions] Fix pattern matching diff when matching on the binary \
concat operator (`<>`) and the left side is not a literal string
* [ExUnit.Assertions] Fix pattern matching diff when matching on pseudo-vars \
(`__MODULE__`, `__DIR__`, etc)
#### Mix
* [mix release] Respect the `:path` option when creating a `:tar` file for releases
|
2020-03-26 03:31:23 by Joerg Sonnenberger | Files touched by this commit (1) |
Log message:
Increase resource limits due to Erlang's default allocations
|
2020-02-26 20:21:50 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
elixir: updated to 1.10.2
v1.10.2
Bug fixes
Elixir
[Macro] Fix a bug where Macro.to_string/1 would emit invalid code for sigils
[Task] Do not crash async_stream monitor if it receives spurious DOWN messages
Logger
[Logger] Fix a bug where the Logger formatter would fail when handling unknown \
metadata values
Mix
[mix compile] Do not write files to disk if --warnings-as-errors was given and \
warnings were emitted
|
2020-02-13 19:27:23 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
elixir: updated to 1.10.0
v1.10.0
Support for Erlang/OTP 21+
Releases improvements
Elixir v1.9 introduced releases as a mechanism to package self-contained \
applications. Elixir v1.10 further improves releases with bug fixes and new \
enhancements based on feedback we got from the community. The highlights are:
* Allow the dual boot system of releases to be disabled on environments that are \
boot-time sensitive, such as embedded devices
* Track and raise if compile-time configuration is set or changes at runtime \
(more in the next section)
* Support for easily adding extra files to releases via overlays
* Allow RELEASE_DISTRIBUTION to be set to none in order to fully disable it
* Add a built-in :tar step that automatically packages releases
|
2019-08-01 11:52:52 by Nia Alarie | Files touched by this commit (4) |
Log message:
elixir: Update to 1.9.1
## v1.9.1 (2019-07-18)
### 1. Enhancements
#### Mix
* [mix format] Print relative paths in `--check-formatted` output
* [mix release] Support included applications
### 2. Bug fixes
#### Elixir
* [Code] Fix formatter wrongly removing nested parens in nested calls
#### Logger
* [Logger] Do not crash translator on poorly formatted supervisor names
#### Mix
* [mix compile] Raise readable error for mismatched sources during compilation
* [mix release] Preserve UTF8 encoding in release config files
## v1.9.0 (2019-06-24)
### 1. Enhancements
#### EEx
* [EEx] Allow more complex mixed expressions when tokenizing
#### Elixir
* [Access] Allow `Access.at/1` to handle negative index
* [CLI] Add support for `--boot`, `--boot-var`, `--erl-config`, `--pipe-to`, \
`--rpc-eval`, and `--vm-args` options
* [Code] Add `static_atom_encoder` option to `Code.string_to_quoted/2`
* [Code] Support `:force_do_end_blocks` on `Code.format_string!/2` and \
`Code.format_file!/2`
* [Code] Do not raise on deadlocks on `Code.ensure_compiled/1`
* [Config] Add `Config`, `Config.Reader`, and `Config.Provider` modules for \
working with configuration
* [File] Add `File.rename!/2`
* [Inspect] Add `:inspect_fun` and `:custom_options` to `Inspect.Opts`
* [Kernel] Add `~U` sigil for UTC date times
* [Kernel] Optimize `&super/arity` and `&super(&1)`
* [Kernel] Optimize generated code for `with` with a catch-all clause
* [Kernel] Validate `__struct__` key in map returned by `__struct__/0,1`
* [Module] Add `Module.get_attribute/3`
* [Protocol] Improve `Protocol.UndefinedError` messages to also include the \
type that was attempted to dispatch on
* [Protocol] Optimize performance of dynamic dispatching for non-consolidated \
protocols
* [Record] Include field names in generated type for records
* [Regex] Automatically recompile regexes
* [Registry] Add `Registry.select/2`
* [System] Add `System.restart/0`, `System.pid/0` and `System.no_halt/1`
* [System] Add `System.get_env/2`, `System.fetch_env/1`, and `System.fetch_env!/1`
* [System] Support `SOURCE_DATE_EPOCH` for reproducible builds
#### ExUnit
* [ExUnit] Allow multiple `:exclude` on configuration/CLI
* [ExUnit.DocTest] No longer wrap doctest errors in custom exceptions. They \
ended-up hiding more information than showing
* [ExUnit.DocTest] Display the actual doctest code when doctest fails
#### IEx
* [IEx.CLI] Copy ticktime from remote node on IEx `--remsh`
* [IEx.CLI] Automatically add a host on node given to `--remsh`
#### Logger
* [Logger] Use a decentralized mode computation for Logger which allows \
overloads to be detected more quickly
* [Logger] Use `persistent_term` to store configuration whenever available for \
performance
#### Mix
* [Mix] Follow XDG base dir specification in Mix for temporary and \
configuration files
* [Mix.Generator] Add `copy_file/3`, `copy_template/4`, and `overwite?/2`
* [Mix.Project] Add `preferred_cli_target` that works like `preferred_cli_env`
* [mix archive.uninstall] Allow `mix archive.uninstall APP` to uninstall any \
installed version of APP
* [mix new] No longer generate a `config/` directory for mix new
* [mix release] Add support for releases
* [mix release.init] Add templates for release configuration
* [mix test] Allow running tests for a given umbrella app from the umbrella \
root with `mix test apps/APP/test`. Test failures also include the `apps/APP` \
prefix in the test location
### 2. Bug fixes
#### EEx
* [EEx] Consistently trim newlines when you have a single EEx expression per \
line on multiple lines
#### Elixir
* [Code] Quote `::` in `Code.format_string!/1` to avoid ambiguity
* [Code] Do not crash formatter on false positive sigils
* [Enum] Ensure the first equal entry is returned by `Enum.min/2` and `Enum.max/2`
* [Kernel] Improve error message when string interpolation is used in a guard
* [Kernel] Properly merge and handle docs for callbacks with multiple clauses
* [Kernel] Guarantee reproducible builds on modules with dozens of specs
* [Kernel] Resolve `__MODULE__` accordingly in nested `defmodule` to avoid \
double nesting
* [Kernel] Type variables starting with an underscore (`_foo`) should not \
raise compile error
* [Kernel] Keep order of elements when macro `in/2` is expanded with a literal \
list on the right-hand side
* [Kernel] Print proper location on undefined function error from dynamically \
generated functions
* [Kernel] **Potentially breaking** Do not leak aliases when nesting module \
definitions that are fully namespaced modules. If you defined `defmodule \
Elixir.Foo.Bar` inside `defmodule Foo`, previous Elixir versions would \
automatically define an alias, but fully namespaced modules such as \
`Elixir.Foo.Bar` should never define or require an alias. If you were \
accidentally relying on this broken behaviour, your code may no longer work
* [System] Make sure `:init.get_status/0` is set to `{:started, :started}` \
once the system starts
* [Path] Do not expand `~` in `Path.expand/2` when not followed by a path separator
* [Protocol] Ensure `debug_info` is kept in protocols
* [Regex] Ensure inspect returns valid `~r//` expressions when they are \
manually compiled with backslashes
* [Registry] Fix ETS leak in `Registry.register/2` for already registered \
calls in unique registries while the process is still alive
#### ExUnit
* [ExUnit] Raise error if attempting to run single line tests on multiple files
* [ExUnit] Return proper error on duplicate child IDs on `start_supervised`
#### IEx
* [IEx] Automatically shut down IEx if we receive EOF
#### Logger
* [Logger] Don't discard Logger messages from other nodes as to leave a trail \
on both systems
#### Mix
* [mix compile] Ensure Erlang-based Mix compilers (erlang, leex, yecc) set \
valid position on diagnostics
* [mix compile] Ensure compilation halts in an umbrella project if one of the \
siblings fail to compile
* [mix deps] Raise an error if the umbrella app's dir name and `mix.exs` app \
name don't match
* [mix deps.compile] Fix subcommand splitting bug in rebar3
* [mix test] Do not consider modules that are no longer cover compiled when \
computing coverage report, which could lead to flawed reports
### 3. Soft-deprecations (no warnings emitted)
#### Mix
* [Mix.Config] `Mix.Config` has been deprecated in favor of the `Config` \
module that now ships as part of Elixir itself. Reading configuration files \
should now be done by the `Config.Reader` module
### 4. Hard-deprecations
#### Elixir
* [CLI] Deprecate `--detached` option, use `--erl "-detached"` instead
* [Map] Deprecate Enumerable keys in `Map.drop/2`, `Map.split/2`, and `Map.take/2`
* [String] The `:insert_replaced` option in `String.replace/4` has been \
deprecated. Instead you may pass a function as a replacement or use \
`:binary.replace/4` if you need to support earlier Elixir versions
#### Mix
* [Mix.Project] Deprecate `Mix.Project.load_paths/1` in favor of \
`Mix.Project.compile_path/1`
|
2019-06-17 18:58:43 by Nia Alarie | Files touched by this commit (1) |
Log message:
elixir: Avoid errors from check-interpreter.mk after addition of interpreter
workaround.
|
2019-05-24 01:42:27 by Yuji Yamano | Files touched by this commit (1) |
Log message:
Make bin/mix works.
shebang doesn't work if an interpreter is a shell script.
See http://mail-index.netbsd.org/tech-pkg/2019/05/21/msg021312.html
|
2018-11-09 18:17:29 by Nia Alarie | Files touched by this commit (2) | |
Log message:
lang/elixir: update to 1.7.4.
1. Enhancements
Elixir
[Kernel] Expand left..right at compile time in more cases, which leads to \
improved performance under different scenarios, especially on x in left..right \
expressions
Mix
[mix deps.loadpaths] Add --no-load-deps flag. This is useful for Rebar 3 \
compatibility
2. Bug fixes
Elixir
[Calendar] Fix for converting from negative iso days on New Year in a leap year
[Kernel] Ensure @spec, @callback, @type and friends can be read accordingly
[Module] Avoid warnings when using Module.eval_quoted in the middle of \
existing definitions
Mix
[mix archive.build] Unload previous archive versions before building
[mix format] Expand paths so mix format path\for\windows.ex works
[mix test] Ensure that --cover displays correct coverage in an umbrella app
|
2018-10-11 14:10:09 by Jonathan Perkin | Files touched by this commit (3) |
Log message:
elixir: Fix PKGMANDIR. Add TEST_TARGET.
|
2018-09-04 15:49:25 by Filip Hajny | Files touched by this commit (3) |
Log message:
lang/elixir: Update to 1.7.3.
v1.7.3
======
1. Bug fixes
ExUnit
- [ExUnit.Assertions] Do not attempt to expand `try/1` as it is a
special form
Mix
- [mix compile.app] Do not include applications with `runtime: false`
as a runtime dependency for applications coming from Hex
v1.7.2
======
1. Bug fixes
Elixir
- [DateTime] Take negative years into account in
`DateTime.from_iso8601/1`
- [Kernel] Do not emit warnings for repeated docs over different
clauses due to false positives
Mix
- [mix compile] Properly mark top-level dependencies as optional and
as runtime. This fixes a bug where Mix attempted to start optional
dependencies of a package when those optional dependencies were not
available
- [mix compile] Avoid deadlock when a config has a timestamp later
than current time
- [mix help] Show task and alias help when both are available
- [mix test] Do not fail suite if there are no test files
v1.7.1
======
1. Bug fixes
Elixir
- [Calendar] Work-around a Dialyzer bug that causes it to loop for a
long time, potentially indefinitely
v1.7.0
======
1. Enhancements
Elixir
- [Calendar.ISO] Support negative dates in `Calendar.ISO`
- [Calendar] Add `Calendar.months_in_year/1` callback
- [Code] Add `Code.compile_file/2` that compiles files without leaving
footprints on the system
- [Code] Add `Code.purge_compiler_modules/0` that purges any compiler
module left behind. This is useful for live systems dynamically
compiling code
- [Code] Add `Code.fetch_docs/1` that returns docs in the [EEP
48](http://erlang.org/eep/eeps/eep-0048.html) format
- [Date] Add `Date.months_in_year/1` function
- [DynamicSupervisor] Use the name of the `DynamicSupervisor` as the
ID whenever possible
- [Exception] Provide "did you mean" suggestions on KeyError
- [Exception] Provide more information on ArithmeticError on
Erlang/OTP 21+
- [Function] Add `Function` module with `capture/3`, `info/1` and
`info/2` functions
- [GenServer] Support the new `handle_continue/2` callback on
Erlang/OTP 21+
- [IO.ANSI] Add cursor movement to `IO.ANSI`
- [Kernel] Support adding arbitrary documentation metadata by passing
a keyword list to `@doc`, `@moduledoc` and `@typedoc`
- [Kernel] Introduce `__STACKTRACE__` to retrieve the current
stacktrace inside `catch`/`rescue` (this will be a requirement for
Erlang/OTP 21+)
- [Kernel] Raise on unsafe variables in order to allow us to better
track unused variables
- [Kernel] Warn when using `length` to check if a list is not empty on
guards
- [Kernel] Add hints on mismatched `do`/`end` and others pairs
- [Kernel] Warn when comparing structs using the `>`, `<`, `>=` and
`<=` operators
- [Kernel] Warn on unsupported nested comparisons such as `x < y < z`
- [Kernel] Warn if redefining documentation across clauses of the same
definition
- [Kernel] Warn on unnecessary quotes around atoms, keywords and calls
- [Macro] Add `Macro.special_form?/2` and `Macro.operator?/2` that
returns `true` if the given name/arity is a special form or operator
respectively
- [Macro.Env] Add `Macro.Env.vars/1` and `Macro.Env.has_var?/2` that
gives access to environment data without accessing private fields
- [Regex] Include endianness in the regex version. This allows regexes
to be recompiled when an archive is installed in a system with a
different endianness
- [Registry] Add `Registry.count/1` and `Registry.count_match/4`
- [String] Update to Unicode 11
- [StringIO] Add `StringIO.open/3`
- [System] Use ISO 8601 in `System.build_info/0`
ExUnit
- [ExUnit.Assertion] Print the arguments in error reports when
asserting on a function call. For example, if `assert is_list(arg)`
fails, the argument will be shown in the report
- [ExUnit.Diff] Improve diffing of lists when one list is a subset of
the other
- [ExUnit.DocTest] Show colored diffs on failed doctests
- [ExUnit.Formatter] Excluded tests, via the `--exclude` and `--only`
flags, are now shown as "Excluded" in reports. Tests skipped via
`@tag :skip` are now exclusively shown as "Skipped" and in yellow
IEx
- [IEx.Helpers] Add `use_if_available/2`
- [IEx.Helpers] Allow `force: true` option in `recompile/1`
- [IEx.Helpers] Add `:allocators` pane to `runtime_info/1`
- [IEx.Helpers] Show documentation metadata in `h/1` helpers
Logger
- [Logger] Ensure nil metadata is always pruned
- [Logger] Only evaluate Logger macro arguments when the message will
be logged
- [Logger] Add `:compile_time_purge_matching` to purge logger calls
that match certain compile time metadata, such as module names and
application names
- [Logger] Log to `:stderr` if a backend fails and there are no other
backends
- [Logger] Allow translators to return custom metadata
- [Logger] Return `:crash_reason`, `:initial_call` and
`:registered_name` as metadata in crash reports coming from
Erlang/OTP
Mix
- [mix archive.install] Add support for the Hex organization via
`--organization`
- [mix archive.uninstall] Support `--force` flag
- [mix compile] Improve support for external build tools such as
`rebar`
- [mix deps] Include `override: true` in rebar dependencies to make
the behaviour closer to how rebar3 works (although diverged deps are
still marked as diverged)
- [mix escript.install] Add support for the Hex organization via
`--organization`
- [mix escript.uninstall] Support `--force` flag
- [mix help] Also list aliases
- [mix local] Use ipv6 with auto fallback to ipv4 when downloading
data
- [mix profile] Allow all profiling tasks to run programatically
- [mix test] Add `--failed` option that only runs previously failed
tests
- [mix test] Print coverage summary by default when the `--cover` flag
is given
- [Mix.Project] Add `Mix.Project.clear_deps_cache/0`
- [Mix.Project] Add `Mix.Project.config_mtime/0` that caches the
config mtime values to avoid filesystem access
2. Bug fixes
Elixir
- [IO.ANSI.Docs] Fix table column alignment when converting docs to
ANSI escapes
- [Code] Ensure `string_to_quoted` returns error tuples instead of
raising in certain constructs
- [Code.Formatter] Consistently format keyword lists in function calls
with and without parens
- [Code.Formatter] Do not break after `->` when there are only
comments and one-line clauses
- [File] Allow the `:trim_bom` option to be used with `:encoding`
- [Kernel] Raise on unsafe variables as some of the code emitted with
unsafe variables would not correctly propagate variables or would
disable tail call optimization semantics
- [Kernel] Do not crash on dynamic sizes in binary generators with
collectable into in comprehensions
- [Kernel] Do not crash on literals with non-unary size in binary
generators with collectable into in comprehensions
- [Task] Improve error reports and exit reasons for failed tasks on
Erlang/OTP 20+
ExUnit
- [ExUnit.Case] Raise proper error if `@tag` and `@moduletag` are used
before `use ExUnit.Case`
- [ExUnit.Case] Raise proper error if `@describetag` is used outside
of `describe/2` blocks
- [ExUnit.DocTest] Emit proper assertion error on doctests with
invalid UTF-8
Mix
- [mix archive.install] Fetch optional dependencies when installing an
archive from Git/Hex
- [mix compile] Properly track config files in umbrella projects and
recompile when any relevant umbrella configuration changes
- [mix deps] Ensure the same dependency from different SCMs are tagged
as diverged when those SCMs are remote and non-remote
- [mix deps] Ensure we re-run dependency resolution when overriding a
skipped dep in umbrella
- [mix deps.compile] Perform clean builds for dependencies on outdated
locks to avoid old modules from affecting future compilation
- [mix escript.install] Fetch optional dependencies when installing an
escript from Git/Hex
3. Soft-deprecations (no warnings emitted)
Elixir
- [Code] Deprecate `Code.load_file/2` in favor of
`Code.compile_file/2`
- [Code] Deprecate `Code.loaded_files/0` in favor of
`Code.required_files/0`
- [Code] Deprecate `Code.unload_files/1` in favor of
`Code.unrequire_files/1`
Logger
- [Logger] `compile_time_purge_level` is deprecated in favor of
`compile_time_purge_matching`
4. Hard-deprecations
Elixir
- [Code] `Code.get_docs/2` is deprecated in favor of
`Code.fetch_docs/1`
- [Enum] `Enum.chunk/2/3/4` is deprecated in favor of
`Enum.chunk_every/2/3/4` - notice `chunk_every` does not discard
incomplete chunks by default
- [GenServer] Warn if `super` is used in any of the GenServer
callbacks
- [Kernel] `not left in right` is ambiguous and is deprecated in favor
of `left not in right`
- [Kernel] Warn on confusing operator sequences, such as `1+++1`
meaning `1 ++ +1` or `........` meaning `... .. ...`
- [OptionParser] Deprecate dynamic option parser mode that depended on
atoms to be previously loaded and therefore behaved inconsistently
- [Stream] `Stream.chunk/2/3/4` is deprecated in favor of
`Stream.chunk_every/2/3/4` - notice `chunk_every` does not discard
incomplete chunks by default
|