Serene

Getting started

Serene is under heavy development. This guide is dedicated to help you to get started with Serene development.

The only dependency you need to install is Nix. It provides a reproducible environment with every tool the project needs. If you don't want to use Nix, then you are on your own. But you can still contact us and we will help to the best of our abilities.

Development shell

We recommend direnv with nix-direnv. With nix-direnv already installed, navigating to the Serene directory will activate the appropriate environment for you and you don't need to do anything else.

Otherwise, drop into a shell with all dependencies set up:

nix develop

Build the compiler

The stage-0 compiler lscz2 is written in Idris2. From inside lscz2/:

# Typecheck the library (fastest check)
idris2 --typecheck lscz.ipkg

# Build and run the test suite
idris2 --build tests.ipkg
./build/exec/lscz-tests

Build the runtime

The runtime is a C/C++ project built with Meson:

nix build .#runtime

Next steps