/sigma

A compiled, statically typed, C-like, data oriented language with a focus on performance and low-level optimization using GPU acceleration via kernels.

Primary LanguageC++MIT LicenseMIT

sigma logo

Linux Windows

Sigma is a compiled, statically typed, C-like, data oriented language with a focus on performance and low-level optimization using GPU acceleration via kernels. Sigma is currently under heavy development and isn't ready for stable use.

Getting up and running

Get started by running:

# Download Sigma's source code
$ git clone https://github.com/Goubermouche/sigma.git --recursive
$ cd sigma

# Generate project files
$ premake5 vs2022

After downloading and building the project you can compile a .s file [WIP]:

# Compile main.s as a Sigma source file
$ sigma compile main.s

Project status

As Sigma is currently under heavy development, it isn't ready for stable use, and many breaking changes may (and most likely will) be made. Please note that while the end goal is to target GPU's and other massivelly parallel targets, the current goal is to get a basic CPU-oriented language going, and there isn't a hard timeframe set - for more details see the current status bellow:

  • TODO:
    • Project cleanup
    • Better object file emitter (Windows)
    • First PTX tests
  • Future:
    • Unified package manager
    • Official GPU support via kernels

Contributing

Contributions, either to the compiler implementation, or related to language design are greatly appreciated and welcome.

Tooling

Sigma strives to be a fully functional enviroment, for this purpose we're developing several tools which aim to ease entry cost and improve the developer experience. As more tools become available they will be added to the list bellow:

Dependencies

  • Premake5
  • TB (indirect, Sigma contains a 'C++ reimplementation' of some TB systems)