commits
ocaml-tty (92→0):
- E205: Printf→Fmt in gen_corpus.ml, test_progress.ml, minimal_progress.ml
- E330: rename tree_view→view in tree.ml
- E400/E405/E410: add missing docs in color.mli, style.mli, border.mli,
table.mli, width.mli; fuzz_tty.mli module doc
- E600/E617: create 9 test_*.mli files; lowercase all suite names
- E618: add explicit modules list to test stanza in test/dune
- E718/E725: create fuzz/fuzz.ml runner; suite name "tty"
ocaml-wire (109→0):
- E005: extract parse_bf_field, check_all_zeros, encode_bf_accum helpers
- E010: extract emit_field_constraint helpers to reduce nesting in gen_c.ml
- E205: Format→Fmt in test_wire.ml (40 occurrences)
- E216: invalid_arg (Fmt.str) → Fmt.invalid_arg
- E330: rename wire_size_of_* → size_of_* in wire.ml/wire.mli
- E400/E405/E410: add docs in fuzz_wire.mli, diff_gen.mli, wire.mli, wire_c.mli
- E605/E600: create test/c, test/diff-gen, test/diff test files + mlis
Fix callers of renamed APIs across monorepo:
- Tty.Progress.create → Tty.Progress.v
- Tty.Panel.create_lines → Tty.Panel.lines
- Tty.Table.create → Tty.Table.v
- Xdge.create → Xdge.v
- Add missing .ocamlformat to ocaml-linkedin and ocaml-qemu
- Lowercase test suite names in prune: Cache→cache, Locate→locate,
Module alias parsing, Warning.parse
- Fix space-block suite name: storage→space_block
- Fix space/test_build suite name: initramfs→build
Fix Merlin.create→Merlin.v in prune/lib to match ocaml-merlin API rename.
Fix space-test/dune-project: remove duplicate root package, add missing
space-test package stanza so dune fmt passes.
Modernize the memtrace package for the monorepo: convert Printf to Fmt,
restructure tests into alcotest pattern with suite exports, add cmdliner
term (--memtrace, --memtrace-rate, --memtrace-context), and add
argv-peeking trace_if_requested. Integrate Memtrace.term into setup
terms across all binaries that previously called trace_if_requested().
Add memtrace instrumentation to merlint, prune, crow, bottler, agent,
precommit, and uniboot. Refactor merlint's Command module from
Unix.open_process_in to Eio.Process.spawn for proper fiber scheduling.
Log external commands at INFO level (-v) and command output at DEBUG
level (-vv). Show dune build stderr in -vv mode instead of suppressing
with 2>/dev/null.
- Share Merlin backend across files in merlint and prune analysis
- Add pipeline caching for outline/dump/enclosing queries (local-only)
- Use fresh pipelines for occurrences queries (cross-file index)
- Add --no-build/-B flag to merlint to skip automatic dune build
- Fix docs unit test for bad function format detection
- Add Eio-based sequential test runner to monopam with verbose output
- Update merlint cram tests to use -B flag for faster test runs
- License -> Licence
- color -> colour (in prose, not API/code)
- behavior -> behaviour
- analyze -> analyse
- organized -> organised
- Remove marketing buzzwords (leveraging)
- Remove emojis from prose
Convert all packages from:
(source (uri https://tangled.org/handle/repo))
to:
(source (tangled handle/repo))
This uses dune 3.21's native tangled support for cleaner source
declarations. Also removes redundant homepage/bug_reports fields
that are auto-generated from tangled sources.
Total is now required, default to 0 when not provided.
Refactor to use bytesrw primitives directly:
- write is now primary, using Writer.write_bytes + Writer.write_string
- encode wraps write with a buffer-backed Writer
- read uses Reader.sniff for efficient bulk reading
- decode wraps read with a string-backed Reader
Eliminates string concatenation allocation in encode and
byte-by-byte reading overhead in read.
git-subtree-dir: prune
git-subtree-mainline: 2d4007a9bcc04d802171379a76bbe6051110b745
- Rename directory: ocaml-build-info -> monopam-info
- Rename module: Mono_info -> Monopam_info
- Rename package: ocaml-build-info -> monopam-info
- Update all consumers to use new module name
- Remove "Skipping pull" log noise from push output
- Add set -eo pipefail to all multi-line shell scripts
- Quote ${{ inputs.binary }} to handle special characters
- Use explicit git push origin HEAD instead of bare git push
- Remove unused checksums concatenation step
git-subtree-dir: prune
git-subtree-mainline: e0468ff04cf75f688a12830730f2a73f68924728
Rename ocaml-version to ocaml-build-info with Mono_info module.
All homebrew binaries now use Mono_info.version for consistent
version reporting across the monorepo.
The library wraps dune-build-info and falls back to git hash
in dev mode. Can be extended with SBOM or other metadata later.
Add public_api.t testing that --public marks files as protected APIs:
dry-run labels public unused exports separately, force mode skips them.
Add include.t testing that include statements (top-level include module
type of, include S in module sigs) are handled correctly: unused values
alongside includes are removable, include statements are preserved.
- Remove blanket scripts/ gitignore, only ignore secrets (.env)
- Add merlint to homebrew config and formula
- Release script now updates SHA256 checksums in formulas automatically
and syncs/commits/pushes the tap repo
- prune: Replace ppxlib with compiler-libs.common, converting
Ast_traverse.iter visitors to Ast_iterator.default_iterator
- prune: Adapt to OCaml 5.3 Longident changes (located strings)
- Remove ppxlib from root dune-project, prune dune-project and opam
- Clean up stale ppxlib references in merlint comments and docs
Replace legacy dependencies with modern alternatives:
- jsont: Replace yojson with typed JSON schemas for merlin responses
(outline_response, occurrences_response with proper codecs)
- tty: Replace manual ANSI codes with Tty.Style for terminal colors
- vlog: Replace logs.cli with vlog for Cmdliner-integrated logging
- Result.Syntax: Remove rresult, use OCaml 5.x built-in Result module
Add comprehensive tests for JSON parsing (26 new tests):
- Outline response parsing (null, empty, single, multiple, nested)
- Occurrences response parsing (null, empty, path relativization)
- Location operations (construction, merge, extend)
- Warning precision and symbol kind mapping
Update cram tests for new vlog output format.
Require cmdliner >= 1.3.0 for Cmd.Env.info API
Require logs >= 0.8.0 for ~env parameter support
Remove duplicate logs constraint
ocaml-tty (92→0):
- E205: Printf→Fmt in gen_corpus.ml, test_progress.ml, minimal_progress.ml
- E330: rename tree_view→view in tree.ml
- E400/E405/E410: add missing docs in color.mli, style.mli, border.mli,
table.mli, width.mli; fuzz_tty.mli module doc
- E600/E617: create 9 test_*.mli files; lowercase all suite names
- E618: add explicit modules list to test stanza in test/dune
- E718/E725: create fuzz/fuzz.ml runner; suite name "tty"
ocaml-wire (109→0):
- E005: extract parse_bf_field, check_all_zeros, encode_bf_accum helpers
- E010: extract emit_field_constraint helpers to reduce nesting in gen_c.ml
- E205: Format→Fmt in test_wire.ml (40 occurrences)
- E216: invalid_arg (Fmt.str) → Fmt.invalid_arg
- E330: rename wire_size_of_* → size_of_* in wire.ml/wire.mli
- E400/E405/E410: add docs in fuzz_wire.mli, diff_gen.mli, wire.mli, wire_c.mli
- E605/E600: create test/c, test/diff-gen, test/diff test files + mlis
Fix callers of renamed APIs across monorepo:
- Tty.Progress.create → Tty.Progress.v
- Tty.Panel.create_lines → Tty.Panel.lines
- Tty.Table.create → Tty.Table.v
- Xdge.create → Xdge.v
Modernize the memtrace package for the monorepo: convert Printf to Fmt,
restructure tests into alcotest pattern with suite exports, add cmdliner
term (--memtrace, --memtrace-rate, --memtrace-context), and add
argv-peeking trace_if_requested. Integrate Memtrace.term into setup
terms across all binaries that previously called trace_if_requested().
Add memtrace instrumentation to merlint, prune, crow, bottler, agent,
precommit, and uniboot. Refactor merlint's Command module from
Unix.open_process_in to Eio.Process.spawn for proper fiber scheduling.
Log external commands at INFO level (-v) and command output at DEBUG
level (-vv). Show dune build stderr in -vv mode instead of suppressing
with 2>/dev/null.
- Share Merlin backend across files in merlint and prune analysis
- Add pipeline caching for outline/dump/enclosing queries (local-only)
- Use fresh pipelines for occurrences queries (cross-file index)
- Add --no-build/-B flag to merlint to skip automatic dune build
- Fix docs unit test for bad function format detection
- Add Eio-based sequential test runner to monopam with verbose output
- Update merlint cram tests to use -B flag for faster test runs
Refactor to use bytesrw primitives directly:
- write is now primary, using Writer.write_bytes + Writer.write_string
- encode wraps write with a buffer-backed Writer
- read uses Reader.sniff for efficient bulk reading
- decode wraps read with a string-backed Reader
Eliminates string concatenation allocation in encode and
byte-by-byte reading overhead in read.
Add public_api.t testing that --public marks files as protected APIs:
dry-run labels public unused exports separately, force mode skips them.
Add include.t testing that include statements (top-level include module
type of, include S in module sigs) are handled correctly: unused values
alongside includes are removable, include statements are preserved.
- prune: Replace ppxlib with compiler-libs.common, converting
Ast_traverse.iter visitors to Ast_iterator.default_iterator
- prune: Adapt to OCaml 5.3 Longident changes (located strings)
- Remove ppxlib from root dune-project, prune dune-project and opam
- Clean up stale ppxlib references in merlint comments and docs
Replace legacy dependencies with modern alternatives:
- jsont: Replace yojson with typed JSON schemas for merlin responses
(outline_response, occurrences_response with proper codecs)
- tty: Replace manual ANSI codes with Tty.Style for terminal colors
- vlog: Replace logs.cli with vlog for Cmdliner-integrated logging
- Result.Syntax: Remove rresult, use OCaml 5.x built-in Result module
Add comprehensive tests for JSON parsing (26 new tests):
- Outline response parsing (null, empty, single, multiple, nested)
- Occurrences response parsing (null, empty, path relativization)
- Location operations (construction, merge, extend)
- Warning precision and symbol kind mapping
Update cram tests for new vlog output format.