Skip to content

spicelang/spice

Repository files navigation

Spice Logo

Spice Programming Language

Compiler and standard library for the Spice programming language.

Latest release Docker pulls CI status CodeQL status PRs welcome License Discord server


This is the home repo of the Spice programming language. Spice is a compiled language which sets a focus on performance and practicality. It is considered as a systems language, which means it is especially useful to write cli tools or device drivers. Spice supports cross-compilation to all target platforms, listed below.

If you like Spice, please consider a GitHub star! ⭐

⚠️ The compiler of the Spice language is still in alpha stages and under development. Please note that code may behave differently in the future or even break due to the volatility of the compiler.

Documentation

Please visit the documentation at spicelang.com.
We also have a Spice playground where you can try things: spice.compiler-explorer.com
Code coverage can be found at coverage.spicelang.com.

Supported host systems & file downloads

There are downloadable packages available for all supported platforms:

Platform amd64 arm64
Alpine (apk) download download
CentOS (rpm) download download
Debian (deb) download download
Fedora (rpm) download download
Raspbian (deb) download download
Ubuntu (deb) download download
Windows Installer (msi) download -
Windows Portable (zip) download -
MacOS / Darwin (tar.gz) download download

Setup guide for contributors

Clone the project

git clone https://github.com/spicelang/spice.git
cd spice

Setup dev environment

There is a batch/shell script called dev-setup to help you with that. It will do the following things:

  • Make sure you have all dependencies
  • Clone and build the required LLVM version to the llvm subdirectory
  • Download all required third-party libs to the lib subdirectory
  • Build Spice for the first time into the bin subdirectory

Use this command to run it:

# Linux
./dev-setup.sh
# Windows
.\dev-setup.bat

Re-build Spice

There is also a batch/shell script to rebuild Spice. Use the following command to run it:

# Linux
./build.sh
# Windows
.\build.bat

You can find the build output in the bin subdirectory.

Available target platforms

Currently, Spice only offers stable support for linux/x86_64, linux/aarch64 and windows/x86_64. But you can try to compile to the following architectures without any stability promises:

aarch64, amdgpu, armv5, armv6, armv7, avr, bpf, hexagon, lanai, loongarch, mips, msp430, nvptx, powerpc, riscv, sparc, systemz, ve, webassembly, x86, x86_64, xcore

Contribute to the project

If you want to contribute to this project, please ensure you comply with the contribution guidelines.

© ChilliBits 2021-2024