svn commit: r320883 - in head/math/ocaml-ocamlgraph: . files

Johan van Selst johans at FreeBSD.org
Fri Jun 14 05:12:35 UTC 2013


Author: johans
Date: Fri Jun 14 05:12:34 2013
New Revision: 320883
URL: http://svnweb.freebsd.org/changeset/ports/320883

Log:
  - Update ocamlgraph to 1.8.3
  - This includes two patches from upstream,
    (will be included in the next release)
  
  Submitted by:	bf

Added:
  head/math/ocaml-ocamlgraph/files/
  head/math/ocaml-ocamlgraph/files/patch-20130523   (contents, props changed)
Modified:
  head/math/ocaml-ocamlgraph/Makefile
  head/math/ocaml-ocamlgraph/distinfo
  head/math/ocaml-ocamlgraph/pkg-plist

Modified: head/math/ocaml-ocamlgraph/Makefile
==============================================================================
--- head/math/ocaml-ocamlgraph/Makefile	Fri Jun 14 03:23:32 2013	(r320882)
+++ head/math/ocaml-ocamlgraph/Makefile	Fri Jun 14 05:12:34 2013	(r320883)
@@ -2,10 +2,10 @@
 # $FreeBSD$
 
 PORTNAME=	ocamlgraph
-PORTVERSION=	1.8.2
-PORTREVISION=	1
+PORTVERSION=	1.8.3
 CATEGORIES=	math
-MASTER_SITES=	http://ocamlgraph.lri.fr/download/
+MASTER_SITES=	http://ocamlgraph.lri.fr/download/ \
+		ftp://ftp.stack.nl/pub/users/johans/ocamlgraph/
 PKGNAMEPREFIX=	ocaml-
 
 MAINTAINER=	johans at FreeBSD.org
@@ -51,10 +51,6 @@ post-patch:
 .if empty(PORT_OPTIONS:MGUI)
 	# Override auto-detection
 	@${REINPLACE_CMD} -Ee 's/(LABLGTK2)=yes/\1=no/' ${WRKSRC}/configure
-.else
-	@${REINPLACE_CMD} -Ee 's@(\+|/)(lablgtk2)@\1site-lib/\2@' \
-		${WRKSRC}/configure \
-		${WRKSRC}/view_graph/Makefile
 .endif
 
 post-install:

Modified: head/math/ocaml-ocamlgraph/distinfo
==============================================================================
--- head/math/ocaml-ocamlgraph/distinfo	Fri Jun 14 03:23:32 2013	(r320882)
+++ head/math/ocaml-ocamlgraph/distinfo	Fri Jun 14 05:12:34 2013	(r320883)
@@ -1,2 +1,2 @@
-SHA256 (ocamlgraph-1.8.2.tar.gz) = e54ae60cd977a032854166dad56348d0fb76c6cd8e03e960af455268f0c8b5a6
-SIZE (ocamlgraph-1.8.2.tar.gz) = 249253
+SHA256 (ocamlgraph-1.8.3.tar.gz) = 0df7114b6b6a57125b9c998cc08870b6595fcfd6f2376a0e84cb666c1fd345bd
+SIZE (ocamlgraph-1.8.3.tar.gz) = 262876

