Skip to content

Installation ​

Install novac ​

On macOS and Linux:

sh
curl -fsSL https://vkuttyp.github.io/Nova/install.sh | sh

On Windows, in PowerShell:

powershell
irm https://vkuttyp.github.io/Nova/install.ps1 | iex

The script downloads the latest release of novac for your machine from GitHub, checks its SHA-256, and installs it in ~/.nova/bin (%USERPROFILE%\.nova\bin). On macOS and Linux it then tells you how to add that directory to your PATH; on Windows it adds it for you. NOVA_VERSION=v0.1.0 installs a given release instead. Run the same line again to update.

novac is one native executable: it needs no .NET or other runtime. The macOS builds are signed and notarized by Apple. The Linux builds need glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora 36 and later).

sh
novac --version

Requirements ​

ForNotes
A C compiler: clang, gcc or MSVCnovac buildclang and gcc are fully supported; MSVC is best-effort (/std:c11). check, run --interp, fmt, lsp and mcp need none
gitdependencies from git repositoriesonly for packages that use them
.NET 10 SDKbuilding novac from sourcenot needed to install or use a release
Node.js and Vite+the VS Code extension, this siteoptional

Build from source ​

To work on Nova itself, or on a platform without a release, build novac from the repository:

sh
git clone https://github.com/vkuttyp/Nova.git
cd Nova
dotnet build src/Nova.Cli -c Release

The compiler is src/Nova.Cli/bin/Release/net10.0/novac (novac.exe on Windows). It finds its runtime and its core library next to itself, so it can be run from anywhere.

To check everything, run the test suite (about 3,300 tests; ten minutes or so, since many compile and run C):

sh
dotnet test Nova.slnx

Put a source build on your PATH ​

A wrapper script keeps following the build when you rebuild. On macOS and Linux, with ~/.local/bin on your PATH:

sh
cat > ~/.local/bin/novac <<EOF
#!/bin/sh
exec "$PWD/src/Nova.Cli/bin/Release/net10.0/novac" "\$@"
EOF
chmod +x ~/.local/bin/novac
novac --version

On Windows, add src\Nova.Cli\bin\Release\net10.0 to your PATH.

Check that it works ​

sh
cat > hello.nova <<'EOF'
fn main() {
    Console.writeLine("Hello, Nova");
}
EOF
novac build hello.nova -o hello && ./hello      # through C, to a native program
novac run --interp hello.nova                   # or in the reference interpreter

novac build uses the C compiler in $CC, or cc; --cc clang picks one. On Windows it finds one itself: clang (winget install LLVM.LLVM), MinGW's gcc, or Visual Studio's cl, and it sets up Visual Studio's headers and libraries for clang and cl when you are not in a developer prompt. So with LLVM and Visual Studio's "Desktop development with C++" workload (or its Build Tools) installed, novac build works from any terminal and makes out\hello.exe (tooling §8).

Editor support ​

The repository has a VS Code extension in editors/vscode: syntax highlighting, and through novac lsp errors as you type, hover, go to definition, the outline and formatting. See Editors to build and install it, and to use the language server from other editors.

Pre-1.0: the language and its tools are still changing.