Skip to content

dev meeting 20210422

Sonja Heinze edited this page Apr 23, 2021 · 1 revision

Present at the meeting:

  • Jérémie Dimino (@jeremiedimino)
  • Sonja Heinze (@pitag-ha)

Current plan

  • Sonja gets rid of Migrate_parsetree_def and replaces Migrate_parsetree_def.Migration_error exceptions by Location.Error exceptions, if that doesn't break downstream users
  • Sonja tries to make the Location and Longident base types abstract

Meeting notes

@drup has improved the port of tyxml to ppxlib and has merged it and released it.

Sonja has been working on Astlib: it's now cross-version compatible from 4.04.2 on (same as master) and passes the CI. She has also thinned down most of its API. There are three things left.

One is to find a way to make the Location and Longident base types abstract. She will try to find a way this week.

Another one is the enum type Migrate_parsetree_def.missing_feature listing conversion obstructions, and the exception Migration_error based on it. Sonja will check if getting rid of them and throwing Location.Error exceptions instead would break downstream users in the ppx universe.

The third one is that the type equivalences between the various Ast_n.Parsetree types with the compiler-libs Parsetree types leak the latter through the API. The mentioned equivalences make it possible to use compiler-libs/Astlib functions based on Parsetree types from within the Ppxlib module: e.g. parse functions and cookies/context functions. That purpose would also be served if we kept those type equivalences Astlib-internal and expressed them to the outside via (identity) conversion functions. We've discussed different ways to distinguish the public API from the internal API and their downsides: an mli-file for Astlib would be huge and adding private module layers would make Astlib more complex and upstreaming it to the compiler more difficult.

Clone this wiki locally