ocaml-migrate-parsetree icon indicating copy to clipboard operation
ocaml-migrate-parsetree copied to clipboard

ocaml-migrate-parsetree 2.0.0

Open ghost opened this issue 4 years ago • 4 comments

This is a meta issue to track the progress towards ocaml-migrate-parsetree 2.0.0, a new major release that simplify ocaml-migrate-parsetree to its core functionality: the parsetree type definitions + the migration functions.

Todo:

  • [ ] port existing projects to ppxlib: list here
  • [x] simplify the ocaml-parsetree-repository
  • [x] add version constraints to reverse dependencies of ocaml-migrate-parsetree
  • [x] release ocaml-migrate-parsetree 2.0.0
  • [x] release a version of ppxlib that is compatible with ocaml-migrate-parsetree 2.0.0

ghost avatar Jun 15 '20 12:06 ghost

release ocaml-migrate-parsetree 2.0.0 is done.

is their some guide how to update omp < 2 to 2.0.0 for instance Migrate_parsetree.Ast_408 can be used instead of removed Migrate_parsetree.Ast.OCaml_408. I see that outcometree is not versionned anymore (grep -ri outcometree . nor find . -iname "outcometree*" showed me the presence of this module). Outcometree is not in ppxlib neither. I have read https://discuss.ocaml.org/t/ocaml-migrate-parsetree-2-0-0/5991 and haven't see any mention of this. This is the blocker to update reason

Et7f3 avatar Aug 17 '20 06:08 Et7f3

@Et7f3 , I've just come across this comment. How has that developed in the end? Has it been possible to port reason?

pitag-ha avatar Dec 02 '21 14:12 pitag-ha

@pitag-ha we haven't ported reason to ppxlib, instead for 4.13 we ended up maintaining that snapshot for a vendored version of OMP1.

Last time I looked at porting Reason to ppxlib there was heavy usage of the Outcometree and Ast_mapper modules which are not versioned by ppxlib.

anmonteiro avatar Dec 02 '21 19:12 anmonteiro

Ok, I see. Thanks for answering! One possibility to use ppxlib might be to use one of the Ast_traverse classes which let you traverse the AST similarly to how OMP1 does but in a versioned way; and for interacting with modules that aren't versioned like Outcometree, you could use To_ocaml to convert your AST types to the compiler version types, use Outcometree on there and convert back. Have you tried that already?

pitag-ha avatar Dec 03 '21 11:12 pitag-ha