mte/unikernel/duniverse/ppxlib/dev/gencopy
2025-11-11 02:07:51 +01:00
..
dune 2025-11-11 02:07:51 +01:00
gencopy.ml 2025-11-11 02:07:51 +01:00
README.md 2025-11-11 02:07:51 +01:00

gencopy is a dev utility tool that we use to generate migration functions skeletons when adding support for new compiler versions.

It generates deep copy functions from the types defined in the provided ast_X.ml to what it assumes is in ast_Y.ml. The latter is only used to for type annotations and qualified record fiels/variant names. Those functions are generated assuming types are symmetrical across the two files.

One would first generate migrate_X_Y.ml and migrate_Y_X.ml by running respectively:

gencopy ast_X.ml ast_Y.ml > migrate_X_Y.ml

and

gencopy ast_Y.ml ast_X.ml > migrate_Y_X.ml

from the astlib/ folder.

Trying to build ppxlib should give you compile errors for those two files corresponding to the specific parts of the AST types that changed across the two versions.

Properly fixing those until it all builds should give you a valid set of migration functions.