pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/elixir



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Jul  2 08:09:37 UTC 2023

Modified Files:
        pkgsrc/lang/elixir: Makefile PLIST distinfo

Log Message:
elixir: update to 1.15.0.

# Changelog for Elixir v1.15

This release requires Erlang/OTP 24 and later.

Elixir v1.15 is a smaller release with focused improvements
on compilation and boot times. This release also completes
our integration process with Erlang/OTP logger, bringing new
features such as log rotation and compaction out of the box.

You will also find additional convenience functions in `Code`,
`Map`, `Keyword`, all Calendar modules, and others.

## Compile and boot-time improvements

The last several releases brought improvements to compilation
time and this version is no different. In particular, Elixir
now caches and prunes load paths before compilation, ensuring your
project (and dependencies!) compile faster and in an environment
closer to production.

In a nutshell the Erlang VM loads modules from code paths. Each
application that ships with Erlang and Elixir plus each dependency
become an entry in your code path. The larger the code path, the
more work Erlang has to do in order to find a module.

In previous versions, Mix would only add entries to the load paths.
Therefore, if you compiled 20 dependencies and you went to compile
the 21st, the code path would have 21 entries (plus all Erlang and
Elixir apps). This allowed modules from unrelated dependencies to
be seen and made compilation slower the more dependencies you had.
With this release, we will now prune the code paths to only the ones
listed as dependencies, bringing the behaviour closer to `mix release`.

Furthermore, Erlang/OTP 26 allows us to start applications
concurrently and cache the code path lookups, decreasing the cost of
booting applications. The combination of Elixir v1.15 and Erlang/OTP 26
should reduce the boot time of applications, such as when starting
`iex -S mix` or running a single test with `mix test`, from 5% to 30%.

The compiler is also smarter in several ways: `@behaviour` declarations
no longer add compile-time dependencies and aliases in patterns and
guards add no dependency whatsoever, as no dispatching happens. Furthermore,
Mix now tracks the digests of `@external_resource` files, reducing the
amount of recompilation when swapping branches. Finally, dependencies
are automatically recompiled when their compile-time configuration changes.

### Potential incompatibilities

Due to the code path pruning, if you have an application or dependency
that does not specify its dependencies on Erlang and Elixir application,
it may no longer compile successfully in Elixir v1.15. You can temporarily
disable code path pruning by setting `prune_code_paths: false` in your
`mix.exs`, although doing so may lead to runtime bugs that are only
manifested inside a `mix release`.

## Compiler warnings and errors

The Elixir compiler can now emit many errors for a single file, making
sure more feedback is reported to developers before compilation is aborted.

In Elixir v1.14, an undefined function would be reported as:

    ** (CompileError) undefined function foo/0 (there is no such import)
        my_file.exs:1

In Elixir v1.15, the new reports will look like:

    error: undefined function foo/0 (there is no such import)
      my_file.exs:1

    ** (CompileError) my_file.exs: cannot compile file (errors have been logged)

A new function, called `Code.with_diagnostics/2`, has been added so this
information can be leveraged by editors, allowing them to point to several
errors at once.

## Integration with Erlang/OTP logger

This release provides additional features such as global logger
metadata and file logging (with rotation and compaction) out-of-the-box!

This release also soft-deprecates Elixir's Logger Backends in
favor of Erlang's Logger handlers. Elixir will automatically
convert your `:console` backend configuration into the new
configuration. Previously, you would set:

```elixir
config :logger, :console,
  level: :error,
  format: "$time $message $metadata"
```

Which is now translated to the equivalent:

```elixir
config :logger, :default_handler,
  level: :error

config :logger, :default_formatter,
  format: "$time $message $metadata"
```

If you use `Logger.Backends.Console` with a custom device or other
backends, they are still fully supported and functional. If you
implement your own backends, you want to consider migrating to
[`:logger_backends`](https://github.com/elixir-lang/logger_backends)
in the long term.

See the new `Logger` documentation for more information on the
new features and on compatibility.


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 pkgsrc/lang/elixir/Makefile
cvs rdiff -u -r1.8 -r1.9 pkgsrc/lang/elixir/PLIST
cvs rdiff -u -r1.29 -r1.30 pkgsrc/lang/elixir/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/lang/elixir/Makefile
diff -u pkgsrc/lang/elixir/Makefile:1.34 pkgsrc/lang/elixir/Makefile:1.35
--- pkgsrc/lang/elixir/Makefile:1.34    Fri May 26 04:26:50 2023
+++ pkgsrc/lang/elixir/Makefile Sun Jul  2 08:09:37 2023
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.34 2023/05/26 04:26:50 adam Exp $
+# $NetBSD: Makefile,v 1.35 2023/07/02 08:09:37 wiz Exp $
 
-DISTNAME=      elixir-1.14.5
+DISTNAME=      elixir-1.15.0
 CATEGORIES=    lang
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=elixir-lang/}
 GITHUB_TAG=    v${PKGVERSION_NOREV}

Index: pkgsrc/lang/elixir/PLIST
diff -u pkgsrc/lang/elixir/PLIST:1.8 pkgsrc/lang/elixir/PLIST:1.9
--- pkgsrc/lang/elixir/PLIST:1.8        Sat Oct 15 18:13:42 2022
+++ pkgsrc/lang/elixir/PLIST    Sun Jul  2 08:09:37 2023
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.8 2022/10/15 18:13:42 triaxx Exp $
+@comment $NetBSD: PLIST,v 1.9 2023/07/02 08:09:37 wiz Exp $
 bin/elixir
 bin/elixirc
 bin/iex
