./lang/elixir, Functional, meta-programming aware language built on top of Erlang VM

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.10.4, Package name: elixir-1.10.4, Maintainer: pkgsrc-users

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.


Required to run:
[lang/erlang]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: d8634700f61c72c0e97f1a212919803a86016d2a
RMD160: b94bce2d3a08c05dd207241f12624b25f7cbed67
Filesize: 2276.37 KB

Version history: (Expand)


CVS history: (Expand)


   2020-07-07 13:34:29 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
elixir: Update to 1.10.4

## v1.10.4 (2020-07-04)

### 1. Bug fixes

#### Elixir

  * [Kernel] Fix a bug where custom types were printed as built-in types
  * [Kernel] Don't add compile-time dependency on `defdelegate`
  * [Kernel] Add line numbers to warnings on deprecated imports
  * [Kernel] Report the correct line number when raising inside a macro
  * [Task] Include callers in translated Logger metadata for Task
  * [Task] Fix Task PID and caller in Task Supervisor reports

#### ExUnit

  * [ExUnit.Formatter] Avoid crashes when diffing guards when the pattern does \ 
not match
  * [ExUnit.Formatter] Also blame exceptions that come from linked and trapped exits

#### IEx

  * [IEx.Helpers] Do not crash when printing a type that cannot be code formatted

####  Mix

  * [mix app.start] Fix reading `.app` file located in archives (`.ez` files)
  * [mix local.hex] Provide more guidance when Hex can't be installed
  * [mix release] Properly encode config in releases
   2020-05-17 16:44:21 by Nia Alarie | Files touched by this commit (2) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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/2 … 21312.html