Skip to content

dev meeting 20201008

Nathan Rebours edited this page Oct 8, 2020 · 1 revision

Present at the meeting:

  • Sonja Heinze (@pitag-ha)
  • Carl Eastlund (@ceastlund)
  • Nathan Rebours (@NathanReb)

Current plan

  • Sonja finishes the first Astlib implementation
  • Sonja finishes the js_of_ocaml and bisect_ppx ppxlib port
  • Carl finishes the ppx_import ppxlib port
  • Carl finishes the omp 4.12 compat PR
  • Nathan adds the required features for bucklescript compat of the as_ppx driver
  • Nathan finishes the ppxlib.0.18.0 release, that is add upper bounds in opam and send pacthes to remaining broken revdeps
  • Nathan prepares a fully 4.12 compatible branch of ppxlib

Meeting notes

Sonja worked on the js_of_ocaml port. The last blocker there is related to incompatibilities between compiler-libs and ppxlib exceptions. She managed to find a work around for now but to finish the port we'd need a better fix which requires cleaning up this part of the ppxlib API. She also worked on the bisect_ppx port. Two issues remain there. The absence of Location.input_name from ppxlib causes trouble and we need to find out why and how to fix it. The second issue is that we still need to port the bucklescript driver shipped with bisect_ppx, Nathan had a chat with Jeremie and later on with Anton to confirm exactly what was needed, we need to reimplement the feature from omp1 allowing to unmarshall ASTs whose version differ from the one ppxlib was compiled with and to serialize them back to their original version. We'll also need to rewrite the as_ppx version of the driver by hand rather than implement it on top of Ast_mapper.run_main for that to be possible. Nathan will take care of this which should unblock Sonja. Finally Sonja kept working on Astlib, she's working on defining its API now. She is also trying to disable implicit transitive dependencies in ppxlib to make sure we never use compiler libs directly by mistake and only rely on Astlib.

Carl worked on porting ppx_import to ppxlib. In its current form it's a bit hard to port it as it has to be implemented as a whole AST transformation and to be applied before deriving rules. There currently is no way to this so we either have to add it to ppxlib API or to change the interface of ppx_import so we can express it as a regular extension rewriter. The latter would be prefered but is a breaking change with regard to ppx_import interface. Carl will work on such an implementation and hopefully get the maintainers approval.

Nathan worked on the ppxlib.0.18.0 release which bumps the internal AST to 4.11. He sent patches to most of the impacted reverse dependencies ahead of the actual release. The opam-repository PR is opened and is only a few upper bound additions away from being merged. Once that happens Nathan will send patches to the remaining packages. This is not a huge deal but we should aim at fixing it with astlib.

This new release made us realize we now have an explicit list of compatible ocaml versions in ppxlib which means that a release of a new omp isn't enough for ppxlib to be compatible with new versions of the language, we also have to update that list for ppxlib to even compile with this new version.

We also briefly discussed the omp2 4.12 PR. It still need a bit of work before being mergeable but it is also blocked on a magic number update in ocaml so we won't be able to release it until then anyway. Nathan will start to work on a 4.12 compatible branch of ppxlib using a pin to Carl's branch so the ocamlformat team has something to work with.