Skip to content

dev meeting 20220126

Sonja Heinze edited this page Jan 26, 2022 · 1 revision

Present at the meeting:

  • Paul-Elliot Anglès d'Auriac (@panglesd)
  • Aya Charaf (@ayc9)
  • Sonja Heinze (@pitag-ha)

Current plan

  • Sonja creates an up-to-date ppx-universe (i.e. a workspace with the current ppxlib reverse dependencies) to analyze how big the impact of the 4.14 bump is and possibly sends patches
  • Paul-Elliot wraps up the improvements on how the PPX error reporting impacts merlin
  • Paul-Elliot improves the manual
  • Aya adds the first couple of derivers to the new Ppxlib.Deriving standard derivers project

Meeting notes

The current state of how the PPX ecosystem reports errors has quite a negative impact on merlin's features. To improve that, Paul-Elliot has opened a PR to improve the way ppxlib cleans up the situation when a ppx rewriter raises a located exception. The impact of the change is the following: before the change, no merlin feature in the affected file would work apart from reporting that one error. Now, all merlin features work apart from features related to later PPX passes that had to be skipped, such as reporting their errors. Still, the best is when authors of ppx rewriters embed their errors into the AST instead of raising located errors. To encourage that, Paul-Elliot has also opened PRs to improve ppxlib's API as well as the ppxlib manual. He'll now also work on other parts of the manual.

Aya has been working on the first derivers for the new Ppxlib.Deriving standard derivers project, whose goal is to consolidate the most standard derivers into one project, similarly to the old ppx_deriving.std. So she's been working on make and on eq/ord. The make deriver is quite advanced already but is still raising located errors instead of embedding them. Apart from that, the most important feature missing is turning optional record fields and list fields into optional parameters. She'll work on that as well as on the eq and ord derivers.

Sonja has been doing the standard maintenance work, most importantly adapting ppxlib to the new compiler versions. Concretely, she's done a preview ppxlib version for compatibility with 5.00.0+trunk (have you already tried out multicore on projects with PPXs?). And she's done a preview ppxlib version supporting the new features in 4.14, i.e. a version bumping the ppxlib AST to 4.14. It's possible that bumping the AST to 4.14 might break more users than usual if we don't provide an extra level of stability, since 4.14 changes Ppat_construct. She'll find out if that's the case by creating an up-to-date ppx-universe.

Also, the ppx_import port to ppxlib has recently been merged and released, so now the shift of the PPX ecosystem from OMP1 to ppxlib can be pretty much considered completed.