package ocamlmig

Not available on OCaml 5.5
  1. Overview
  2. Docs
OCaml source code rewriting tool

Install

dune-project
 Dependency

Authors

Maintainers

Sources

ocamlmig-5.2-20250228.tbz
sha256=b62e6316ed39461c814320282d42484bd8b7a412b861a6f14d2853ceed423005
sha512=112b09f4ee3c9305c162cb7061d3f84e6017e22f990c60f69bc8ca9a3d0344d2793f6d38b08f43b761a5b2d0d430d7e0d9b71bfe3de2f80a65ce23ce47c8fe06

Description

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

Added to opam-repository:

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" & < "2.0.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.2" & < "5.3"

Dev Dependencies (1)

  1. odoc with-doc

Optional Dependencies

None

Used by

None

Conflicts

None

Build status

Results of building ocamlmig with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
5.5.20260803 n/a n/a n/a n/a good
5.4.20260731 n/a n/a n/a good n/a
5.2-20250228 (this version) n/a n/a good n/a n/a
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure