Skip to content

aripiprazole/lura

Repository files navigation

Lura

Incremental/single-pass based compiler, the API can be either used for Single-Pass Compiling and for building LSP, or things that would need incremental pipelines. It's a study project of mine for studying incremental compilers and package-managers.

The project is still being developed, and the table of contents is:

The objective of this project is:

  • Dealing with language-servers, and direct support for Visual Studio Code
  • Having a full-featured CLI for building, and packaging libraries for Lura
  • Lowering to LLVM-IR, and executing JIT
  • Error-resistant compiler, like having a compile-time error, and still can compile, because the error fall onto the runtime
  • Interpreter for basic things like macro-expanding.
  • Query-based architecture.

It's all based on the works:

And have some great inspirations in rust-analyzer code-base..

Running

Clone the repository with git submodule update --recursive --remote

Garbage-Collection

The goal of this compiler isn't optimizing things, it's more like an IDE, so the garbage collector is based on Reference Counting.

License

Lura is distributed under the terms of the MIT license.