Skip to content

dev meeting 20200507

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.

This is the high priority item as it is the main chocking point. Once it is done, we can in parallel:

  • add support for more OCaml versions
  • improve the compiler side story, in particular regarding tests
  • start porting ppx libraries to ppx

Current plan

High-priority:

  • Carl adds accessors for fields, which should be the last required helpers before we can start attacking the ppx library
  • Once above is done, Carl ports ppx to ppx_ast
  • Nathan debugs the 4.08 migration bug and merges it

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

Carl continued adding helpers to prepare porting the ppx library to ppx_ast. He finished the optional downgrade functions. The last set of helpers to add are the accessors for fields.

Nathan made progress on testing the 4.07<->4.08 migrations, which we expect will help find the bug blocking the 4.08 upgrade.

We discussed what tests people will have to write when modifying the parsetree once the final system is in place. The experience should be as smooth as possible so that modifying the Parsetree doesn't prove to be overly difficult for people working on the compiler. We mentioned the idea of a system where the developer modifying the parsetree would just have to write code snippets that would be parsed into parts of the Parsetree that changed, and the system would test the migration functions and report if they are wrong.

For now though, we are focusing on porting the ppx library since this will unblock all the downstream work on ppx rewriters.

Clone this wiki locally