Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ocaml-parmap for openSUSE:Factory checked in at 2021-05-10 15:39:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml-parmap (Old) and /work/SRC/openSUSE:Factory/.ocaml-parmap.new.2988 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml-parmap" Mon May 10 15:39:12 2021 rev:10 rq:891918 version:1.2.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml-parmap/ocaml-parmap.changes 2021-04-29 01:38:29.086585614 +0200 +++ /work/SRC/openSUSE:Factory/.ocaml-parmap.new.2988/ocaml-parmap.changes 2021-05-10 15:41:57.756949544 +0200 @@ -1,0 +2,6 @@ +Sun May 2 21:22:23 UTC 2021 - [email protected] + +- Update to version 1.2.3 + follow upstream versioning + +------------------------------------------------------------------- Old: ---- ocaml-parmap-20210423.2800b78.tar.xz New: ---- ocaml-parmap-1.2.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml-parmap.spec ++++++ --- /var/tmp/diff_new_pack.WLHWEF/_old 2021-05-10 15:41:58.108948167 +0200 +++ /var/tmp/diff_new_pack.WLHWEF/_new 2021-05-10 15:41:58.108948167 +0200 @@ -17,7 +17,7 @@ Name: ocaml-parmap -Version: 20210423.2800b78 +Version: 1.2.3 Release: 0 %{?ocaml_preserve_bytecode} Summary: Multicore architecture exploitation for OCaml programs with minimal modifications @@ -26,7 +26,7 @@ URL: https://opam.ocaml.org/packages/parmap Source0: %{name}-%{version}.tar.xz BuildRequires: ocaml -BuildRequires: ocaml-dune +BuildRequires: ocaml-dune >= 2.7 BuildRequires: ocaml-rpm-macros >= 20210409 BuildRequires: ocamlfind(bigarray) BuildRequires: ocamlfind(dune.configurator) ++++++ _service ++++++ --- /var/tmp/diff_new_pack.WLHWEF/_old 2021-05-10 15:41:58.140948042 +0200 +++ /var/tmp/diff_new_pack.WLHWEF/_new 2021-05-10 15:41:58.140948042 +0200 @@ -1,11 +1,13 @@ <services> <service name="tar_scm" mode="disabled"> <param name="filename">ocaml-parmap</param> - <param name="revision">2800b78e9e10ffffafc3cbb0ffaed646ab71cc6a</param> + <param name="revision">f140dbc8b05aa3d341c70436a1920a06df9a0ed4</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://github.com/rdicosmo/parmap.git</param> - <param name="versionformat">%cd.%h</param> + <param name="versionformat">@PARENT_TAG@</param> + <param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param> + <param name="versionrewrite-replacement">\1</param> </service> <service name="recompress" mode="disabled"> <param name="file">*.tar</param> ++++++ ocaml-parmap-20210423.2800b78.tar.xz -> ocaml-parmap-1.2.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/.gitignore new/ocaml-parmap-1.2.3/.gitignore --- old/ocaml-parmap-20210423.2800b78/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/ocaml-parmap-1.2.3/.gitignore 2021-05-02 19:11:46.000000000 +0200 @@ -0,0 +1,5 @@ +log* +*~ +_build +.merlin +parmap.install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/CHANGES new/ocaml-parmap-1.2.3/CHANGES --- old/ocaml-parmap-20210423.2800b78/CHANGES 2021-04-23 12:12:28.000000000 +0200 +++ new/ocaml-parmap-1.2.3/CHANGES 2021-05-02 19:11:46.000000000 +0200 @@ -1,3 +1,11 @@ +2021/05/02 (RDC) + Update dune related files (thanks to Gabriel Radanne). + Fixed file descriptor leakage (read pipe end not closed in mapper), reported by Julia Lawall. + +2021/04/24 (RDC) + Include fix in bytearray.ml to avoid corruption on 32bit architectures + (drops support for OCaml 4.02.3, thanks to Jerry James) + 2021/01/09 (RDC) Major enhancement: add support for returning results in the right order from the calls to parmap/parmapi/array_parmap/array_parmapi even when the @@ -7,7 +15,7 @@ 2020/01/23 (RDC) Integrated major rewriting of the build system, moving to dune; - dropped compatibility with pre-4.02 OCaml versions. + dropped compatibility with pre-4.02 OCaml versions. Thanks to Gabriel Radanne. 2011/11/30 (RDC) Version 0.9.8 contains the following major new features w.r.t. 0.9.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/dune-project new/ocaml-parmap-1.2.3/dune-project --- old/ocaml-parmap-20210423.2800b78/dune-project 2021-04-23 12:12:28.000000000 +0200 +++ new/ocaml-parmap-1.2.3/dune-project 2021-05-02 19:11:46.000000000 +0200 @@ -1,4 +1,4 @@ -(lang dune 1.10) +(lang dune 2.7) (name parmap) @@ -22,7 +22,6 @@ (description "Parmap is a minimalistic library allowing to exploit multicore\narchitecture for OCaml programs with minimal modifications: if you\nwant to use your many cores to accelerate an operation which happens\nto be a map, fold or map/fold (map-reduce), just use Parmap\226\128\153s parmap,\nparfold and parmapfold primitives in place of the standard List.map\nand friends, and specify the number of subprocesses to use by the\noptional parameter ~ncores.") (depends - dune dune-configurator base-bigarray base-unix diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/parmap.opam new/ocaml-parmap-1.2.3/parmap.opam --- old/ocaml-parmap-20210423.2800b78/parmap.opam 2021-04-23 12:12:28.000000000 +0200 +++ new/ocaml-parmap-1.2.3/parmap.opam 2021-05-02 19:11:46.000000000 +0200 @@ -1,17 +1,5 @@ # This file is generated by dune, edit dune-project instead opam-version: "2.0" -build: [ - ["dune" "subst"] {pinned} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} - ["dune" "build" "-p" name "@doc"] {with-doc} -] -maintainer: ["Roberto Di Cosmo <[email protected]>"] -authors: ["Roberto Di Cosmo <[email protected]>"] -bug-reports: "https://github.com/rdicosmo/parmap/issues" -homepage: "https://github.com/rdicosmo/parmap" -license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception" -dev-repo: "git+https://github.com/rdicosmo/parmap.git" synopsis: "Minimalistic library allowing to exploit multicore architecture" description: """ Parmap is a minimalistic library allowing to exploit multicore @@ -21,10 +9,31 @@ parfold and parmapfold primitives in place of the standard List.map and friends, and specify the number of subprocesses to use by the optional parameter ~ncores.""" +maintainer: ["Roberto Di Cosmo <[email protected]>"] +authors: ["Roberto Di Cosmo <[email protected]>"] +license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/rdicosmo/parmap" +bug-reports: "https://github.com/rdicosmo/parmap/issues" depends: [ - "dune" + "dune" {>= "2.7"} "dune-configurator" "base-bigarray" "base-unix" "ocaml" {>= "4.03.0"} + "odoc" {with-doc} +] +build: [ + ["dune" "subst"] {dev} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] ] +dev-repo: "git+https://github.com/rdicosmo/parmap.git" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/src/dune new/ocaml-parmap-1.2.3/src/dune --- old/ocaml-parmap-20210423.2800b78/src/dune 2021-04-23 12:12:28.000000000 +0200 +++ new/ocaml-parmap-1.2.3/src/dune 2021-05-02 19:11:46.000000000 +0200 @@ -3,7 +3,7 @@ (synopsis "Parallel map primitive for multicores") (wrapped false) (libraries bigarray unix) - (c_names bytearray_stubs setcore_stubs)) + (foreign_stubs (language c) (names bytearray_stubs setcore_stubs))) (documentation (package parmap) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/src/parmap.ml new/ocaml-parmap-1.2.3/src/parmap.ml --- old/ocaml-parmap-20210423.2800b78/src/parmap.ml 2021-04-23 12:12:28.000000000 +0200 +++ new/ocaml-parmap-1.2.3/src/parmap.ml 2021-05-02 19:11:46.000000000 +0200 @@ -203,6 +203,7 @@ ln !ncores chunksize; (* create descriptors to mmap *) let fdarr=Array.init !ncores (fun _ -> Utils.tempfd()) in + let statusfdarr=Array.init !ncores (fun _ -> Utils.tempfd()) in (* run children *) run_many !ncores ~in_subprocess:(fun i -> init i; (* call initialization function *) @@ -214,15 +215,23 @@ "error at index j=%d in (%d,%d), chunksize=%d of a total of \ %d got exception %s on core %d \n%!" j lo hi chunksize (hi-lo+1) (Printexc.to_string e) i; + marshal statusfdarr.(i) false; exit 1 in let v = compute al lo hi opid exc_handler in + marshal statusfdarr.(i) true; marshal fdarr.(i) v); (* read in all data *) let res = ref [] in + let success = ref true in + (* check whether an exception has been raised in the subprocesses *) + for i = 0 to !ncores - 1 do + success:= !success && ((unmarshal statusfdarr.(i)):bool); + done; + if not !success then failwith "Aborting computation due to exception(s) raised in the workers"; (* iterate in reverse order, to accumulate in the right order *) for i = 0 to !ncores - 1 do - res:= ((unmarshal fdarr.((!ncores-1)-i)):'d)::!res; + res:= ((unmarshal fdarr.((!ncores-1)-i)):'d)::!res; done; (* collect all results *) collect !res @@ -390,6 +399,8 @@ for i = 0 to !ncores-1 do res:= ((unmarshal fdarr.((!ncores-1)-i)):'d)::!res; done; + (* close read pipe end *) + Unix.close pipeup_rd; (* collect all results *) collect !res end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/tests/dune new/ocaml-parmap-1.2.3/tests/dune --- old/ocaml-parmap-20210423.2800b78/tests/dune 2021-04-23 12:12:28.000000000 +0200 +++ new/ocaml-parmap-1.2.3/tests/dune 2021-05-02 19:11:46.000000000 +0200 @@ -6,9 +6,9 @@ (libraries parmap)) (tests - (names floatscale simplescale simplescale_array simplescalefold + (names testexceptions floatscale simplescale simplescale_array simplescalefold simplescalemapfold) - (modules floatscale simplescale simplescale_array simplescalefold + (modules testexceptions floatscale simplescale simplescale_array simplescalefold simplescalemapfold) (flags (:standard -w -35-27)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-parmap-20210423.2800b78/tests/testexceptions.ml new/ocaml-parmap-1.2.3/tests/testexceptions.ml --- old/ocaml-parmap-20210423.2800b78/tests/testexceptions.ml 1970-01-01 01:00:00.000000000 +0100 +++ new/ocaml-parmap-1.2.3/tests/testexceptions.ml 2021-05-02 19:11:46.000000000 +0200 @@ -0,0 +1,26 @@ +(**************************************************************************) +(* Sample use of Parmap, a simple library to perform Map computations on *) +(* a multi-core *) +(* *) +(* Author(s): Roberto Di Cosmo *) +(* *) +(* This program is free software: you can redistribute it and/or modify *) +(* it under the terms of the GNU General Public License as *) +(* published by the Free Software Foundation, either version 2 of the *) +(* License, or (at your option) any later version. *) +(**************************************************************************) + +Printf.eprintf "Testing capture of exception: this code should exit normally, without segfault.\n%!";; + +Parmap.debugging true;; + +let _ = + try + Parmap.parmap + (function x -> + failwith "should not crash") + (Parmap.L [1;2;3;4;5]) + with _ -> (Printf.printf "Exceptions are properly catched, no SIGSEV"; exit 0) + + +
