-
Notifications
You must be signed in to change notification settings - Fork 102
dev meeting 20210422
Present at the meeting:
- Jérémie Dimino (@jeremiedimino)
- Sonja Heinze (@pitag-ha)
- Sonja gets rid of
Migrate_parsetree_defand replacesMigrate_parsetree_def.Migration_errorexceptions byLocation.Errorexceptions, if that doesn't break downstream users - Sonja tries to make the
LocationandLongidentbase types abstract
@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.