dev-ml/core: bump to 113.33.02 and fix build with ocaml 4.03
authorAlexis Ballier <aballier@gentoo.org>
Tue, 3 May 2016 18:03:43 +0000 (20:03 +0200)
committerAlexis Ballier <aballier@gentoo.org>
Tue, 3 May 2016 18:29:42 +0000 (20:29 +0200)
Package-Manager: portage-2.2.28
Signed-off-by: Alexis Ballier <aballier@gentoo.org>
dev-ml/core/Manifest
dev-ml/core/core-113.33.02.ebuild [new file with mode: 0644]
dev-ml/core/files/oc43.patch [new file with mode: 0644]

index 6c39ee5bb48a1ffecaaa8e3463916318f4eb0b47..817ede8550a2ee5fa8b55fc57bdcb12eaccdcdbc 100644 (file)
@@ -2,3 +2,4 @@ DIST core-113.24.00.tar.gz 806394 SHA256 66ab36a4d7b78a4710f992c670777919ae329dc
 DIST core-113.24.01.tar.gz 806424 SHA256 16470035f9e21e8accdaa3286c3e353f60c485402323644fd231412fccf6d9c6 SHA512 8bfe45a1d0a1973ae7cd317fd6c71d2bb3a6170e432f735e6504586cd4d51b29dec972588478f4abdc7d20d6967ca58afa3ecb5a18871c807437bf8b73e063ec WHIRLPOOL 3bbc8c54140d6277885c37a525af1467ea1c30c7bc4d9dd55738432eca7e4460fed55c7499aad35a46cff324492b0797c40919f926856d6c9d5cc7fd7728705d
 DIST core-113.24.02.tar.gz 806413 SHA256 c5a4821df9719aa0a6b87b546730de445b698cc86b28046e7b5883cb65f02e29 SHA512 7f2f3e8524704ce7d29d55904f62cbf6c5b932275171b4b03709fcbdb98954cb2cab8427f06c7d6ee5ba396ac58e1077421162d96aa91b8e182f3e0f2d07cac4 WHIRLPOOL decd161a3aeb9573638c8cbec0c126d83f1a3f4eedc9fc06d53c02ff05eef18a7be781cfde05aac730c7683eed186f14f78cf1b80600843a1b3ffceec712604d
 DIST core-113.33.00.tar.gz 806877 SHA256 cca2511bb16ee5788daf42cdeec90c75698c07a995a0fde5c27373a7993c9a6b SHA512 5ee4e9d6dcc078a518d947d09fc6adfa7f79d299539e79d3b8e3b86c6b3c494144f42b755dfb04165e3af68058c87d6a567f7e94913575d9f371a21f63bdfc9e WHIRLPOOL 50719bf6f72e3ef6f9be477c24e5b9756793c69864c0540ae8508789f95833f0247ee77f86879b44f15ac19d075b25f9bc55e9e049ba51dd9606351dbe74b121
