elixir: Update to 1.9.1 trunk
authornia <nia@pkgsrc.org>
Thu, 01 Aug 2019 09:52:52 +0000
branchtrunk
changeset 337226 cdaf084b2784
parent 337225 c6f32a48a2d1
child 337227 2f64c4660510
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`
lang/elixir/Makefile
lang/elixir/PLIST
lang/elixir/distinfo
lang/elixir/patches/patch-Makefile
--- a/lang/elixir/Makefile	Thu Aug 01 01:23:20 2019 +0000
+++ b/lang/elixir/Makefile	Thu Aug 01 09:52:52 2019 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.12 2019/06/17 16:58:42 nia Exp $
+# $NetBSD: Makefile,v 1.13 2019/08/01 09:52:52 nia Exp $
 
-DISTNAME=		elixir-1.7.4
-PKGREVISION=		1
+DISTNAME=		elixir-1.9.1
 CATEGORIES=		lang
 MASTER_SITES=		${MASTER_SITE_GITHUB:=elixir-lang/}
 GITHUB_TAG=		v${PKGVERSION_NOREV}
@@ -11,13 +10,15 @@
 COMMENT=		Functional, meta-programming aware language built on top of Erlang VM
 LICENSE=		apache-2.0
 
-DEPENDS+=		erlang>=18.0:../../lang/erlang
+DEPENDS+=		erlang>=20.0:../../lang/erlang
 
 USE_TOOLS+=		gmake
 
+MAKE_FLAGS+=		MAN_PREFIX=${PREFIX}/${PKGMANDIR}
+
 REPLACE_INTERPRETER+=	elixir
 REPLACE.elixir.old=	.*elixir
-REPLACE.elixir.new=	${TOOLS_PLATFORM.env} ${PREFIX}/bin/elixir
+REPLACE.elixir.new=	${TOOLS_PLATFORM.env:Q} ${PREFIX}/bin/elixir
 REPLACE_FILES.elixir=	bin/mix
 
 CHECK_INTERPRETER_SKIP+=	bin/mix
--- a/lang/elixir/PLIST	Thu Aug 01 01:23:20 2019 +0000
+++ b/lang/elixir/PLIST	Thu Aug 01 09:52:52 2019 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.3 2018/09/04 13:49:25 fhajny Exp $
+@comment $NetBSD: PLIST,v 1.4 2019/08/01 09:52:52 nia Exp $
 bin/elixir
 bin/elixirc
 bin/iex
@@ -30,6 +30,8 @@
 lib/elixir/lib/elixir/ebin/Elixir.Behaviour.beam
 lib/elixir/lib/elixir/ebin/Elixir.Bitwise.beam
 lib/elixir/lib/elixir/ebin/Elixir.Calendar.ISO.beam
+lib/elixir/lib/elixir/ebin/Elixir.Calendar.TimeZoneDatabase.beam
+lib/elixir/lib/elixir/ebin/Elixir.Calendar.UTCOnlyTimeZoneDatabase.beam
 lib/elixir/lib/elixir/ebin/Elixir.Calendar.beam
 lib/elixir/lib/elixir/ebin/Elixir.CaseClauseError.beam
 lib/elixir/lib/elixir/ebin/Elixir.Code.Formatter.beam
@@ -48,6 +50,9 @@
 lib/elixir/lib/elixir/ebin/Elixir.Collectable.beam
 lib/elixir/lib/elixir/ebin/Elixir.CompileError.beam
 lib/elixir/lib/elixir/ebin/Elixir.CondClauseError.beam
+lib/elixir/lib/elixir/ebin/Elixir.Config.Provider.beam
+lib/elixir/lib/elixir/ebin/Elixir.Config.Reader.beam
+lib/elixir/lib/elixir/ebin/Elixir.Config.beam
 lib/elixir/lib/elixir/ebin/Elixir.Date.Range.beam
 lib/elixir/lib/elixir/ebin/Elixir.Date.beam
 lib/elixir/lib/elixir/ebin/Elixir.DateTime.beam
@@ -74,6 +79,7 @@
 lib/elixir/lib/elixir/ebin/Elixir.File.CopyError.beam
 lib/elixir/lib/elixir/ebin/Elixir.File.Error.beam
 lib/elixir/lib/elixir/ebin/Elixir.File.LinkError.beam
+lib/elixir/lib/elixir/ebin/Elixir.File.RenameError.beam
 lib/elixir/lib/elixir/ebin/Elixir.File.Stat.beam
 lib/elixir/lib/elixir/ebin/Elixir.File.Stream.beam
 lib/elixir/lib/elixir/ebin/Elixir.File.beam
@@ -183,7 +189,6 @@
 lib/elixir/lib/elixir/ebin/Elixir.String.Chars.Version.Requirement.beam
 lib/elixir/lib/elixir/ebin/Elixir.String.Chars.Version.beam
 lib/elixir/lib/elixir/ebin/Elixir.String.Chars.beam
-lib/elixir/lib/elixir/ebin/Elixir.String.Normalizer.beam
 lib/elixir/lib/elixir/ebin/Elixir.String.Tokenizer.beam
 lib/elixir/lib/elixir/ebin/Elixir.String.Unicode.beam
 lib/elixir/lib/elixir/ebin/Elixir.String.beam
@@ -276,6 +281,7 @@
 lib/elixir/lib/ex_unit/ebin/ex_unit.app
 lib/elixir/lib/iex/ebin/Elixir.IEx.App.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Autocomplete.beam
+lib/elixir/lib/iex/ebin/Elixir.IEx.Broker.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.CLI.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Config.beam
 lib/elixir/lib/iex/ebin/Elixir.IEx.Evaluator.beam
@@ -299,12 +305,12 @@
 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.Remsh.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.Console.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.Config.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.ErlangHandler.beam
@@ -313,7 +319,6 @@
 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.WatcherSupervisor.beam
 lib/elixir/lib/logger/ebin/Elixir.Logger.beam
 lib/elixir/lib/logger/ebin/logger.app
 lib/elixir/lib/mix/ebin/Elixir.Mix.CLI.beam
@@ -341,6 +346,7 @@
 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
 lib/elixir/lib/mix/ebin/Elixir.Mix.SCM.Git.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.SCM.Path.beam
@@ -398,9 +404,12 @@
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Profile.Cprof.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Profile.Eprof.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Profile.Fprof.beam
+lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Release.Init.beam
+lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Release.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Run.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Test.Cover.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Test.beam
+lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.WillRecompile.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Tasks.Xref.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.TasksServer.beam
 lib/elixir/lib/mix/ebin/Elixir.Mix.Utils.beam
--- a/lang/elixir/distinfo	Thu Aug 01 01:23:20 2019 +0000
+++ b/lang/elixir/distinfo	Thu Aug 01 09:52:52 2019 +0000
@@ -1,7 +1,7 @@
-$NetBSD: distinfo,v 1.10 2018/11/09 17:17:28 nia Exp $
+$NetBSD: distinfo,v 1.11 2019/08/01 09:52:52 nia Exp $
 
-SHA1 (elixir-1.7.4.tar.gz) = 0e8e51ae2a7b446850fc711da5a70c66d2329976
-RMD160 (elixir-1.7.4.tar.gz) = 627d80e31bdef16df1b9ba173ad5c0ac67f440a4
-SHA512 (elixir-1.7.4.tar.gz) = 594e76601e0d6f7eeddfcaa9b76a2e5c66f702a497599fffc5e9255790c18ac5e00b986fc45fd3b90335522f51272bcd4bcf2b9f8951b94eebfb1d56ac7cebc2
-Size (elixir-1.7.4.tar.gz) = 2139938 bytes
-SHA1 (patch-Makefile) = 815906a3d7532a95582a53d7c9ef9f42dc9d215f
+SHA1 (elixir-1.9.1.tar.gz) = 42aa6031f5aabbad8a5cc098b50ec74a2dff0902
+RMD160 (elixir-1.9.1.tar.gz) = 9f4f0aaaf96ce8f5051b9c0a0176a3ff91dfa5f7
+SHA512 (elixir-1.9.1.tar.gz) = 4cfc672d3a2d02e044ffa305ae2986658a431a264b7e06b0fde1773d8d062bde27ea06f0d31433107ef8bfdf6e931c75c6a39de81bc54b275e06edbe0cc87bda
+Size (elixir-1.9.1.tar.gz) = 2248780 bytes
+SHA1 (patch-Makefile) = 00a68538bae40effba33fc3bc5019fdbf38a91f3
--- a/lang/elixir/patches/patch-Makefile	Thu Aug 01 01:23:20 2019 +0000
+++ b/lang/elixir/patches/patch-Makefile	Thu Aug 01 09:52:52 2019 +0000
@@ -1,11 +1,10 @@
-$NetBSD: patch-Makefile,v 1.3 2018/10/11 12:10:09 jperkin Exp $
+$NetBSD: patch-Makefile,v 1.4 2019/08/01 09:52:52 nia Exp $
 
 Use portable sed calls to avoid gsed.
-Use pkgsrc paths for man pages.
 
---- Makefile.orig	2018-08-24 18:46:27.000000000 +0000
+--- Makefile.orig	2019-07-18 10:17:13.000000000 +0000
 +++ Makefile
-@@ -109,7 +109,7 @@ install: compile
+@@ -120,7 +120,7 @@ install: compile
  		$(INSTALL_DATA) $$dir/ebin/* "$(DESTDIR)$(PREFIX)/$(LIBDIR)/elixir/$$dir/ebin"; \
  	done
  	$(Q) $(INSTALL_DIR) "$(DESTDIR)$(PREFIX)/$(LIBDIR)/elixir/bin"
@@ -14,7 +13,7 @@
  	$(Q) $(INSTALL_DIR) "$(DESTDIR)$(PREFIX)/$(BINDIR)"
  	$(Q) for file in "$(DESTDIR)$(PREFIX)"/$(LIBDIR)/elixir/bin/*; do \
  		ln -sf "../$(LIBDIR)/elixir/bin/$${file##*/}" "$(DESTDIR)$(PREFIX)/$(BINDIR)/"; \
-@@ -262,14 +262,14 @@ build_man: man/iex.1 man/elixir.1
+@@ -296,14 +296,14 @@ build_man: man/iex.1 man/elixir.1
  
  man/iex.1:
  	$(Q) cp man/iex.1.in man/iex.1
@@ -33,18 +32,3 @@
  	$(Q) rm -f man/elixir.1.bak
  
  clean_man:
-@@ -279,9 +279,9 @@ clean_man:
- 	rm -f man/iex.1.bak
- 
- install_man: build_man
--	$(Q) mkdir -p $(DESTDIR)$(SHARE_PREFIX)/man/man1
--	$(Q) $(INSTALL_DATA) man/elixir.1  $(DESTDIR)$(SHARE_PREFIX)/man/man1
--	$(Q) $(INSTALL_DATA) man/elixirc.1 $(DESTDIR)$(SHARE_PREFIX)/man/man1
--	$(Q) $(INSTALL_DATA) man/iex.1     $(DESTDIR)$(SHARE_PREFIX)/man/man1
--	$(Q) $(INSTALL_DATA) man/mix.1     $(DESTDIR)$(SHARE_PREFIX)/man/man1
-+	$(Q) mkdir -p $(DESTDIR)$(PREFIX)/$(PKGMANDIR)/man1
-+	$(Q) $(INSTALL_DATA) man/elixir.1  $(DESTDIR)$(PREFIX)/$(PKGMANDIR)/man1
-+	$(Q) $(INSTALL_DATA) man/elixirc.1 $(DESTDIR)$(PREFIX)/$(PKGMANDIR)/man1
-+	$(Q) $(INSTALL_DATA) man/iex.1     $(DESTDIR)$(PREFIX)/$(PKGMANDIR)/man1
-+	$(Q) $(INSTALL_DATA) man/mix.1     $(DESTDIR)$(PREFIX)/$(PKGMANDIR)/man1
- 	$(MAKE) clean_man