Skip to main content
Sign in
Snippets Groups Projects
Select Git revision
  • ce21b6c131a9c3c10860920b85c155bd122212bf
  • master default protected
  • rust
  • extract-fix-master
  • extract-fix
  • extract-fix-1.0.0
6 results

why3

user avatar
Guillaume Melquiond authored
Short story: it was a source of bugs, there was only one handcrafted
message over 650, and, to quote François Pottier, "you seem to have
misunderstood what the various commands do".

Long story: the proper steps to update the error messages after modifying
the parser are

1. update the old states with --update-errors
2. generate the new states with --list-errors
3. compare the old and new states with --compare-errors
4. manually reconcile the differences between the old and new states
5. write error messages for the new states
6. add %on_error_reduce and go back to step 1, if step 5 is too hard
7. check that the error messages for the old states are still meaningful
8. check that the set of states is both correct (--compile-errors) and
   complete (--compare-errors)

We were doing only step 1 and half of step 8. Doing the other half of
step 8 would have prevented issue #172 from occurring. But that would have
meant doing step 4 after each parser modification, which was never done.
Note that step 2 is so expensive that it is impossible to perform step 8
during continuous integration.

Given the work needed to update the error messages after a syntax change,
I don't think we can reliably use them until WhyML no longer evolves.
ce21b6c1
History
Name Last commit Last update