Skip to content
Snippets Groups Projects
Commit ce21b6c1 authored by Guillaume Melquiond's avatar Guillaume Melquiond
Browse files

Remove handcrafted error messages (fix issues #150 and #172).

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.
parent 201d8696
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment