stabilize PPX-generated landmark ids across OCaml versions, simplify generated code, and stop auto-instrumenting object methods to avoid type errors (PR #53, @mlasson).
add support for OCaml 5.5 syntax in the PPX (PR #47, @brandonzstride)
add Speedscope export format: set format=speedscope in OCAML_LANDMARKS to write a sampled flame-graph profile openable at https://www.speedscope.app (combine with time for second-precision weights). It is available via a new landmarks-speedscope library.
add custom export format: set format=custom in OCAML_LANDMARKS and register your exporter using Landmark.register_exporter.
version 1.6, 12 may 2026
adapt to ppxlib 0.36.0 (PR #45, @brandonzstride)
version 1.5, 14 jan 2025
report allocations on major heap (PR #40, @edwinans)
fix extra allocations for 'allocation' option (PR #40, @edwinans)
add support for arm64 (M1 mac) (PR #35, @johnyob)
add js_of_ocaml support. (PR #36, @mefyl)
version 1.4, 15 aug 2021
switch to github actions
add a link to https://github.com/LexiFi/landmarks-starter
split landmarks into landmarks and landmarks-ppx
enabled instrumentation (PR #23, @nojb)
use floatarray #24 (@nojb)
use ppxlib instead of OMP (PR #22)
improvements on the doc and examples (PR #15, #16, @ostera)
primitive support for objects (allow to annotate methods)
dynamic landmarks
auto now automatically benchmark all methods
version 1.3, 6 dec 2018
migrate from jbuilder to dune
migrate to opam 2.0
adds two new primitives: push/pop_profiling_state
prepare migration for Pervasives deprecation
redefine 'Stdlib.raise' in the 'Landmark' to allow using landmark with -no-stdlib (as 'raise' is used to wrap exception in the generated code).