feat: optional memtrace support

This commit is contained in:
Simon Cruanes 2021-07-18 10:17:44 -04:00
parent ff5cf1239c
commit c7bf4b01e7
8 changed files with 27 additions and 3 deletions

View file

@ -67,7 +67,7 @@ reindent:
WATCH=@all
watch:
@dune build $(WATCH) -w
@dune build $(WATCH) -w $(OPTS) --profile=release
#@dune build @all -w # TODO: once tests pass
.PHONY: clean doc all bench install uninstall remove reinstall bin test

View file

@ -19,10 +19,13 @@ depends: [
"sidekick" { = version }
"sidekick-base" { = version }
"menhir"
"mtime"
"ocaml" { >= "4.04" }
"odoc" {with-doc}
]
depopts: [
"memtrace"
"mtime"
]
tags: [ "sat" "smt" ]
homepage: "https://github.com/c-cube/sidekick"
dev-repo: "git+https://github.com/c-cube/sidekick.git"

View file

@ -5,7 +5,8 @@
(public_name sidekick)
(package sidekick-bin)
(libraries containers iter result sidekick.sat sidekick.core sidekick-base
sidekick.msat-solver sidekick-bin.smtlib sidekick.tef)
sidekick.msat-solver sidekick-bin.smtlib sidekick.tef
sidekick.memtrace)
(flags :standard -safe-string -color always -open Sidekick_util))
(rule

View file

@ -147,8 +147,12 @@ let main_cnf () : _ result =
Pure_sat_solver.solve solver
let main () =
(* instrumentation and tracing *)
Sidekick_tef.setup();
at_exit Sidekick_tef.teardown;
Sidekick_memtrace.trace_if_requested ~context:"sidekick" ();
CCFormat.set_color_default true;
(* Administrative duties *)
Arg.parse argspec input_file usage;

10
src/memtrace/dune Normal file
View file

@ -0,0 +1,10 @@
(library
(name sidekick_memtrace)
(public_name sidekick.memtrace)
(libraries
(select sidekick_memtrace.ml from
(memtrace -> sidekick_memtrace.real.ml)
(-> sidekick_memtrace.dummy.ml)))
(flags :standard -warn-error -a+8))

View file

@ -0,0 +1,2 @@
let trace_if_requested ?context:_ ?sampling_rate:_ () = ()

View file

@ -0,0 +1,3 @@
val trace_if_requested : ?context:string -> ?sampling_rate:float -> unit -> unit

View file

@ -0,0 +1 @@
let trace_if_requested = Memtrace.trace_if_requested