package ocamlmig

  1. Overview
  2. Docs
OCaml source code rewriting tool

Install

Dune Dependency

Authors

Maintainers

Sources

ocamlmig-5.3-20250429.tbz
sha256=51e13b4a6bbc86eb2470a5a33087714a8c0895b05d912e1706e7a95c6b1b11d3
sha512=d6b5b2b0af6b5976dac08c3c821faa1a5690ce56485cc29ac427046de2a4c446c6212bbf4ef5821503d57163634ec5ad78b3d4b452359096a23a6f08b5e9c9e1

Description

Ocamlmig is a command line tool to rewrite ocaml source code, especially to make updating to newer interfaces easier.

Published: 05 May 2025

README

ocamlmig is a command line tool for rewriting ocaml source code with access to scope and type information.

As a simple example of what it can do, let's say an opam-installed library A provides this interface:

val new_name : int -> int

val old_name : int -> int
[@@migrate { repl = Rel.new_name }]

and your repository contains a file b.ml:

let _ = A.old_name 1

then you could do:

$ git diff b.ml
$ ocamlmig migrate -w
$ git diff b.ml
-let _ = A.old_name 1
+let _ = A.new_name 1

Examples of real rewrites:

If that piqued your interest, you can find more information about what ocamlmig does, and using it.

This is work in progress, so many things are only partially implemented, but the existing functionality as is should still be interesting.

Dependencies (29)

  1. re >= "1.10.3"
  2. camlp-streams
  3. astring
  4. csexp >= "1.4.0"
  5. uutf >= "1.0.1"
  6. uuseg >= "10.0.0"
  7. stdio
  8. ocp-indent >= "1.8.0" | "1" = "0" & >= "1.8.1"
  9. ocamlformat-rpc-lib "1" = "0" & = version
  10. ocaml-version >= "3.5.0"
  11. menhirSdk >= "20201216"
  12. menhirLib >= "20201216"
  13. menhir >= "20201216"
  14. fpath >= "0.7.3"
  15. fix
  16. either
  17. dune-build-info
  18. dune
  19. cmdliner >= "1.1.0"
  20. base >= "v0.12.0"
  21. alcotest "1" = "0" & >= "1.3.0"
  22. ocaml >= "4.08"
  23. ppx_partial
  24. csexp
  25. core_unix
  26. core
  27. base
  28. dune >= "3.15"
  29. ocaml >= "5.3" & < "5.4"

Dev Dependencies (1)

  1. odoc with-doc

Used by

None

Conflicts

None

OCaml

Innovation. Community. Security.