aboutsummaryrefslogtreecommitdiffstats
path: root/community/elixir
diff options
context:
space:
mode:
authorgmile <iamexile@gmail.com>2018-03-15 08:35:26 +0200
committerWilliam Pitcock <nenolod@dereferenced.org>2018-03-16 06:21:51 +0000
commit71a420021c171b6895e30e9f911dec46800b562c (patch)
tree458982c83008a050e9c1304ecb560d9253f2e12a /community/elixir
parentd96193c4d8b8146586dd97ef1b30ebb714910c94 (diff)
downloadaports-71a420021c171b6895e30e9f911dec46800b562c.tar.bz2
aports-71a420021c171b6895e30e9f911dec46800b562c.tar.xz
community/elixir: fix build under Erlang 20.3
Diffstat (limited to 'community/elixir')
-rw-r--r--community/elixir/APKBUILD4
-rw-r--r--community/elixir/bit-comp-works.patch84
2 files changed, 87 insertions, 1 deletions
diff --git a/community/elixir/APKBUILD b/community/elixir/APKBUILD
index bf61f9fac5..6c3c5b5136 100644
--- a/community/elixir/APKBUILD
+++ b/community/elixir/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Marlus Saraiva <marlus.saraiva@gmail.com>
pkgname=elixir
pkgver=1.6.3
-pkgrel=0
+pkgrel=1
pkgdesc="Elixir is a dynamic, functional language designed for building scalable and maintainable applications"
url="http://elixir-lang.org"
arch="noarch"
@@ -11,6 +11,7 @@ depends="erlang erlang-inets erlang-ssl
makedepends="erlang-crypto erlang-syntax-tools erlang-parsetools erlang-eunit erlang-tools"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/elixir-lang/elixir/archive/v$pkgver.tar.gz
+ bit-comp-works.patch
disable-iex-tests.patch"
builddir="$srcdir/$pkgname-$pkgver"
@@ -38,4 +39,5 @@ package() {
}
sha512sums="76f38accd277d92c428954871c62b9ff69b97137d1e4e3889feb3be94055ba2b45275aa38561aef700dac0f5381db72d4e47b55342a3e04397f3781b412dbf2c elixir-1.6.3.tar.gz
+87ec27be2dfe8a7bcda0e50c81c75bcd66e3225259a0da14925623d65331a86972ea5c94df435827232f39bc67823e7ed23e671a975b10c2ebb29c19e1280863 bit-comp-works.patch
7d579a8be0f6ba2de6d85861267f9fea7846c29cf661c3221b02e1464c87db941d015a18217ffe25a5846a4ea63ccf8338541568a70bf9ec07237b91a94a0860 disable-iex-tests.patch"
diff --git a/community/elixir/bit-comp-works.patch b/community/elixir/bit-comp-works.patch
new file mode 100644
index 0000000000..6cda7edb0a
--- /dev/null
+++ b/community/elixir/bit-comp-works.patch
@@ -0,0 +1,84 @@
+From 141c3276857ac09bb1f378ed6842495bb0b0e57d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@gmail.com>
+Date: Wed, 14 Mar 2018 21:45:13 +0100
+Subject: [PATCH] Ensure bitstring comprehensions work on OTP 20.3 (#7453)
+
+Closes #7452
+---
+ lib/elixir/lib/collectable.ex | 3 +++
+ lib/elixir/src/elixir_erl_for.erl | 24 +++++++++++++++++-------
+ 2 files changed, 20 insertions(+), 7 deletions(-)
+
+diff --git a/lib/elixir/lib/collectable.ex b/lib/elixir/lib/collectable.ex
+index f7a35cd65e..495eb848cb 100644
+--- a/lib/elixir/lib/collectable.ex
++++ b/lib/elixir/lib/collectable.ex
+@@ -101,6 +101,9 @@ defimpl Collectable, for: BitString do
+ acc, {:cont, x} when is_bitstring(x) ->
+ <<IO.iodata_to_binary(acc)::bitstring, x::bitstring>>
+
++ acc, :done when is_bitstring(acc) ->
++ acc
++
+ acc, :done ->
+ IO.iodata_to_binary(acc)
+
+diff --git a/lib/elixir/src/elixir_erl_for.erl b/lib/elixir/src/elixir_erl_for.erl
+index e24da55a8b..5c4ce62c6d 100644
+--- a/lib/elixir/src/elixir_erl_for.erl
++++ b/lib/elixir/src/elixir_erl_for.erl
+@@ -21,7 +21,7 @@ translate(Meta, Args, Return, S) ->
+
+ case comprehension_expr(TInto, TExpr) of
+ {inline, TIntoExpr} ->
+- {build_inline(Ann, TCases, TIntoExpr, TInto, TUniq, SF), SF};
++ build_inline(Ann, TCases, TIntoExpr, TInto, TUniq, SF);
+ {into, TIntoExpr} ->
+ build_into(Ann, TCases, TIntoExpr, TInto, TUniq, SF)
+ end.
+@@ -91,17 +91,17 @@ collect_filters([], Acc) ->
+
+ build_inline(Ann, Clauses, Expr, Into, Uniq, S) ->
+ case not Uniq and lists:all(fun(Clause) -> element(1, Clause) == bin end, Clauses) of
+- true -> build_comprehension(Ann, Clauses, Expr, Into);
++ true -> {build_comprehension(Ann, Clauses, Expr, Into), S};
+ false -> build_inline_each(Ann, Clauses, Expr, Into, Uniq, S)
+ end.
+
+ build_inline_each(Ann, Clauses, Expr, false, Uniq, S) ->
+ InnerFun = fun(InnerExpr, _InnerAcc) -> InnerExpr end,
+- build_reduce(Ann, Clauses, InnerFun, Expr, {nil, Ann}, Uniq, S);
++ {build_reduce(Ann, Clauses, InnerFun, Expr, {nil, Ann}, Uniq, S), S};
+ build_inline_each(Ann, Clauses, Expr, {nil, _} = Into, Uniq, S) ->
+ InnerFun = fun(InnerExpr, InnerAcc) -> {cons, Ann, InnerExpr, InnerAcc} end,
+ ReduceExpr = build_reduce(Ann, Clauses, InnerFun, Expr, Into, Uniq, S),
+- elixir_erl:remote(Ann, lists, reverse, [ReduceExpr]);
++ {elixir_erl:remote(Ann, lists, reverse, [ReduceExpr]), S};
+ build_inline_each(Ann, Clauses, Expr, {bin, _, []}, Uniq, S) ->
+ {InnerValue, SV} = build_var(Ann, S),
+
+@@ -135,11 +135,21 @@ build_inline_each(Ann, Clauses, Expr, {bin, _, []}, Uniq, S) ->
+ end,
+
+ ReduceExpr = build_reduce(Ann, Clauses, InnerFun, Expr, {nil, Ann}, Uniq, SV),
+- elixir_erl:remote(Ann, erlang, iolist_to_binary, [ReduceExpr]).
++
++ {{'case', Ann, ReduceExpr, [
++ {clause, Ann,
++ [InnerValue],
++ [[elixir_erl:remote(Ann, erlang, is_bitstring, [InnerValue])]],
++ [InnerValue]},
++ {clause, Ann,
++ [InnerValue],
++ [],
++ [elixir_erl:remote(Ann, erlang, iolist_to_binary, [InnerValue])]}
++ ]}, SV}.
+
+ build_into(Ann, Clauses, Expr, {map, _, []}, Uniq, S) ->
+- ReduceExpr = build_inline_each(Ann, Clauses, Expr, {nil, Ann}, Uniq, S),
+- {elixir_erl:remote(Ann, maps, from_list, [ReduceExpr]), S};
++ {ReduceExpr, SR} = build_inline_each(Ann, Clauses, Expr, {nil, Ann}, Uniq, S),
++ {elixir_erl:remote(Ann, maps, from_list, [ReduceExpr]), SR};
+ build_into(Ann, Clauses, Expr, Into, Uniq, S) ->
+ {Fun, SF} = build_var(Ann, S),
+ {Acc, SA} = build_var(Ann, SF),