Skip to content

dev meeting 20201118

Nathan Rebours edited this page Nov 18, 2020 · 3 revisions

Present at the meeting:

  • Etienne Millon (@emillon)
  • Sonja Heinze (@pitag-ha)
  • Guillaume Petiot (@gpetiot)
  • Ulysse Gérard (@voodoos)
  • Nathan Rebours (@NathanReb)

Current plan

  • Etienne to fix the windows paths related issues in the test suite
  • Ulysse finishes the new MDX stanza
  • Guillaume looks into porting mdx to ppxlib
  • Sonja works on #269
  • Sonja adds a MDX tutorial to the README
  • Nathan reviews the huge pile of outstanding PRs

Meeting notes

Etienne has been working on making MDX compatible with windows, with help from @Julow and @tmattio. They identified three class of compatibility issues in mdx:

  1. Paths: they are printed differently on windows and linux which mostly causes the integration test to fail because we write down linux paths in the .expected files. Etienne is working on this. There are few solutions, a simple improvement to how we report filenames in errors might help but we might need a longer term, more robust solution.
  2. Process spawning: This behaves differently on windows and linux and was causing some failures with mdx dependent dune rules. This was an issue in our test suite but potentially for regular users as well. There's a PR opened for fixing this.
  3. Env vars: $HOME has different behaviours in Windowns and this breaks our test suite. Etienne will fix the relevant test by using a different, custom var. On the windows compat front, Thibaut fixed our tests setup as it relied on bash features that prevented us from running them under windows. Jules worked on support for windows newlines, we need to figure out exactly when that arises as Etienne couldn't reproduce the parsing errors that Jules got and required the fix in the first place.

Ulysse is working on the new mdx stanza. Instead of invoking the mdx binary directly, dune will generate a .ml file by invoking a specific mdx command and then compile and run it on the files specified by the stanza. This will allow us to link in libraries (including private ones) with this executable, making them available in toplevel code blocks without the need to load them using ocamlfind. For this to work with private libraries, Guillaume added an extra argument so that dune could pass the path to the private libraries .cmi files to mdx. Ulysse already has a version of this new stanza that achieves feature parity with the old stanza, the remaining tasks are to clean up the (packages ...) field of the stanza and to turn it into a regular (deps ...) field, allow depending on libraries and pass the cmi files locations. He will also forward the spec to the dune maintainers to make sure we have the right approach to executable generation here.

Sonja didn't work on MDX lately.

GUillaume rebased the PR with the new functions Ulysse needs for the mdx stanza work. He also worked on the ocamlformat 0.15 -> 0.16 upgrade. Finally he started looking into migrating from OMP to ppxlib. Sonja and Nathan should be able to help with this if needed.

We briefly discussed the range of ocaml versions MDX supports atm. The reason why we maintain 4.02 compat is because merlin also does and uses mdx for its tests. We should soon be able to bump that lower bound as merlin will only build with the latests versions of the compiler. Once such a merlin is released, we'll bump the minimum ocaml version to 4.08.

Nathan didn't work on MDX lately either but should have a bit more time to devote to it starting next week.