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

Error recovery #10

Closed
ollef opened this issue Oct 19, 2017 · 1 comment
Closed

Error recovery #10

ollef opened this issue Oct 19, 2017 · 1 comment

Comments

@ollef
Copy link
Owner

ollef commented Oct 19, 2017

Throughout the whole frontend (parser and typechecker especially) we should try to continue working even in the face of errors. We should insert coercion terms that throw errors if something that errored is used, but otherwise try our best to create a runnable program even when there are errors, a la deferred type errors.

This means that we can report multiple errors (which is important for tooling), and that we can test programs while they're being written.

ollef added a commit that referenced this issue Dec 29, 2018
This refactors the compiler from a push-based, more traditional,
pipeline, to a pull- and query-based architecture built on a build
system library made for the purpose, inspired by Shake and the Build
systems a la carte paper: https://github.com/ollef/rock

This will enable parallel and incremental builds in the future and will
help solve #10, #13, and #26.

This also implements some improvements that were necessary along the way
to get the tests to pass, for example:

* Recover from all errors (barring bugs), fixing #10.
* Improve logging with logging prefixes for selective printing.
* Fix some tests that were wrong.

There's still some stuff to refactor and fix up, but since the tests now
pass I think it's a good time to get it merged.
@ollef
Copy link
Owner Author

ollef commented Dec 29, 2018

Mostly done in #119.

@ollef ollef closed this as completed Dec 29, 2018
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