Skip to content

dev meeting 20200430

Nathan Rebours edited this page Sep 17, 2020 · 1 revision

Present at the meeting:

  • Nathan Rebours (@NathanReb)
  • Jérémie Dimino (@jeremiedimino)
  • Carl Eastlund (@ceastlund)

Current milestone

Completion date: 21/05/2020

The ppx library is based on ppx_ast rather than ppx_ast_deprecated.

Current plan

High-priority:

  • Carl is working on adding more helpers
  • Once above is done, Carl ports ppx to ppx_ast
  • Nathan is adding support for 4.08
  • Carl and Nathan debug the test blocking 4.08 upgrade

Medium priority:

  • Nathan backports the location check once we have 4.08 support

Low priority:

  • Nathan makes the driver blame the ppx rewriter that raised when catching an exception via a catch-all handler

Meeting notes

Nathan is still working on adding 4.08 support. There are currently two blockers:

  1. adding 4.08 support requires updating some code that depends on ppx_ast_deprecated
  2. some QuickCheck based tests are failing

For (1), there are two possible resolutions and will depend on how fast other features are coming along. For (2), we need to figure out whether that's a bug introduced by the feature or just a problem with the test itself. The test is currently difficult to debug and Nathan is planning to do a bit of work on the test itself to make it easier to debug it.

Nathan has also been looking at better error reporting in ppx_view by inserting [%ocaml.error] nodes rather than raising. This works and interacts well with merlin, though it turned out to be difficult to write test for this. Given that our main priority is providing a good answer to the combination backward compatibility + composability, we are simply skipping testing this aspect of things.

We also mentioned that we agree on letting pgrade/downgrade failures be just exceptions. Handling them via [%ocaml.error] would be a developer nightmare and it's not even clear that this would be better. As long as ppxlib can catch such exceptions and blame the ppx that raised them, we'll have a good story for dealing with such problems.

Carl is still working on adding helpers to help porting the ppx library to ppx_ast. The next set of helpers he is in planning to work on next are optional downgrade functions, i.e. that returns None if a piece of ast cannot be downgraded. Nathan and Carl think this could help debug the test that are blocking the 4.08 upgrade.

Carl mentions that he thought of other use case for our encoding of the parsetree types, such as producing a slightly different AST that would capture whitespace informations.