diff options
author | fhajny <fhajny@pkgsrc.org> | 2017-10-17 14:47:36 +0000 |
---|---|---|
committer | fhajny <fhajny@pkgsrc.org> | 2017-10-17 14:47:36 +0000 |
commit | 513a3626426b9a38b424b1e908e0ff473aac9512 (patch) | |
tree | b63db327958c9e8ddb324b94596515d0fe72b455 /lang/erlang | |
parent | 0f232fe683b5e657fbc582a8fb21e1c7952d53e0 (diff) | |
download | pkgsrc-513a3626426b9a38b424b1e908e0ff473aac9512.tar.gz |
lang/erlang: Fix incorrect internal consistency failure
for binary matching code. Bump PKGREVISION.
Diffstat (limited to 'lang/erlang')
-rw-r--r-- | lang/erlang/Makefile | 4 | ||||
-rw-r--r-- | lang/erlang/distinfo | 3 | ||||
-rw-r--r-- | lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl | 24 |
3 files changed, 28 insertions, 3 deletions
diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile index 0aacd3efe60..17ad636da54 100644 --- a/lang/erlang/Makefile +++ b/lang/erlang/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.81 2017/10/04 16:20:51 jperkin Exp $ +# $NetBSD: Makefile,v 1.82 2017/10/17 14:47:36 fhajny Exp $ DISTNAME= otp_src_${DIST_VERSION_MAJOR}.${DIST_VERSION_MINOR} PKGNAME= ${DISTNAME:S/otp_src_/erlang-/} -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= lang MASTER_SITES= http://www.erlang.org/download/ diff --git a/lang/erlang/distinfo b/lang/erlang/distinfo index f23c17c0024..42b758793d4 100644 --- a/lang/erlang/distinfo +++ b/lang/erlang/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.53 2017/10/04 16:20:51 jperkin Exp $ +$NetBSD: distinfo,v 1.54 2017/10/17 14:47:36 fhajny Exp $ SHA1 (erlang/otp_src_20.1.tar.gz) = 8facdb71696118b5c58238e57106ca23d14166d0 RMD160 (erlang/otp_src_20.1.tar.gz) = 65ed1ad934dea860f277648663db714881b9cb97 @@ -9,5 +9,6 @@ SHA1 (patch-ay) = f5f1accdb11e404ba4779b056228431e3080e4cd SHA1 (patch-erts_configure) = dba8d72974e8c493cf2bb90e6b149a84dd9073da SHA1 (patch-erts_emulator_drivers_common_inet__drv.c) = b7784e5e8e025ca75d5279a63e0cb3f74c54bd6a SHA1 (patch-erts_emulator_sys_common_erl__poll.c) = b2068ed4f1994407cb2ec3cd10220bebae85b01d +SHA1 (patch-lib_compiler_src_beam__validator.erl) = 57cf4823f57bed333f7c2901509143bbba61cfbd SHA1 (patch-lib_crypto_c__src_Makefile.in) = 0ab1db36c03999524e933d60f913ff5608b0622e SHA1 (patch-make_output.mk.in) = d7b3da58bfb471d52c41242e2a03d1598ce24e62 diff --git a/lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl b/lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl new file mode 100644 index 00000000000..8ca926424c1 --- /dev/null +++ b/lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl @@ -0,0 +1,24 @@ +$NetBSD: patch-lib_compiler_src_beam__validator.erl,v 1.1 2017/10/17 14:47:36 fhajny Exp $ + +Fix incorrect internal consistency failure for binary matching code. +Backport from trunk as per https://bugs.erlang.org/browse/ERL-490. + +--- lib/compiler/src/beam_validator.erl.orig 2017-09-25 19:10:38.000000000 +0000 ++++ lib/compiler/src/beam_validator.erl +@@ -1430,13 +1430,13 @@ merge_types(bool, {atom,A}) -> + merge_bool(A); + merge_types({atom,A}, bool) -> + merge_bool(A); +-merge_types(#ms{id=Id1,valid=B0,slots=Slots}, +- #ms{id=Id2,valid=B1,slots=Slots}) -> ++merge_types(#ms{id=Id1,valid=B1,slots=Slots1}, ++ #ms{id=Id2,valid=B2,slots=Slots2}) -> + Id = if + Id1 =:= Id2 -> Id1; + true -> make_ref() + end, +- #ms{id=Id,valid=B0 band B1,slots=Slots}; ++ #ms{id=Id,valid=B1 band B2,slots=min(Slots1, Slots2)}; + merge_types(T1, T2) when T1 =/= T2 -> + %% Too different. All we know is that the type is a 'term'. + term. |