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)
+
+  
+

Reply via email to