Skip to content

dev meeting 20201022

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

Present at the meeting:

  • Jérémie Dimino (@jeremiedimino)
  • Sonja Heinze (@pitag-ha)
  • Carl Eastlund (@ceastlund)
  • Nathan Rebours (@NathanReb)

Current plan

  • Sonja finishes the first Astlib implementation
  • Sonja finishes the bisect_ppx port
  • Nathan prepares a fully 4.12 compatible branch of ppxlib
  • Nathan adds the required features for bucklescript compat of the as_ppx driver
  • Nathan releases ppxlib compatible with 4.12
  • Nathan releases the limited support of 4.12 for omp 1.x
  • Carl finishes merging 4.12 support for omp.1.x
  • Carl finishes the ppx_import port

Meeting notes

Sonja finished the js_of_ocaml port to ppxlib. It has since then been released and is compatible with the latest ppxlib! She also worked on the bisect_ppx port but is still blocked on Nathan finishing the features required for the bucklescript compatible driver. There are issues related to the absence of Location.input_name in ppxlib. This already showed up in a lot of packages so we need a proper way around it. We don't want to expose this global reference as part of the ppxlib API and suggested to instead pass it to the transformation callbacks. The driver register functions API don't allow to do this as they are so we'll first add new versions of them, taking an abstract context as extra argument so we can pass more things to transformations callbacks in the future without having to break the API or enrich it with new versions of the same register functions. Sonja finally got back working on Astlib and now has it and ppxlib compiling with (implicit_transitive_deps false) so we can finish eliminating any direct reference to compiler-libs from ppxlib. She's having trouble because the current interface to the Parse module relies on the compiler-libs Parsetree types. We need to expose types (without the explicit definition) in Astlib that are equal to the parsetree types from compiler-libs and that can be converted to the versioned API types, for example in an equivalent to the Ocaml_current module.

Nathan worked on getting ppxlib ready for the 4.12 release. The omp PR adding the 4.12 types and migration has been merged and released. @kit-ty-kate worked on patching ppxlib for it to be compatible with the 4.12 compiler (it still uses the 4.11 AST internally). Nathan test both this and the latest omp in a 4.12 switch to make sure everything was working smoothly with a simple ppx. Next steps are to release the new ppxlib once the omp release went through. While working on this he fixed some new warnings found by the 4.12 compiler.

Carl finished the work on 4.12 support in OMP. He also reviewed the limited 4.12 support PR for omp 1.x, this should soon be merged. Once that happens Nathan will take care of the release.

Following a discussion about zarith-ppx that we added to the list of ppx to port from OMP1 to ppxlib, we decided not to port ppx-es that have no rev-deps in opam. Jane Street already has a ppxlib based version internally that they might eventually open source and release. For now we'll focus on ppx-es that are widely used!