@@ -138,6 +138,7 @@ lib/elixir/lib/elixir/ebin/Elixir.Kernel
 lib/elixir/lib/elixir/ebin/Elixir.Kernel.ParallelRequire.beam
 lib/elixir/lib/elixir/ebin/Elixir.Kernel.SpecialForms.beam
 lib/elixir/lib/elixir/ebin/Elixir.Kernel.Typespec.beam
+lib/elixir/lib/elixir/ebin/Elixir.Kernel.TypespecError.beam
 lib/elixir/lib/elixir/ebin/Elixir.Kernel.Utils.beam
 lib/elixir/lib/elixir/ebin/Elixir.Kernel.beam
 lib/elixir/lib/elixir/ebin/Elixir.KeyError.beam
@@ -156,6 +157,7 @@ lib/elixir/lib/elixir/ebin/Elixir.MapSet
 lib/elixir/lib/elixir/ebin/Elixir.MatchError.beam
 lib/elixir/lib/elixir/ebin/Elixir.Module.LocalsTracker.beam
 lib/elixir/lib/elixir/ebin/Elixir.Module.ParallelChecker.beam
+lib/elixir/lib/elixir/ebin/Elixir.Module.Types.Behaviour.beam
 lib/elixir/lib/elixir/ebin/Elixir.Module.Types.Error.beam
 lib/elixir/lib/elixir/ebin/Elixir.Module.Types.Expr.beam
 lib/elixir/lib/elixir/ebin/Elixir.Module.Types.Helpers.beam
@@ -308,6 +310,7 @@ lib/elixir/lib/iex/ebin/Elixir.IEx.Info.
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Atom.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.BitString.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Date.beam
+lib/elixir/lib/iex/ebin/Elixir.IEx.Info.DateTime.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Float.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Function.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Integer.beam
@@ -316,31 +319,32 @@ lib/elixir/lib/iex/ebin/Elixir.IEx.Info.
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.NaiveDateTime.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.PID.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Port.beam
+lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Range.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Reference.beam
+lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Regex.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Time.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.Tuple.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Info.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Introspection.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Pry.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Server.beam
-lib/elixir/lib/iex/ebin/Elixir.IEx.State.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.beam
 lib/elixir/lib/iex/ebin/iex.app
 lib/elixir/lib/logger/ebin/Elixir.Logger.App.beam
-lib/elixir/lib/logger/ebin/Elixir.Logger.BackendSupervisor.beam
+lib/elixir/lib/logger/ebin/Elixir.Logger.Backends.Config.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.Backends.Console.beam
-lib/elixir/lib/logger/ebin/Elixir.Logger.Config.beam
-lib/elixir/lib/logger/ebin/Elixir.Logger.Filter.beam
+lib/elixir/lib/logger/ebin/Elixir.Logger.Backends.Handler.beam
+lib/elixir/lib/logger/ebin/Elixir.Logger.Backends.Internal.beam
+lib/elixir/lib/logger/ebin/Elixir.Logger.Backends.Supervisor.beam
+lib/elixir/lib/logger/ebin/Elixir.Logger.Backends.Watcher.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.Formatter.beam
-lib/elixir/lib/logger/ebin/Elixir.Logger.Handler.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.Translator.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.Utils.beam
-lib/elixir/lib/logger/ebin/Elixir.Logger.Watcher.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.beam
 lib/elixir/lib/logger/ebin/logger.app
 lib/elixir/lib/mix/ebin/Elixir.Collectable.Mix.Shell.beam
+lib/elixir/lib/mix/ebin/Elixir.Mix.AppLoader.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.CLI.beam
-lib/elixir/lib/mix/ebin/Elixir.Mix.Compilers.ApplicationTracer.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Compilers.Elixir.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Compilers.Erlang.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Compilers.Test.beam
@@ -363,7 +367,6 @@ lib/elixir/lib/mix/ebin/Elixir.Mix.NoPro
 lib/elixir/lib/mix/ebin/Elixir.Mix.NoTaskError.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Project.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.ProjectStack.beam
-lib/elixir/lib/mix/ebin/Elixir.Mix.PublicKey.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Rebar.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Release.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.RemoteConverger.beam

Index: pkgsrc/lang/elixir/distinfo
diff -u pkgsrc/lang/elixir/distinfo:1.29 pkgsrc/lang/elixir/distinfo:1.30
--- pkgsrc/lang/elixir/distinfo:1.29    Fri May 26 04:26:50 2023
+++ pkgsrc/lang/elixir/distinfo Sun Jul  2 08:09:37 2023
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.29 2023/05/26 04:26:50 adam Exp $
+$NetBSD: distinfo,v 1.30 2023/07/02 08:09:37 wiz Exp $
 
-BLAKE2s (elixir-1.14.5.tar.gz) = 3270a9c73c3e372e187e6dd9881361e54a3e6412442f2f6829342d8f88fc1491
-SHA512 (elixir-1.14.5.tar.gz) = 589482fb080eb9f71319b7927312ee255dab0376a8fb781533bc97b6a75dd71ec43cd022bb2eff12eca205cdeaf9a6d629f754c555c17cd6222e05912ff3d960
-Size (elixir-1.14.5.tar.gz) = 3076366 bytes
+BLAKE2s (elixir-1.15.0.tar.gz) = 0aa1d42c064da87390272ccb20832691cdb5c2b15b8e48cc357c1324630d8ff2
+SHA512 (elixir-1.15.0.tar.gz) = 89af6b66fb06d3e2b847ec1e2667b17a78e9501a53397b2edffa530ac6933fb55f7654526bd76abb360c72cd11b023458cd26f36849b43efc91bd737ece7ee31
+Size (elixir-1.15.0.tar.gz) = 3144933 bytes
 SHA1 (patch-Makefile) = 9b7a1aeef4367b7315fd7a91c53ff533aeaa0aff



Home | Main Index | Thread Index | Old Index