Added: head/math/ocaml-ocamlgraph/files/patch-20130523
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/ocaml-ocamlgraph/files/patch-20130523	Fri Jun 14 05:12:34 2013	(r320883)
@@ -0,0 +1,100 @@
+diff --git CHANGES CHANGES
+index 5a8db64..8b53839 100644
+--- CHANGES
++++ CHANGES
+@@ -1,7 +1,10 @@
+ 
++ o Merge: fixed bug with vertices with no incoming nor outcoming edge.
++ o fixed compilation issue with OCaml 3.12.1
++
+ version 1.8.3, April 17, 2013
+ ---------------------------
+- o new module Merge implementing several different of merges of vertices and
++ o new module Merge implementing several different merges of vertices and
+    edges into a graph (contributed by Emmanuel Haucourt)
+  o fixed DOT parser (contributed by Alex Reece)
+  o Topological: fixed bug in presence of disjoint cycles; new implementation
+diff --git src/merge.ml src/merge.ml
+index c8581e3..563ab77 100644
+--- src/merge.ml
++++ src/merge.ml
+@@ -57,12 +57,26 @@ module B(B: Builder.S) = struct
+     in
+     B.G.fold_edges_e f g []
+       
++  (* – former buggy version – the case where v is neither the source nor the
++     destination of some arrow was not taken into account, so that vertices were
++     just removed
++
++     let merge_vertex g vl = match vl with 
++     | [] -> g
++     | _ :: vl' ->
++     let to_be_added = identify_extremities g vl in
++     let g = List.fold_left B.remove_vertex g vl' in
++     List.fold_left B.add_edge_e g to_be_added
++   *)
++
+   let merge_vertex g vl = match vl with 
+     | [] -> g
+-    | _ :: vl' ->
++    | v :: vl' ->
+       let to_be_added = identify_extremities g vl in
+       let g = List.fold_left B.remove_vertex g vl' in
+-      List.fold_left B.add_edge_e g to_be_added
++      if to_be_added = []
++      then B.add_vertex g v
++      else List.fold_left B.add_edge_e g to_be_added
+       
+   let merge_edges_e ?src ?dst g el = match el with
+     | e :: el' ->
+@@ -108,13 +122,32 @@ module B(B: Builder.S) = struct
+     in
+     let edges_to_be_merged = B.G.fold_edges_e collect_edge g [] in
+     merge_edges_e ?src ?dst g edges_to_be_merged
++
++  (* To deduce a comparison function on labels from a comparison function on
++     edges *)
++
++  let compare_label g =
++    try
++      let default_vertex =
++        let a_vertex_of_g = ref None in
++        (try B.G.iter_vertex (fun v -> a_vertex_of_g := Some v ; raise Exit) g 
++	 with Exit -> ());
++        match !a_vertex_of_g with 
++        | Some v -> v
++        | None -> raise Exit (*hence g is empty*) in
++      fun l1 l2 ->
++        let e1 = B.G.E.create default_vertex l1 default_vertex in
++        let e2 = B.G.E.create default_vertex l2 default_vertex in
++        B.G.E.compare e1 e2
++    with Exit -> (fun l1 l2 -> 0)
+       
+   let merge_isolabelled_edges g =
+     let module S = Set.Make(B.G.V) in
+     let do_meet s1 s2 = S.exists (fun x -> S.mem x s2) s1 in
+     let module M = 
+-	  (* TODO: using [compare] here is really suspicious *)
+-	  Map.Make(struct type t = B.G.E.label let compare = compare end) 
++	  (* TODO: using [compare] here is really suspicious ... 
++	     DONE – yet not so clean *)
++	  Map.Make(struct type t = B.G.E.label let compare = compare_label g end) 
+     in
+     let accumulating e accu =
+       let l = B.G.E.label e in
+diff --git src/merge.mli src/merge.mli
+index 3b13413..8e574ae 100644
+--- src/merge.mli
++++ src/merge.mli
+@@ -133,10 +133,7 @@ module I(G: Sig.I): sig
+     ?loop_killer:bool -> ?specified_vertex:(vertex list -> vertex) -> graph -> 
+     unit
+ 
+-end with type graph = G.t
+-		      and type vertex := G.vertex
+-		      and type edge := G.edge
+-		      and type edge_label = G.E.label
++end
+ 
+ (*
+ Local Variables:

Modified: head/math/ocaml-ocamlgraph/pkg-plist
==============================================================================
--- head/math/ocaml-ocamlgraph/pkg-plist	Fri Jun 14 03:23:32 2013	(r320882)
+++ head/math/ocaml-ocamlgraph/pkg-plist	Fri Jun 14 05:12:34 2013	(r320883)
@@ -11,6 +11,7 @@
 %%OCAMLGRAPHDIR%%/components.mli
 %%OCAMLGRAPHDIR%%/contraction.mli
 %%OCAMLGRAPHDIR%%/delaunay.mli
+%%OCAMLGRAPHDIR%%/dominator.mli
 %%OCAMLGRAPHDIR%%/dot.mli
 %%OCAMLGRAPHDIR%%/dot_ast.mli
 %%OCAMLGRAPHDIR%%/dot_parser.mli
@@ -24,12 +25,14 @@
 %%OCAMLGRAPHDIR%%/graph.cmo
 %%OCAMLGRAPHDIR%%/graph.cmx
 %%OCAMLGRAPHDIR%%/graph.cmxa
+%%OCAMLGRAPHDIR%%/graphml.mli
 %%OCAMLGRAPHDIR%%/graphviz.mli
 %%OCAMLGRAPHDIR%%/imperative.mli
 %%OCAMLGRAPHDIR%%/kruskal.mli
 %%OCAMLGRAPHDIR%%/leaderlist.mli
 %%OCAMLGRAPHDIR%%/mcs_m.mli
 %%OCAMLGRAPHDIR%%/md.mli
+%%OCAMLGRAPHDIR%%/merge.mli
 %%OCAMLGRAPHDIR%%/minsep.mli
 %%OCAMLGRAPHDIR%%/nonnegative.mli
 %%OCAMLGRAPHDIR%%/oper.mli


More information about the svn-ports-all mailing list