Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Isabelle + Haskell] Reasonable error messages #75

Open
diekmann opened this issue Apr 5, 2016 · 2 comments
Open

[Isabelle + Haskell] Reasonable error messages #75

diekmann opened this issue Apr 5, 2016 · 2 comments

Comments

@diekmann
Copy link
Owner

diekmann commented Apr 5, 2016

The fffuu Haskell tool fails with the error message "undefined" if some precondition of the Isabelle-generated code does not hold. For example, Isabelle assumes that an ipassmt does not have wildcard interface names in it. For safety reasons, the Isabelle-generated code checks preconditions at runtime. If it fails, it just aborts with "undefined". There are many different cases how this undefined can be triggered. It is almost impossible to debug which "undefined" triggered. Feature request: human-readable error messages for each undefined!

@diekmann
Copy link
Owner Author

diekmann commented Apr 9, 2016

TODOs:
Asses where safe versions of Isabelle-generated functions can be exported without cluttering the code with error handling.
If Isabelle-generated functions are called wrongly, then this is a coding error and an exception is fine. If functions are given an unsupported input at runtime and we need to explain to the user what the error was, we probably want safe functions. What does Isabelle Monad syntax provide?
Functions that should only be exported in their safe version:

  • Isabelle.rewrite_Goto
  • Isabelle.map_of_ipassmt

@diekmann
Copy link
Owner Author

diekmann commented Jun 1, 2016

Using rewrite_Goto_safe and unfold_ruleset_CHAIN_safe consistently now.

  • map_of_ipassmt may still error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant