From ce7ed336c23b1aeadfae6ea904e75805530deee8 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Fri, 14 Feb 2025 21:52:57 -0500 Subject: [PATCH] feat: optional dep on trace --- dune-project | 1 + nanoev.opam | 1 + src/core/dune | 7 ++++++- src/core/nanoev.ml | 4 ++-- src/core/nanoev.mli | 6 ++++++ src/core/trace_.dummy.ml | 3 +++ src/core/trace_.real.ml | 5 +++++ 7 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 src/core/trace_.dummy.ml create mode 100644 src/core/trace_.real.ml diff --git a/dune-project b/dune-project index f7734eb..9b0e516 100644 --- a/dune-project +++ b/dune-project @@ -20,6 +20,7 @@ (synopsis "Tiny event loop around `select`") (depends ocaml dune base-unix) (depopts + (trace (>= 0.7)) (picos (and (>= 0.5) (< 0.7)))) (tags diff --git a/nanoev.opam b/nanoev.opam index 1fc5c04..a155b58 100644 --- a/nanoev.opam +++ b/nanoev.opam @@ -14,6 +14,7 @@ depends: [ "odoc" {with-doc} ] depopts: [ + "trace" {>= "0.7"} "picos" {>= "0.5" & < "0.7"} ] build: [ diff --git a/src/core/dune b/src/core/dune index 8109e16..d767795 100644 --- a/src/core/dune +++ b/src/core/dune @@ -2,4 +2,9 @@ (name nanoev) (public_name nanoev) (synopsis "Nano ev loop") - (libraries unix)) + (libraries unix + (select + trace_.ml + from + (trace.core -> trace_.real.ml) + (-> trace_.dummy.ml)))) diff --git a/src/core/nanoev.ml b/src/core/nanoev.ml index 00989e9..f0ea5c7 100644 --- a/src/core/nanoev.ml +++ b/src/core/nanoev.ml @@ -1,3 +1,5 @@ +module Trace_ = Trace_ + module Impl = struct type 'st ops = { clear: 'st -> unit; @@ -40,5 +42,3 @@ let rec read (self:t) fd buf i len : int = | exception Unix.Unix_error (Unix, _, _) -> read self fd buf i len *) - - diff --git a/src/core/nanoev.mli b/src/core/nanoev.mli index fcbd0b8..2224efa 100644 --- a/src/core/nanoev.mli +++ b/src/core/nanoev.mli @@ -28,3 +28,9 @@ val step : t -> unit val on_readable : t -> Unix.file_descr -> 'a -> 'b -> ('a -> 'b -> unit) -> unit val on_writable : t -> Unix.file_descr -> 'a -> 'b -> ('a -> 'b -> unit) -> unit val run_after_s : t -> float -> 'a -> 'b -> ('a -> 'b -> unit) -> unit + +(**/**) + +module Trace_ = Trace_ + +(**/**) diff --git a/src/core/trace_.dummy.ml b/src/core/trace_.dummy.ml new file mode 100644 index 0000000..b08b984 --- /dev/null +++ b/src/core/trace_.dummy.ml @@ -0,0 +1,3 @@ +let[@inline] with_span ?data:_ ~__FILE__:_ ~__LINE__:_ _name f = f 0L +let[@inline] message ?data:_ _ = () +let set_thread_name (_ : string) = () diff --git a/src/core/trace_.real.ml b/src/core/trace_.real.ml new file mode 100644 index 0000000..6c513a5 --- /dev/null +++ b/src/core/trace_.real.ml @@ -0,0 +1,5 @@ +let[@inline] with_span ?data ~__FILE__ ~__LINE__ name f = + Trace_core.with_span ?data ~__FILE__ ~__LINE__ name f + +let[@inline] message ?data m = Trace_core.message ?data m +let set_thread_name name = Trace_core.set_thread_name name