Downloading & Installing the sac2c Eco System

To get started, you need to install the compiler sac2c and the standard library Stdlib. Both of them can either be installed via a precompiled package or from sources.

Please choose the package that matches your operating system best:

RPM (RedHat Based distributions such as RedHat, CentOS, Fedora, ...)

The rpm release of the compiler is designed to be installed on RedHat based distributions of Linux (e.g. RedHat, CentOS, Fedora, etc.) using the dnf or rpm tool set.

Choose and download the appropriate packages (sac2c & stdlib). Thereafter you can install them via:

$ sudo dnf install sac2c-VERSION-RELEASE.rpm
$ sudo dnf install sac-stdlib-VERSION-RELEASE.rpm
$ sudo rpm --install sac2c-VERSION-RELEASE.rpm
$ sudo rpm --install sac-stdlib-VERSION-RELEASE.rpm

DEB (Debian based distributions such as Debian, Ubuntu, ...)

The deb package is meant to be installed on Debian based distributions (e.g. Debian, Ubuntu, etc.) using the dpkg or the apt tool set.

Choose and download the appropriate packages (sac2c #and# stdlib). Thereafter you can install them via:

$ sudo dpkg --install sac2c-VERSION-RELEASE.deb
$ sudo dpkg --install sac-stdlib-VERSION-RELEASE.deb
$ sudo apt install sac2c-VERSION-RELEASE.deb
$ sudo apt install sac-stdlib-VERSION-RELEASE.deb

Pkg (Apple MacOS)

The pkg is an installer that will place the SaC files in the correct location on your system. Symbolic links to the SaC binaries are created in /usr/local/bin for your convenience.

Choose and download the appropriate packages (sac2c #and# stdlib). Thereafter you can install them via:

  1. Double click the downloaded file sac2c-VERSION-RELEASE.pkg
  2. A dialog box should appear that will guide you through the install process
  3. Confirm that you agree with our license, and click Install to install SaC
  4. The binaries sac2c, sac2c_p, and sac2c_s should be in your PATH
  5. Repeat the procedure with the file sac-stdlib-VERSION-RELEASE.pkg

NB: The SaC binaries are postfixed by their release type (production or debug), so there is a sac2c_p and sac2c_d respectively, sac2c is simply a link to sac2c_p.

Windows 10

While we do not currently support a native Windows version, you can still use it through a virtualisation layer of your choosing. The easiest way to use sac2c on a Windows 10 system is to use Window's own virtualisation for Linux support, the Windows Subsystem for Linux (WSL). To do this, you have to do four things:

  1. You need to activate the developer mode of Windows. (Settings → Update & Security → For developers → tick the Developer Mode)
  2. You need to activate the WSL. (Control Panel → Programs → Programs & Features → Turn Features On & Off → tick Windows Subsystem for Linux)
  3. Go to the Microsoft Store and choose a Linux Distribution of your choice, e.g, Ubuntu 18.04 LTS.

Choose and download the packages (sac2c #and# stdlib) that match your chosen Linux Distribution. Thereafter you can install them using that system's package manager (if in doubt, cf. the corresponding section above)!

After that, you should have the sac system up and running!

ArchLinux and NixOS

These are user contributed packages. Any documentation / help can be found through the corresponding package locations.

TAR.GZ (Unix-like operating systems)

The .tar.gz archive is intended for arbitrary installs, meaning that if you can't install sac2c using one of the other packages due to system permissions, you can use this archive to install it under you home-directory. The libraries of the compiler can be placed anywhere so long as the sac2c binary (and related) know where to find them. For this reason the archive provides the sac2c binary (and related) as source code to be compiled by the end-user.

For simplicities sake, an install script is provided. It supports several flags, but the most important one is -i to indicate where you want to install everything (for example ~/.local).

Installation of the compiler is as simple as extracting from the archive:

$ mkdir ~/temp_extract && cd ~/temp_extract
$ tar -xzf sac2c-VERSION-RELEASE.tar.gz
$ nano README                            # if you want more information on the install
$ bash ./ -i INSTALL_DIR       # and thats it
$ cd ~ && rm -rf temp_extract

In case you run into any troubles installing, please get in touch via our community channels!

The sources are hosted on two git servers:

Building the Stdlib from sources

The standard library is hosted on within the Stdlib repository. If you do have sac2c installed (either via a package or from source), you can find instructions on how to build the Stdlib in the README. However, we have some more details on how to build and install the standard library here as well; it mainly covers some issues that some users have encountered when using several versions or a mix of installed and hand-compiled versions.

If you are curious about the details on where the built modules are actually stored or on how platform dependent versions are created and kept apart you can read up about cross compilation and the SBI (SaC Binary Interface).

Contributions via pull-requests are always welcome!

Building sac2c from sources

The compiler is hosted on within the sac-group/sac2c repository. As for, you need to create an account on as well. Build instructions can be found there in the README as well. However, we have some more details in the internal section of this dokuwiki. To get access to those parts, you need to register on our dokuwiki as well. You can do so here. Contributions via pull-requests here are also always welcome!

Both of the above mentioned git servers contain further goodies.

On these are user-oriented and contain inter alia:

On these are compiler-developer oriented. Examples are:

  • further docker images,
  • language servers,
  • and various other SaC related things by several of our contributors.

Feel free to browse and contribute!