package wax-lib

  1. Overview
  2. Docs
Libraries for Wax, a Rust-like syntax for WebAssembly

Install

dune-project
 Dependency

Authors

Maintainers

Sources

wax-0.1.0.tbz
sha256=41b580846af8d41bdf6c3f005f62e38feda3e60fe2e9e4aa440db34ce515a153
sha512=4b3a181fcc7d743194a8647260870fb5190770066a197bcc48104c2b77fd40c643228b795c2bcd6b29a120820e969eb42a37a9bcec98b3f608d13f152d9f6579

doc/src/wax-lib.utils/debug.ml.html

Source file debug.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
type category = Timing

let categories = [ "timing" ]

let parse = function
  | "timing" -> Ok Timing
  | s ->
      Error
        (Printf.sprintf "Unknown debug category: %s (expected one of: %s)" s
           (String.concat ", " categories))

(* The set of active categories, set once at startup. Mirrors the one-shot
   global config used elsewhere (e.g. [Validation.validate_refs]). *)
let enabled : category list ref = ref []
let enable categories = enabled := categories
let is_enabled category = List.mem category !enabled

let timed_if cond label f =
  if not (cond && is_enabled Timing) then f ()
  else begin
    let start = Unix.gettimeofday () in
    let finally () =
      let elapsed = (Unix.gettimeofday () -. start) *. 1000. in
      Printf.eprintf "%s: %.1f ms\n%!" label elapsed
    in
    Fun.protect ~finally f
  end

let timed label f = timed_if true label f