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

avoidance of inconsistent states in case of errors #31

Open
GoogleCodeExporter opened this issue Mar 14, 2015 · 1 comment
Open

avoidance of inconsistent states in case of errors #31

GoogleCodeExporter opened this issue Mar 14, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link
Contributor

Many sanity checks ar performed at runtime. Examples are:

  • When constructing ASTs the respective specification must be compiled
  • When compiling a specification, its consistency is checked
  • When querying AST information, the respective information must exists (querying the parent of a root throws an exception, likewise querying a bud-node for its type etc.)
  • When rewriting, its is ensured that rewrites satisfy the AST scheme

Many of these actions are accompanied by respective internal state changes of
the specification, AST, dependency graphs, evaluator etc. If internal state
changes are intertwined with sanity checks that throw exceptions, the system
can end in an inconsistent state. It is desirable however, that RACR exceptions
are continuable, such that users have a chance to fix their request and try
again. In consequence, sanity checks should be performed before any state
change, such that respective exceptions are thrown before atomic state changes
are preformed.

The objective of this issue is to refactor all state changing functions such
that they become continuable in case of errors thrown by RACR sanity checks.
Note, that ordinary Scheme exceptions are not subject of this issue; Only RACR
exceptions as introduced by issue #8.

This issue replaces issue #9.

Original issue reported on code.google.com by Christoff.Buerger on 13 Mar 2015 at 1:43

@christoff-buerger
Copy link
Owner

Issue #9 has been merged into this issue.

@christoff-buerger christoff-buerger changed the title Avoidance of inconsistent states in case of errors avoidance of inconsistent states in case of errors Oct 14, 2017
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

2 participants