Skip to content

Installation

Nautilus requires:

  • a Chelis toolchain from the Chelis-Lang releases page
  • GCC (for compiling generated C code)
  • Python 3.10+ with numpy and scipy (for the scipy-parity oracle in parity/)

Download the prebuilt binary tarball for your platform from the Chelis-Lang releases page. The release workflow attaches chelis-<version>-linux-x86_64.tar.gz and chelis-<version>-darwin-arm64.tar.gz artifacts. Unpack the tarball and add its bin/ directory to your PATH:

Terminal window
tar xzf chelis-<version>-linux-x86_64.tar.gz
export PATH="$PWD/chelis-<version>-linux-x86_64/bin:$PATH"

The tarball contains bin/chelis, lib/libchelis_runtime.a, and include/chelis_runtime.h.

Terminal window
git clone https://github.com/Chelis-Lang/nautilus.git
cd nautilus
chelis reef build

This produces a dist/nautilus-<version>.chb reef package that other Chelis projects can depend on.

Terminal window
# Type-check all modules
for f in src/*.ch; do chelis check "$f"; done
# Run the native identity / structural test gate (438 tests)
chelis test tests/ --jobs auto
# Serial fallback for debugging
chelis test tests/ --jobs 1
# Run the scipy-parity oracle (requires numpy + scipy)
pip install numpy scipy
python parity/run_parity.py --strict

You should see 438 passed, 0 failed from chelis test, and parity totals: 216 passed, 0 failed from the parity oracle.

If your chelis binary is not on PATH, set CHELIS_BIN=/abs/path/to/chelis when running the Python validation scripts.

Add Nautilus as a reef dependency in your project's reef.toml:

[dependencies]
nautilus = { path = "../nautilus" }

Then import the modules you need:

import Nautilus.Special (erf, erfinv)
import Nautilus.Distributions (normal_cdf, normal_inv_cdf)