nixpkgs/pkgs/development/tools/misc/frama-c/0007-Port-to-OCamlgraph-1.8.2.patch
2012-07-31 14:08:52 +02:00

65 lines
2.4 KiB
Diff

From: Mehdi Dogguy <mehdi@debian.org>
Date: Wed, 16 May 2012 14:48:40 +0200
Subject: Port to OCamlgraph 1.8.2
o Graph.Topological: as of OCamlgraph 1.8.2, the input graph must
implement Sig.COMPARABLE instead of Sig.HASHABLE
---
src/misc/service_graph.ml | 2 +-
src/misc/service_graph.mli | 2 +-
src/semantic_callgraph/register.ml | 1 +
src/syntactic_callgraph/register.ml | 1 +
4 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/misc/service_graph.ml b/src/misc/service_graph.ml
index f30a1be..567698f 100644
--- a/src/misc/service_graph.ml
+++ b/src/misc/service_graph.ml
@@ -24,7 +24,7 @@ module Make
(G: sig
type t
module V: sig
- include Graph.Sig.HASHABLE
+ include Graph.Sig.COMPARABLE
val id: t -> int
val name: t -> string
val attributes: t -> Graph.Graphviz.DotAttributes.vertex list
diff --git a/src/misc/service_graph.mli b/src/misc/service_graph.mli
index 5ebb570..8006977 100644
--- a/src/misc/service_graph.mli
+++ b/src/misc/service_graph.mli
@@ -28,7 +28,7 @@ module Make
(G: sig
type t
module V: sig
- include Graph.Sig.HASHABLE
+ include Graph.Sig.COMPARABLE
val id: t -> int
(** assume is >= 0 and unique for each vertices of the graph *)
val name: t -> string
diff --git a/src/semantic_callgraph/register.ml b/src/semantic_callgraph/register.ml
index 0b3b4df..064dca8 100644
--- a/src/semantic_callgraph/register.ml
+++ b/src/semantic_callgraph/register.ml
@@ -107,6 +107,7 @@ module Service =
(if Kernel_function.is_definition v then `Bold
else `Dotted) ]
let equal = Kernel_function.equal
+ let compare v1 v2 = Datatype.Int.compare (id v1) (id v2)
let hash = Kernel_function.hash
let entry_point () =
try Some (fst (Globals.entry_point ()))
diff --git a/src/syntactic_callgraph/register.ml b/src/syntactic_callgraph/register.ml
index 4efb594..d9d78b9 100644
--- a/src/syntactic_callgraph/register.ml
+++ b/src/syntactic_callgraph/register.ml
@@ -41,6 +41,7 @@ module Service =
| NIVar (_,b) when not !b -> `Style `Dotted
| _ -> `Style `Bold ]
let equal v1 v2 = id v1 = id v2
+ let compare v1 v2 = Datatype.Int.compare (id v1) (id v2)
let hash = id
let entry_point () = !entry_point_ref
end
--