dev-ml/reason-parser: Bump to 1.13.4 and backport upstream fix for latest menhir...
authorAlexis Ballier <aballier@gentoo.org>
Thu, 20 Apr 2017 09:33:15 +0000 (11:33 +0200)
committerAlexis Ballier <aballier@gentoo.org>
Thu, 20 Apr 2017 09:33:15 +0000 (11:33 +0200)
Package-Manager: Portage-2.3.5, Repoman-2.3.2

dev-ml/reason-parser/Manifest
dev-ml/reason-parser/files/menhir.patch [new file with mode: 0644]
dev-ml/reason-parser/reason-parser-1.13.4.ebuild [new file with mode: 0644]

index 8a45cb0d2a8412734d8806f334a7054bac0197fb..4d9702169576a6c1c8261b2c1d759fa25c2ef6b7 100644 (file)
@@ -1 +1,2 @@
 DIST reason-parser-1.13.3.tar.gz 10253108 SHA256 b92840f8238dd6266c5678da3e4dc832776bcc98990ac47773020e34dce708a6 SHA512 82398fbbf72bcadfc868e5f33e8666ef80ef610f8313d08bc16593944569b7a16693fcc6397a117518bf8e32f71083f0ac4a416112f97cd220715f4293136b84 WHIRLPOOL a82dd8e28a012ed0716fba6bc79eee849110bfb42cd8221eb15847cadae90d62d909e635f3da465c6220382d6eee62f2f69a739d96d3d6a5baddc58623cd059e
+DIST reason-parser-1.13.4.tar.gz 6856260 SHA256 07b0f4a471b570b9f6ee699016d2fb9d98788d1ccfb428a2b2f20f1ee6f42b9e SHA512 ee2270ffbb3c3c818aafec2ef0f23f3741e66e5b077b3a84b49b357b003d24d639165c521bf0afe92bf81ef626ed6d863ea6d097b83a2e1b5a0349a679cc8c7f WHIRLPOOL ffc8b96ce5b653c1d78877f0422315cce3d42615b88bb6f09f52d3af9799fe30ed221094a5acbc49448f0d1e865b1702a2b5956a8d327a22b2db01eb33aa0da7
diff --git a/dev-ml/reason-parser/files/menhir.patch b/dev-ml/reason-parser/files/menhir.patch
new file mode 100644 (file)
index 0000000..6c028ee
--- /dev/null
@@ -0,0 +1,36 @@
+commit 2c15b2f2783b6ab44fe09387019f0918146c2895
+Author: Jason Rose <jasoncrose+github_jasonrose@gmail.com>
+Date:   Wed Apr 19 17:49:42 2017 -0700
+
+    Supporting menhir.20170416 (#1226)
+
+diff --git a/reason-parser/src/reason_toolchain.ml b/reason-parser/src/reason_toolchain.ml
+index 6c70d93..7f98586 100644
+--- a/reason-parser/src/reason_toolchain.ml
++++ b/reason-parser/src/reason_toolchain.ml
+@@ -506,20 +506,16 @@ module JS_syntax = struct
+        if in_error then
+          begin
+            match supplier.last_token with
++           | None -> assert false
+            | Some triple ->
+               (* We just recovered from the error state, try the original token again *)
+               let checkpoint_with_previous_token = I.offer checkpoint triple in
+-              let accept_new = I.loop_test
+-                                 (fun _ _ -> true)
+-                                 checkpoint_with_previous_token
+-                                 false
+-              in
+-              if accept_new then
+-                loop_handle_yacc supplier false checkpoint_with_previous_token
+-              else
++              match I.shifts checkpoint_with_previous_token with
++              | None ->
+                 (* The original token still fail to be parsed, discard *)
+                 loop_handle_yacc supplier false checkpoint
+-           | None -> assert false
++              | Some env ->
++                loop_handle_yacc supplier false checkpoint_with_previous_token
+          end
+        else
+          let triple = read supplier in
diff --git a/dev-ml/reason-parser/reason-parser-1.13.4.ebuild b/dev-ml/reason-parser/reason-parser-1.13.4.ebuild
new file mode 100644 (file)
index 0000000..c02afbc
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit findlib eutils
+
+DESCRIPTION="Meta Language Toolchain"
+HOMEPAGE="https://github.com/facebook/reason"
+SRC_URI="https://github.com/facebook/reason/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="+ocamlopt"
+
+DEPEND="
+       dev-lang/ocaml:=[ocamlopt?]
+       >=dev-ml/menhir-20170418:=
+       dev-ml/merlin-extend:=
+       dev-ml/result:=
+       dev-ml/topkg:=
+       dev-ml/ocaml-migrate-parsetree:=
+       dev-ml/ppx_tools_versioned:=
+"
+RDEPEND="${DEPEND}"
+DEPEND="${DEPEND}
+       dev-ml/ocamlbuild
+       dev-ml/opam
+"
+
+S="${WORKDIR}/reason-${PV}/${PN}"
+
+src_prepare() {
+       epatch "${FILESDIR}/menhir.patch"
+       default
+}
+
+src_compile() {
+       emake compile_error
+       ocamlbuild -package topkg pkg/build.native || die
+       ./build.native build \
+               --native "$(usex ocamlopt true false)" \
+               --native-dynlink "$(usex ocamlopt true false)" \
+               || die
+}
+
+src_install() {
+       opam-installer -i \
+               --prefix="${ED}/usr" \
+               --libdir="${D}/$(ocamlc -where)" \
+               --docdir="${ED}/usr/share/doc/${PF}" \
+               --mandir="${ED}/usr/share/man" \
+               ${PN}.install || die
+}