+DIST core-113.33.02.tar.gz 806999 SHA256 42f474e7c0b907bc3cd10defbc2de49547aa8c23bb86e39aa7abcc6ea1ff5c06 SHA512 da498c116dc4844455370c28b4cdab9f3dcc576a99f82ed7795cb7a8e65de01364f048588d4be6ca80b979f379d8bc4b4ab46eee17b557bdb75cac1e585badea WHIRLPOOL cb647f13482d4bef7b83fce35434acdeaa2c5df6ebf999b41ba2c8b5dc6754ddf4939d89239be79e120113570bfdd0e839feb7374d9e25457379bfdd1092a3c0
diff --git a/dev-ml/core/core-113.33.02.ebuild b/dev-ml/core/core-113.33.02.ebuild
new file mode 100644 (file)
index 0000000..80e1a06
--- /dev/null
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+OASIS_BUILD_DOCS=1
+OASIS_BUILD_TESTS=1
+
+inherit eutils oasis
+
+MY_P=${P/_/\~}
+DESCRIPTION="Jane Street's alternative to the standard library"
+HOMEPAGE="http://www.janestreet.com/ocaml"
+SRC_URI="http://ocaml.janestreet.com/ocaml-core/${PV%.*}/files/${P}.tar.gz"
+
+LICENSE="LGPL-2.1-with-linking-exception"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+       >=dev-ml/bin-prot-113.24.00:=
+       >=dev-ml/core_kernel-113.24.00:=
+       >=dev-ml/fieldslib-113.24.00:=
+       dev-ml/ppx_assert:=
+       dev-ml/ppx_bench:=
+       dev-ml/ppx_driver:=
+       dev-ml/ppx_expect:=
+       dev-ml/ppx_inline_test:=
+       dev-ml/ppx_jane:=
+       >=dev-ml/sexplib-113.24.00:=
+       dev-ml/typerep:=
+       dev-ml/variantslib:=
+"
+DEPEND="${RDEPEND}"
+
+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.md
+}
diff --git a/dev-ml/core/files/oc43.patch b/dev-ml/core/files/oc43.patch
new file mode 100644 (file)
index 0000000..5e44a44
--- /dev/null
@@ -0,0 +1,279 @@
+diff -uNr core-113.33.02/_oasis core-113.33.02+4.03/_oasis
+--- core-113.33.02/_oasis      2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/_oasis 2016-04-06 12:42:48.000000000 +0200
+@@ -1,8 +1,8 @@
+ OASISFormat:           0.4
+-OCamlVersion:          >= 4.02.3
++OCamlVersion:          >= 4.03.0
+ FindlibVersion:        >= 1.3.2
+ Name:                  core
+-Version:               113.33.02
++Version:               113.33.02+4.03
+ Synopsis:              Industrial strength alternative to OCaml's standard library
+ Authors:               Jane Street Group, LLC <opensource@janestreet.com>
+ Copyrights:            (C) 2008-2016 Jane Street Group LLC <opensource@janestreet.com>
+diff -uNr core-113.33.02/opam core-113.33.02+4.03/opam
+--- core-113.33.02/opam        2016-04-06 11:12:24.000000000 +0200
++++ core-113.33.02+4.03/opam   2016-04-06 12:54:27.000000000 +0200
+@@ -26,4 +26,4 @@
+   "typerep"
+   "variantslib"
+ ]
+-available: [ ocaml-version >= "4.02.3" ]
++available: [ ocaml-version >= "4.03.0" ]
+diff -uNr core-113.33.02/src/bigstring.ml core-113.33.02+4.03/src/bigstring.ml
+--- core-113.33.02/src/bigstring.ml    2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/bigstring.ml       2016-04-06 12:42:48.000000000 +0200
+@@ -29,7 +29,7 @@
+ let length = Array1.dim
+-external is_mmapped : t -> bool = "bigstring_is_mmapped_stub" "noalloc"
++external is_mmapped : t -> bool = "bigstring_is_mmapped_stub" [@@noalloc]
+ let init n ~f =
+   let t = create n in
+@@ -168,7 +168,7 @@
+ external unsafe_send_nonblocking_no_sigpipe
+   : file_descr -> pos : int -> len : int -> t -> Syscall_result.Int.t
+-  = "bigstring_send_nonblocking_no_sigpipe_stub" "noalloc"
++  = "bigstring_send_nonblocking_no_sigpipe_stub" [@@noalloc]
+ let send_nonblocking_no_sigpipe fd ?(pos = 0) ?len bstr =
+   let len = get_opt_len bstr ~pos len in
+diff -uNr core-113.33.02/src/core_sys.ml core-113.33.02+4.03/src/core_sys.ml
+--- core-113.33.02/src/core_sys.ml     2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/core_sys.ml        2016-04-06 12:42:48.000000000 +0200
+@@ -83,7 +83,7 @@
+ *)
+ external executing_bytecode
+   : unit -> unit -> unit -> unit -> unit -> unit -> bool
+-  = "executing_bytecode" "not_executing_bytecode" "noalloc"
++  = "executing_bytecode" "not_executing_bytecode" [@@noalloc]
+ let execution_mode () =
+   if executing_bytecode () () () () () () then `Bytecode else `Native
+@@ -95,7 +95,7 @@
+ (* returns size, in bits, of an [int] type in C *)
+-external c_int_size : unit -> int = "c_int_size" "noalloc"
++external c_int_size : unit -> int = "c_int_size" [@@noalloc]
+ let%test _ = let size = c_int_size () in size >= 16 && size <= Sys.word_size
+diff -uNr core-113.33.02/src/core_sys.mli core-113.33.02+4.03/src/core_sys.mli
+--- core-113.33.02/src/core_sys.mli    2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/core_sys.mli       2016-04-06 12:42:48.000000000 +0200
+@@ -134,7 +134,7 @@
+ (** [c_int_size] returns the number of bits in a C [int]. Note that this can be
+     different from [word_size]. For example, Linux x86-64 should have
+     [word_size = 64], but [c_int_size () = 32] *)
+-external c_int_size : unit -> int = "c_int_size" "noalloc"
++external c_int_size : unit -> int = "c_int_size" [@@noalloc]
+ (** Return the home directory, using the [HOME] environment variable if that is defined,
+     and if not, using the effective user's information in the Unix password database. *)
+diff -uNr core-113.33.02/src/core_unix.ml core-113.33.02+4.03/src/core_unix.ml
+--- core-113.33.02/src/core_unix.ml    2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/core_unix.ml       2016-04-06 12:42:48.000000000 +0200
+@@ -393,7 +393,7 @@
+ (* Signal handling *)
+-external abort : unit -> 'a = "unix_abort" "noalloc"
++external abort : unit -> 'a = "unix_abort" [@@noalloc]
+ (* User id, group id management *)
+@@ -1160,6 +1160,11 @@
+     (fun () -> [("src", atom src); ("dst", atom dst)])
+ ;;
++let src_dst' f ?to_dir ~src ~dst =
++  improve (fun () -> f ?to_dir ~src ~dst)
++    (fun () -> [("src", atom src); ("dst", atom dst)])
++;;
++
+ let unlink = unary_filename Unix.unlink
+ let rename = src_dst Unix.rename
+@@ -1554,7 +1559,7 @@
+   Exit_or_signal.of_unix (Unix.close_process_full (c.C.stdout, c.C.stdin, c.C.stderr))
+ ;;
+-let symlink = src_dst Unix.symlink
++let symlink = src_dst' Unix.symlink
+ let readlink = unary_filename Unix.readlink
+ module Select_fds = struct
+diff -uNr core-113.33.02/src/core_unix.mli core-113.33.02+4.03/src/core_unix.mli
+--- core-113.33.02/src/core_unix.mli   2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/core_unix.mli      2016-04-06 12:42:48.000000000 +0200
+@@ -910,7 +910,7 @@
+ (** [symlink source dest] creates the file [dest] as a symbolic link
+    to the file [source]. *)
+-val symlink : src:string -> dst:string -> unit
++val symlink : ?to_dir:bool -> src:string -> dst:string -> unit
+ (** Read the contents of a link. *)
+ val readlink : string -> string
+@@ -2007,7 +2007,7 @@
+    caught and the signal handler does not return.  If the SIGABRT signal is
+    blocked or ignored, the abort() function will still override it.
+ *)
+-external abort : unit -> _ = "unix_abort" "noalloc"
++external abort : unit -> _ = "unix_abort" [@@noalloc]
+ (** {2 User id, group id} *)
+diff -uNr core-113.33.02/src/iobuf.ml core-113.33.02+4.03/src/iobuf.ml
+--- core-113.33.02/src/iobuf.ml        2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/iobuf.ml   2016-04-06 12:42:48.000000000 +0200
+@@ -1094,7 +1094,7 @@
+     -> (read_write, seek) t array
+     -> Recvmmsg_context.ctx
+     -> Unix.Syscall_result.Int.t
+-  = "iobuf_recvmmsg_assume_fd_is_nonblocking_stub" "noalloc"
++  = "iobuf_recvmmsg_assume_fd_is_nonblocking_stub" [@@noalloc]
+ let recvmmsg_assume_fd_is_nonblocking fd { Recvmmsg_context. iobufs; ctx; _ } =
+   unsafe_recvmmsg_assume_fd_is_nonblocking fd iobufs ctx
+diff -uNr core-113.33.02/src/linux_ext.ml core-113.33.02+4.03/src/linux_ext.ml
+--- core-113.33.02/src/linux_ext.ml    2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/linux_ext.ml       2016-04-06 12:42:48.000000000 +0200
+@@ -320,7 +320,7 @@
+     -> initial  : Int63.t
+     -> interval : Int63.t
+     -> Syscall_result.Unit.t
+-    = "linux_timerfd_settime" "noalloc"
++    = "linux_timerfd_settime" [@@noalloc]
+   let%test_unit "unsafe_timerfd_settime returning errno" =
+     let result =
+@@ -683,13 +683,13 @@
+   type ready_events = Bigstring.t
+   external epoll_sizeof_epoll_event
+-    : unit -> int = "linux_epoll_sizeof_epoll_event" "noalloc"
++    : unit -> int = "linux_epoll_sizeof_epoll_event" [@@noalloc]
+   external epoll_offsetof_readyfd
+-    : unit -> int = "linux_epoll_offsetof_readyfd" "noalloc"
++    : unit -> int = "linux_epoll_offsetof_readyfd" [@@noalloc]
+   external epoll_offsetof_readyflags
+-    : unit -> int = "linux_epoll_offsetof_readyflags" "noalloc"
++    : unit -> int = "linux_epoll_offsetof_readyflags" [@@noalloc]
+   let sizeof_epoll_event  = epoll_sizeof_epoll_event ()
+   let offsetof_readyfd    = epoll_offsetof_readyfd ()
+diff -uNr core-113.33.02/src/syslog.ml core-113.33.02+4.03/src/syslog.ml
+--- core-113.33.02/src/syslog.ml       2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/syslog.ml  2016-04-06 12:42:48.000000000 +0200
+@@ -57,8 +57,8 @@
+ external core_syslog_openlog : string option -> int -> int -> unit = "core_syslog_openlog"
+ external core_syslog_syslog : int -> string -> unit = "core_syslog_syslog"
+-external core_syslog_closelog : unit -> unit = "core_syslog_closelog" "noalloc"
+-external core_syslog_setlogmask : int -> unit = "core_syslog_setlogmask" "noalloc"
++external core_syslog_closelog : unit -> unit = "core_syslog_closelog" [@@noalloc]
++external core_syslog_setlogmask : int -> unit = "core_syslog_setlogmask" [@@noalloc]
+ let openlog ?id ?(options = []) ?(facility = Facility.USER) () =
+   core_syslog_openlog id (Open_option.mask options) (Facility.to_int facility)
+diff -uNr core-113.33.02/src/time_stamp_counter.ml core-113.33.02+4.03/src/time_stamp_counter.ml
+--- core-113.33.02/src/time_stamp_counter.ml   2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/time_stamp_counter.ml      2016-04-06 12:42:48.000000000 +0200
+@@ -93,7 +93,7 @@
+ #if JSC_ARCH_SIXTYFOUR
+ (* noalloc on x86_64 only *)
+-external now : unit -> tsc = "tsc_get" "noalloc"
++external now : unit -> tsc = "tsc_get" [@@noalloc]
+ module Calibrator = struct
+diff -uNr core-113.33.02/src/time_stamp_counter.mli core-113.33.02+4.03/src/time_stamp_counter.mli
+--- core-113.33.02/src/time_stamp_counter.mli  2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/time_stamp_counter.mli     2016-04-06 12:42:48.000000000 +0200
+@@ -102,7 +102,7 @@
+ end
+ #if JSC_ARCH_SIXTYFOUR
+-external now : unit -> t = "tsc_get" "noalloc"
++external now : unit -> t = "tsc_get" [@@noalloc]
+ #else
+ external now : unit -> t = "tsc_get"
+ #endif
+diff -uNr core-113.33.02/src/unix_stubs.c core-113.33.02+4.03/src/unix_stubs.c
+--- core-113.33.02/src/unix_stubs.c    2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/src/unix_stubs.c       2016-04-06 12:42:48.000000000 +0200
+@@ -213,7 +213,7 @@
+    of strings and fill it will strings contained in the string array
+    [arg].  Pointers stored in the result points directly inside the
+    OCaml heap. */
+-extern char **cstringvect(value arg);
++extern char **cstringvect(value arg, char* cmdname);
+ /* Given v_prog, an O'Caml string value specifying a program name,
+    v_args, an O'Caml array specifying program arguments (not
+@@ -378,7 +378,7 @@
+     /* We don't bother saving/restoring the environment or freeing the
+        new one since we exit the process in case of error. */
+-    environ = cstringvect(v_env);
++    environ = cstringvect(v_env, "ml_create_process");
+     if (Is_block(v_working_dir))
+       working_dir = String_val(Field(v_working_dir, 0));
+diff -uNr core-113.33.02/test/bigstring_test.ml core-113.33.02+4.03/test/bigstring_test.ml
+--- core-113.33.02/test/bigstring_test.ml      2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/test/bigstring_test.ml 2016-04-06 12:42:48.000000000 +0200
+@@ -169,7 +169,7 @@
+           simple_conversion_test ~n:"single" "1";
+           repeat 50 (simple_conversion_test ~n:"random") sg;
+         );
+-
++(*
+      "input" >::
+        (fun () ->
+          fd_test really_read_test  ~n:"single" (bs_of_s "X");
+@@ -178,6 +178,7 @@
+          repeat 100 (fd_test really_read_test ~n:"random big")
+            (bsg ~size:(fun () -> 100 * png ()));
+        );
++*)
+      "destruction" >::
+        (fun () ->
+@@ -209,6 +210,7 @@
+            blit_test ~n:"random" ~src_pos ~dst_pos ~len (s1,s2))
+            (fun () -> (sg (), sg(),nng (), nng (), nng ()))
+        );
++(*
+       "really write/read pipe" >::
+          (fun () ->
+            let write_read_test = write_read_test Unix.pipe in
+@@ -239,6 +241,7 @@
+            repeat 500 (output_input_test ~n:"random big")
+              (bsg ~size:(fun () -> 100 * png ()));
+          );
++*)
+        "sub" >::
+          (fun () ->
+diff -uNr core-113.33.02/test/hashtbl/table_new_intf.ml core-113.33.02+4.03/test/hashtbl/table_new_intf.ml
+--- core-113.33.02/test/hashtbl/table_new_intf.ml      2016-04-06 11:06:40.000000000 +0200
++++ core-113.33.02+4.03/test/hashtbl/table_new_intf.ml 2016-04-06 12:42:48.000000000 +0200
+@@ -7,7 +7,7 @@
+   compare: 'k -> 'k -> int;
+ }
+-external hash_param : int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
++external hash_param : int -> int -> 'a -> int = "caml_hash_univ_param" [@@noalloc]
+ let poly = {
+   hash = (fun z -> hash_param 10 100 z);