pkgsrc.se | The NetBSD package collection
./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.17.2, Package name: elixir-1.17.2, 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:
Filesize: 3178.776 KB
Version history: (Expand)
- (2025-07-15) Package has been reborn
- (2025-07-15) Package deleted from pkgsrc
- (2024-08-16) Updated to version: elixir-1.17.2
- (2024-03-20) Updated to version: elixir-1.16.2
- (2024-02-21) Updated to version: elixir-1.16.1
- (2024-01-01) Updated to version: elixir-1.16.0
CVS history: (Expand)
| 2025-02-12 16:37:37 by Thomas Klausner | Files touched by this commit (1) | |
Log message: elixir: update reference to hex |
| 2024-08-16 11:57:47 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message: elixir: updated to 1.17.2 v1.17.2 Bug fixes Logger [Logger.Translator] Fix logger crash when :gen_statem's format_status/2 returns \ non-tuple Mix [mix deps.get] Fix regression when fetching a git repository with a :ref [mix release] Validate RELEASE_MODE and set ERRORLEVEL on .bat scripts [mix release] Fix invalid example in code comment inside the generated vm.args.eex |
| 2024-03-20 12:36:49 by Thomas Klausner | Files touched by this commit (2) | |
Log message:
elixir: update to 1.16.2.
1. Enhancements
Elixir
[Code] Emit :defmodule tracing event on module definition
Mix
[Mix] Add Mix.install_project_dir/0
[Mix] Add environment variable for reusing Mix.install/2 installation
[Mix.SCM] Add Mix.SCM.delete/1
2. Bug fixes
Elixir
[Code] Fix charlist formatting issue when a single-quoted charlist escapes a \
double-quote character
[Path] Fix regression on how Path.relative_to/2 dealt with "." as input
IEx
[IEx.Helpers] Discard mermaid fenced blocks from ansi docs
ExUnit
[ExUnit] Properly compared pinned values when building diffs
|
| 2024-02-21 11:29:44 by Thomas Klausner | Files touched by this commit (2) | |
Log message:
elixir: update to 1.16.1.
Bug fixes
Elixir
[Code] Fix Code.quoted_to_algebra/2 for operator with :do key as operand
[Kernel.ParallelCompiler] Do not crash parallel compiler when it receives \
diagnostics from additional code evaluation
[Kernel.ParallelCompiler] Always log errors at the end of compilation
[String] Fix String.capitalize/1 with a single codepoint
IEx
[IEx] Fix autocompletion of function signatures on Erlang/OTP 26
[IEx] Do not assume $HOME is set
Mix
[mix deps.compile] Handle compilation of rebar3 dependencies when rebar3 is \
on a path with spaces on Unix
[mix test] Properly resolve relative paths when running tests from \
individual files
[mix test] Properly resolve Windows paths when running tests from individual \
files
|
| 2023-12-31 22:47:17 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
elixir: update to 1.16.0.
(5 test failures)
# Changelog for Elixir v1.16
## Code snippets in diagnostics
Elixir v1.15 introduced a new compiler diagnostic format and the ability to \
print multiple error diagnostics per compilation (in addition to multiple \
warnings).
With Elixir v1.16, we also include code snippets in exceptions and diagnostics \
raised by the compiler. For example, a syntax error now includes a pointer to \
where the error happened:
```
** (SyntaxError) invalid syntax found on lib/my_app.ex:1:17:
error: syntax error before: '*'
│
1 │ [1, 2, 3, 4, 5, *]
│ ^
│
└─ lib/my_app.ex:1:17
```
For mismatched delimiters, it now shows both delimiters:
```
** (MismatchedDelimiterError) mismatched delimiter found on lib/my_app.ex:1:18:
error: unexpected token: )
│
1 │ [1, 2, 3, 4, 5, 6)
│ │ └ mismatched closing delimiter (expected "]")
│ └ unclosed delimiter
│
└─ lib/my_app.ex:1:18
```
For unclosed delimiters, it now shows where the unclosed delimiter starts:
```
** (TokenMissingError) token missing on lib/my_app:8:23:
error: missing terminator: )
│
1 │ my_numbers = (1, 2, 3, 4, 5, 6
│ └ unclosed delimiter
...
8 │ IO.inspect(my_numbers)
│ └ missing closing delimiter (expected ")")
│
└─ lib/my_app:8:23
```
Errors and warnings diagnostics also include code snippets. When possible, we \
will show precise spans, such as on undefined variables:
```
error: undefined variable "unknown_var"
│
5 │ a - unknown_var
│ ^^^^^^^^^^^
│
└─ lib/sample.ex:5:9: Sample.foo/1
```
Otherwise the whole line is underlined:
```
error: function names should start with lowercase characters or underscore, \
invalid name CamelCase
│
3 │ def CamelCase do
│ ^^^^^^^^^^^^^^^^
│
└─ lib/sample.ex:3
```
A huge thank you to Vinícius Müller for working on the new diagnostics.
## Revamped documentation
Elixir's Getting Started guides have been made part of the Elixir repository and \
incorporated into ExDoc. This was an opportunity to revisit and unify all \
official guides and references.
We have also incorporated and extended the work on [Understanding Code Smells in \
Elixir Functional \
Language](https://github.com/lucasvegi/Elixir-Code-Smells/blob/main/etc/2023-emse-code-smells-elixir.pdf), \
by Lucas Vegi and Marco Tulio Valente, from \
[ASERG/DCC/UFMG](http://aserg.labsoft.dcc.ufmg.br/), into the official document \
in the form of anti-patterns. The anti-patterns are divided into four \
categories: code-related, design-related, process-related, and meta-programming. \
Our goal is to give all developers examples of potential anti-patterns, with \
context and examples on how to improve their codebases.
Another [ExDoc](https://github.com/elixir-lang/ex_doc) feature we have \
incorporated in this release is the addition of cheatsheets, starting with [a \
cheatsheet for the Enum module](https://hexdocs.pm/elixir/main/enum-cheat.html). \
If you would like to contribute future cheatsheets to Elixir itself, feel free \
to start a discussion with an issue.
Finally, we have started enriching our documentation with \
[Mermaid.js](https://mermaid.js.org/) diagrams. You can find examples in the \
[GenServer](https://hexdocs.pm/elixir/main/GenServer.html) and \
[Supervisor](https://hexdocs.pm/elixir/main/Supervisor.html) docs.
## v1.16.0 (2023-12-22)
### 1. Enhancements
#### EEx
* [EEx] Include relative file information in diagnostics
#### Elixir
* [Code] Add `:emit_warnings` for `Code.string_to_quoted/2`
* [Code] Automatically include columns in parsing options
* [Code] Introduce `MismatchedDelimiterError` for handling mismatched \
delimiter exceptions
* [Code.Fragment] Handle anonymous calls in fragments
* [Code.Formatter] Trim trailing whitespace on heredocs with `\r\n`
* [File] Add `:offset` option to `File.stream!/2`
* [Kernel] Auto infer size of matched variable in bitstrings
* [Kernel] Preserve column information when translating typespecs
* [Kernel] Suggest module names based on suffix and casing errors when the \
module does not exist in `UndefinedFunctionError`
* [Kernel.ParallelCompiler] Introduce `Kernel.ParallelCompiler.pmap/2` to \
compile multiple additional entries in parallel
* [Kernel.SpecialForms] Warn if `True`/`False`/`Nil` are used as aliases and \
there is no such alias
* [Macro] Add `Macro.compile_apply/4`
* [Module] Add support for `@nifs` annotation from Erlang/OTP 25
* [Module] Add support for missing `@dialyzer` configuration
* [String] Update to Unicode 15.1.0
* [String] Add `String.replace_invalid/2`
* [Task] Add `:limit` option to `Task.yield_many/2`
#### Logger
* [Logger] Add `Logger.levels/0`
#### Mix
* [mix] Add `MIX_PROFILE` to profile a list of comma separated tasks
* [mix archive.install] Support `--sparse` option
* [mix compile.app] Warn if both `:applications` and `:extra_applications` are used
* [mix compile.elixir] Pass original exception down to diagnostic `:details` \
when possible
* [mix compile.elixir] Optimize scenario where there are thousands of files in \
`lib/` and one of them is changed
* [mix deps.clean] Emit a warning instead of crashing when a dependency cannot \
be removed
* [mix escript.install] Support `--sparse` option
* [mix release] Include `include/` directory in releases
* [mix test] Allow testing multiple file:line at once, such as `mix test \
test/foo_test.exs:13 test/bar_test.exs:27`
### 2. Bug fixes
#### Elixir
* [Code] Keep quotes for atom keys in formatter
* [Code.Fragment] Fix crash in `Code.Fragment.surround_context/2` when \
matching on `->`
* [IO] Raise when using `IO.binwrite/2` on terminated device (mirroring \
`IO.write/2`)
* [Kernel] Do not expand aliases recursively (the alias stored in Macro.Env is \
already expanded)
* [Kernel] Ensure `dbg` module is a compile-time dependency
* [Kernel] Warn when a private function or macro uses `unquote/1` and the \
function/macro itself is unused
* [Kernel] Re-enabled compiler optimizations for top level functions in \
scripts (disabled in v1.14.0 but shouldn't impact most programs)
* [Kernel] Do not define an alias for nested modules starting with `Elixir.` \
in their definition
* [Kernel.ParallelCompiler] Consider a module has been defined in \
`@after_compile` callbacks to avoid deadlocks
* [Macro] Address exception on `Macro.to_string/1` for certain ASTs
* [Path] Lazily evaluate `File.cwd!/0` in `Path.expand/1` and `Path.absname/1`
* [Path] Ensure `Path.relative_to/2` returns a relative path when the given \
argument does not share a common prefix with `cwd`
#### ExUnit
* [ExUnit] Raise on incorrectly dedented doctests
#### IEx
* [IEx.Pry] Fix prying functions with only literals in their body
#### Mix
* [mix archive.install] Restore code paths after `mix archive.install`
* [mix compile] Ensure files with duplicate modules are recompiled whenever \
any of the files change
* [mix compile] Update Mix compiler diagnostics documentation and typespecs to \
match the Elixir compiler behaviour where both lines and columns start from one \
(before it inaccurately said that columns started from zero)
* [mix escript.install] Restore code paths after `mix escript.install`
### 3. Soft deprecations (no warnings emitted)
#### Elixir
* [File] Deprecate `File.stream!(file, options, line_or_bytes)` in favor of \
keeping the options as last argument, as in `File.stream!(file, line_or_bytes, \
options)`
* [Kernel.ParallelCompiler] Deprecate `Kernel.ParallelCompiler.async/1` in \
favor of `Kernel.ParallelCompiler.pmap/2`
* [Path] Deprecate `Path.safe_relative_to/2` in favor of `Path.safe_relative/2`
#### Mix
* [mix compile] Returning a four-element tuple as a position in \
`Mix.Task.Compiler.Diagnostic`
### 4. Hard deprecations
#### Elixir
* [Date] Deprecate inferring a range with negative step, call `Date.range/3` \
with a negative step instead
* [Enum] Deprecate passing a range with negative step on `Enum.slice/2`, give \
`first..last//1` instead
* [Kernel] `~R/.../` is deprecated in favor of `~r/.../`. This is because \
`~R/.../` still allowed escape codes, which did not fit the definition of \
uppercase sigils
* [String] Deprecate passing a range with negative step on `String.slice/2`, \
give `first..last//1` instead
#### ExUnit
* [ExUnit.Formatter] Deprecate `format_time/2`, use `format_times/1` instead
#### Mix
* [mix compile.leex] Require `:leex` to be added as a compiler to run the \
`leex` compiler
* [mix compile.yecc] Require `:yecc` to be added as a compiler to run the \
`yecc` compiler
|
| 2023-10-23 16:42:23 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: elixir: updated to 1.15.7 v1.15.7 1. Enhancements Elixir [Elixir] Allow code evaluation across Elixir versions 2. Bug fixes EEx [EEx] Do not emit duplicate warnings from tokenizer Mix [mix format] Correctly match file to subdirectory in \ Mix.Tasks.Format.formatter_for_file/2 |
| 2023-07-24 08:57:38 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: elixir: updated to 1.15.4 v1.15.4 Bug fixes Mix [mix archive.build] Disable protocol consolidation when building archiveson \ archive.install [mix compile] Track removed files per local dependency (this addresses a bug \ where files depending on modules from path dependencies always recompiled) [mix release] Do not strip relevant chunks from Erlang/OTP 26 v1.15.3 1. Enhancements Elixir [Kernel] Improve better stacktraces when executing unnested Elixir code in a file Mix [Mix] Allow to opt out of starting apps in Mix.install/2 2. Bug fixes Elixir [Code] Ensure with_diagnostics propagate warnings from inner Erlang passes IEx [IEx] Fix --remsh on Erlang/OTP 25 and earlier Mix [mix compile.elixir] Ensure __mix_recompile__? callbacks are properly invoked |
| 2023-07-07 15:40:42 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: elixir: updated to 1.15.2 v1.15.2 Bug fixes IEx [IEx] Fix CLI being unable to boot on Windows v1.15.1 1. Enhancements [Code] Code.string_to_quoted/2 honors :static_atoms_encoder for multi-letter sigils 2. Bug fixes ExUnit [ExUnit.CaptureLog] Fix race condition on concurrent capture_log [ExUnit.CaptureLog] Respect options passed to nested capture_log calls [ExUnit.Doctest] Properly compile doctests without results terminated by fences [ExUnit.Doctest] Allow variables defined in doctests to be used in expectation IEx [IEx] Ensure pry works on Erlang/OTP 25 and earlier while IEx is booting [IEx] Code.Fragment.surround_context considers surround context around spaces \ and parens Logger [Logger] Do not assume Logger has been loaded at compile-time [Logger.Formatter] Properly handle :function as metadata Mix [mix compile] Ensure the current project is available on the code path after its \ Elixir sources are compiled [mix compile] Guarantee yecc/leex are available when emitting warnings from \ previous runs [mix compile] Fix bug where an external resource was deleted after its mtime was successfully retrieved [mix compile] Track removed modules and exports across local deps [mix deps] Fix an issue where dependencies could not be started in an umbrella \ projects [mix release] Properly handle optional dependencies when there is a conflict in \ the application start mode [mix release] Remove --werl from release scripts on Erlang/OTP 26 |