An open API service indexing awesome lists of open source software.

https://github.com/purefunctor/purescript-alexandrite

Language implementation for PureScript
https://github.com/purefunctor/purescript-alexandrite

compiler functional-programming purescript

Last synced: 11 days ago
JSON representation

Language implementation for PureScript

Awesome Lists containing this project

README

          

alexandrite


a language implementation for PureScript

---

Alexandrite is a language implementation for PureScript, powered by an incremental, query-based build
system. Instead of a sequence of compiler phases, Alexandrite models compilation and semantic information
as incrementally computed queries. These queries are used extensively to implement code intelligence
features in the language server.

The build system is designed with interactive editing in mind. To support this, it tracks dependencies
between inputs and queries, caches query results, deduplicates in-progress work across threads, and
supports cooperative cancellation when inputs change. Crucially, many query results are designed to
be incrementally reusable. For example, the compiler uses stable identities in lieu of source ranges
to enable minimal recomputation across trivial formatting changes.

The language server component implements core code intelligence features such as completion, jump to
definition, hover information, find references, workspace symbol search, and diagnostics.