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
- Read the language report for the full specification.
- Browse the runtime API reference.
- Explore the references for background reading.