- Update to ocamlgraph 1.8.5
- Remove patch that is now included upstream - Stagify
This commit is contained in:
parent
5b979ce1a8
commit
0bca2d2576
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=353041
@ -2,7 +2,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= ocamlgraph
|
||||
PORTVERSION= 1.8.3
|
||||
PORTVERSION= 1.8.5
|
||||
CATEGORIES= math
|
||||
MASTER_SITES= http://ocamlgraph.lri.fr/download/ \
|
||||
ftp://ftp.stack.nl/pub/users/johans/ocamlgraph/
|
||||
@ -13,13 +13,17 @@ COMMENT= Graph manipulation library for OCaml
|
||||
|
||||
OPTIONS_DEFINE= GUI
|
||||
OPTIONS_DEFAULT=GUI
|
||||
GUI_DESC= Include GUI user programs: viewer and editor
|
||||
OPTIONS_SUB= yes
|
||||
GUI_DESC= Include GUI user programs: viewer and editor
|
||||
GUI_BUILD_DEPENDS= lablgtk2:${PORTSDIR}/x11-toolkits/ocaml-lablgtk2
|
||||
GUI_RUN_DEPENDS= lablgtk2:${PORTSDIR}/x11-toolkits/ocaml-lablgtk2
|
||||
GUI_CONFIGURE_OFF= LABLGTK2=no
|
||||
|
||||
USES= gmake
|
||||
USE_OCAML= yes
|
||||
USE_OCAML_FINDLIB= yes
|
||||
USE_OCAML_LDCONFIG= yes
|
||||
USE_OCAMLFIND_PLIST= yes
|
||||
USE_GMAKE= yes
|
||||
GNU_CONFIGURE= yes
|
||||
|
||||
PLIST_SUB+= OCAMLGRAPHDIR="${OCAML_LIBDIR}/${PORTNAME}"
|
||||
@ -29,22 +33,11 @@ INSTALL_TARGET= install install-findlib
|
||||
|
||||
MAKE_JOBS_UNSAFE= yes
|
||||
|
||||
PORTSCOUT= skipv:1.81
|
||||
|
||||
NO_STAGE= yes
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${PORT_OPTIONS:MGUI}
|
||||
BUILD_DEPENDS+= lablgtk2:${PORTSDIR}/x11-toolkits/ocaml-lablgtk2
|
||||
RUN_DEPENDS+= lablgtk2:${PORTSDIR}/x11-toolkits/ocaml-lablgtk2
|
||||
PLIST_SUB+= GUI=""
|
||||
.else
|
||||
CONFIGURE_ARGS+= LABLGTK2=no
|
||||
PLIST_SUB+= GUI="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MDOCS}
|
||||
ALL_TARGET+= doc
|
||||
DOCSDIR= ${OCAML_DOCSDIR}/${PORTNAME}
|
||||
PORTDOCS= *
|
||||
|
||||
post-patch:
|
||||
@ -55,8 +48,8 @@ post-patch:
|
||||
.endif
|
||||
|
||||
post-install:
|
||||
${MKDIR} ${DOCSDIR}
|
||||
cd ${WRKSRC}/doc; ${INSTALL_DATA} * ${DOCSDIR}
|
||||
${MKDIR} ${STAGEDIR}${DOCSDIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/doc/* ${STAGEDIR}${DOCSDIR}
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (ocamlgraph-1.8.3.tar.gz) = 0df7114b6b6a57125b9c998cc08870b6595fcfd6f2376a0e84cb666c1fd345bd
|
||||
SIZE (ocamlgraph-1.8.3.tar.gz) = 262876
|
||||
SHA256 (ocamlgraph-1.8.5.tar.gz) = d167466435a155c779d5ec25b2db83ad851feb42ebc37dca8ffa345ddaefb82f
|
||||
SIZE (ocamlgraph-1.8.5.tar.gz) = 269438
|
||||
|
@ -1,100 +0,0 @@
|
||||
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:
|
@ -24,7 +24,9 @@
|
||||
%%OCAMLGRAPHDIR%%/graph.cmi
|
||||
%%OCAMLGRAPHDIR%%/graph.cmo
|
||||
%%OCAMLGRAPHDIR%%/graph.cmx
|
||||
%%OCAMLGRAPHDIR%%/graph.cmxs
|
||||
%%OCAMLGRAPHDIR%%/graph.cmxa
|
||||
%%OCAMLGRAPHDIR%%/graph.o
|
||||
%%OCAMLGRAPHDIR%%/graphml.mli
|
||||
%%OCAMLGRAPHDIR%%/graphviz.mli
|
||||
%%OCAMLGRAPHDIR%%/imperative.mli
|
||||
@ -39,6 +41,7 @@
|
||||
%%OCAMLGRAPHDIR%%/pack.mli
|
||||
%%OCAMLGRAPHDIR%%/path.mli
|
||||
%%OCAMLGRAPHDIR%%/persistent.mli
|
||||
%%OCAMLGRAPHDIR%%/prim.mli
|
||||
%%OCAMLGRAPHDIR%%/rand.mli
|
||||
%%OCAMLGRAPHDIR%%/sig.mli
|
||||
%%OCAMLGRAPHDIR%%/sig_pack.mli
|
||||
|
Loading…
Reference in New Issue
Block a user