+++ /dev/null
-diff -uNr sexplib-113.33.00/_oasis sexplib-113.33.00+4.03/_oasis
---- sexplib-113.33.00/_oasis 2016-03-09 16:44:55.000000000 +0100
-+++ sexplib-113.33.00+4.03/_oasis 2016-03-22 15:13:51.000000000 +0100
-@@ -1,8 +1,8 @@
- OASISFormat: 0.4
--OCamlVersion: >= 4.02.3
-+OCamlVersion: >= 4.03.0
- FindlibVersion: >= 1.3.2
- Name: sexplib
--Version: 113.33.00
-+Version: 113.33.00+4.03
- Synopsis: Library for serializing OCaml values to and from S-expressions
- Authors: Jane Street Group, LLC <opensource@janestreet.com>
- Copyrights: (C) 2005-2016 Jane Street Group LLC <opensource@janestreet.com>
-diff -uNr sexplib-113.33.00/src/conv.ml sexplib-113.33.00+4.03/src/conv.ml
---- sexplib-113.33.00/src/conv.ml 2016-03-09 16:44:55.000000000 +0100
-+++ sexplib-113.33.00+4.03/src/conv.ml 2016-03-22 15:13:51.000000000 +0100
-@@ -185,7 +185,7 @@
-
- (* [Obj.extension_id] works on both the exception itself, and the extension slot of the
- exception. *)
-- let rec clean_up_handler (slot : Obj.t) =
-+ let rec clean_up_handler (slot : extension_constructor) =
- let id = Obj.extension_id slot in
- let old_exn_id_map = !exn_id_map in
- let new_exn_id_map = Exn_ids.remove id old_exn_id_map in
-@@ -196,7 +196,7 @@
- exn_id_map := new_exn_id_map
-
- let add_auto ?(finalise = true) exn sexp_of_exn =
-- let id = Obj.extension_id exn in
-+ let id = Obj.extension_id (Obj.extension_constructor exn) in
- let rec loop () =
- let old_exn_id_map = !exn_id_map in
- let new_exn_id_map = Exn_ids.add id sexp_of_exn old_exn_id_map in
-@@ -205,13 +205,18 @@
- loop ()
- else begin
- exn_id_map := new_exn_id_map;
-- if finalise then Gc.finalise clean_up_handler (Obj.extension_slot exn)
-+ if finalise then
-+ try
-+ Gc.finalise clean_up_handler (Obj.extension_constructor exn)
-+ with Invalid_argument _ ->
-+ (* Pre-allocated extension constructors cannot be finalised *)
-+ ()
- end
- in
- loop ()
-
- let find_auto exn =
-- let id = Obj.extension_id exn in
-+ let id = Obj.extension_id (Obj.extension_constructor exn) in
- match Exn_ids.find id !exn_id_map with
- | exception Not_found -> None
- | sexp_of_exn -> Some (sexp_of_exn exn)
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Library for automated conversion of OCaml-values to and from S-expressions"
+HOMEPAGE="https://github.com/janestreet/sexplib"
+SRC_URI="https://github.com/janestreet/sexplib/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-lang/ocaml:="
+DEPEND="${RDEPEND} dev-ml/opam dev-ml/jbuilder"
+
+src_test() {
+ jbuilder runtest || die
+}
+
+src_install() {
+ opam-installer -i \
+ --prefix="${ED}/usr" \
+ --libdir="${D}/$(ocamlc -where)" \
+ --docdir="${ED}/usr/share/doc/${PF}" \
+ ${PN}.install || die
+ dodoc CHANGES.md README.org
+}
+++ /dev/null
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-OASIS_BUILD_DOCS=1
-OASIS_BUILD_TESTS=1
-
-inherit oasis eutils
-
-DESCRIPTION="Library for automated conversion of OCaml-values to and from S-expressions"
-HOMEPAGE="https://bitbucket.org/yminsky/ocaml-core/wiki/Home"
-SRC_URI="http://ocaml.janestreet.com/ocaml-core/${PV%.*}/files/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0/${PV}"
-KEYWORDS="~amd64"
-IUSE=""
-
-RDEPEND=">=dev-ml/type-conv-113.00.00:="
-DEPEND="${RDEPEND} dev-ml/opam"
-
-src_prepare() {
- has_version '>=dev-lang/ocaml-4.03' && epatch "${FILESDIR}/oc43.patch"
-}
-
-src_configure() {
- emake setup.exe
- OASIS_SETUP_COMMAND="./setup.exe" oasis_src_configure
-}
-
-src_compile() {
- emake
-}
-
-src_install() {
- opam-installer -i \
- --prefix="${ED}/usr" \
- --libdir="${D}/$(ocamlc -where)" \
- --docdir="${ED}/usr/share/doc/${PF}" \
- ${PN}.install || die
- dodoc CHANGES.md README.org
-}