This is an old revision of the document!
1 Compiler: the sac2c ecosystem
Binary releases of the compiler and the standard library are provided in the following sections. We provide two release types, major releases and weekly releases.
Which release type should I use?
At the moment, we suggest using one of the weekly release packages as these include some of the latest features. These packages only differ from our stable release packages in that we do less testing before releasing them.
Package Variants
We provide two types of packages variants, basic and full.
- Basic package
- — package excludes special features, like the GPU backend or advanced multi-threading scheduling.
- — makes use of minimal external dependencies: gcc, libc, uuid-lib.
- Full package
- — package includes GPU backend and advanced multi-threading scheduling.
- — more external dependencies: gcc, libc, uuid-lib, hwloc, cuda*
- * CUDA must be installed as per the recommended guidelines of the distribution. Our packages are built using docker containers provided by NVIDIA, look there for their installation procedure.
We use a CI cluster to build these packages using configurations defined in our package build repo.
Which variant should I use?
For normal usage, the basic variant is sufficient to try out all of the features of the Single Assignment C language.
Version Number
We use semantic versioning, but additionally store the commit count (since the last version change) and the release number. Using 1.3.2-256-1
as an example, 1.3.2
is the version number which has 256
new commits on top and has been packages/release only once (1
).
The version number may not match with what is in the filename of the package.
Weeklies --- Bleeding-Edge Release
The packages listed here are built from the latest changes to our development branch. Some of the features provided are still in development and may not work as expected. Please message use on the user mailing list if you encounter any problem.
Ubuntu 16
Filename | Filesize | Last modified |
---|---|---|
1.3.3-359-2/full/sac-checksums.sha256.txt | 241.0 B | 2019/09/25 02:30 |
1.3.3-359-2/full/sac-stdlib-1.3-76-gfc43.deb | 73.2 MiB | 2019/09/25 02:30 |
1.3.3-359-2/basic/sac-checksums.sha256.txt | 243.0 B | 2019/09/25 00:52 |
1.3.3-359-2/basic/sac-stdlib-1.3-76-gfc43.deb | 70.9 MiB | 2019/09/25 00:52 |
1.3.3-359-2/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.deb | 39.0 MiB | 2019/09/25 00:07 |
1.3.3-359-2/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.deb | 37.6 MiB | 2019/09/24 22:35 |
1.3.3-359-1/full/sac-checksums.sha256.txt | 241.0 B | 2019/09/08 11:45 |
1.3.3-359-1/full/sac-stdlib-1.3-68-g7392.deb | 73.2 MiB | 2019/09/08 11:45 |
1.3.3-359-1/basic/sac-checksums.sha256.txt | 243.0 B | 2019/09/08 11:20 |
1.3.3-359-1/basic/sac-stdlib-1.3-68-g7392.deb | 70.9 MiB | 2019/09/08 11:19 |
1.3.3-359-1/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.deb | 37.6 MiB | 2019/09/08 09:25 |
1.3.3-359-1/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.deb | 39.0 MiB | 2019/09/08 09:23 |
Ubuntu 18
RHEL 6
Filename | Filesize | Last modified |
---|---|---|
1.3.3-359-2/full/sac-checksums.sha256.txt | 241.0 B | 2019/09/25 15:51 |
1.3.3-359-2/full/sac-stdlib-1.3-76-gfc43.rpm | 45.1 MiB | 2019/09/25 15:51 |
1.3.3-359-2/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 16.3 MiB | 2019/09/25 13:39 |
1.3.3-359-2/basic/sac-checksums.sha256.txt | 243.0 B | 2019/09/24 23:44 |
1.3.3-359-2/basic/sac-stdlib-1.3-76-gfc43.rpm | 43.7 MiB | 2019/09/24 23:44 |
1.3.3-359-2/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 15.4 MiB | 2019/09/24 21:39 |
1.3.3-359-1/full/sac-checksums.sha256.txt | 241.0 B | 2019/09/08 09:27 |
1.3.3-359-1/full/sac-stdlib-1.3-68-g7392.rpm | 45.1 MiB | 2019/09/08 09:27 |
1.3.3-359-1/basic/sac-checksums.sha256.txt | 243.0 B | 2019/09/08 08:40 |
1.3.3-359-1/basic/sac-stdlib-1.3-68-g7392.rpm | 43.7 MiB | 2019/09/08 08:40 |
1.3.3-359-1/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 16.3 MiB | 2019/09/08 06:34 |
1.3.3-359-1/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 15.4 MiB | 2019/09/08 06:32 |
RHEL 7
Filename | Filesize | Last modified |
---|---|---|
1.3.3-359-2/full/sac-checksums.sha256.txt | 241.0 B | 2019/09/25 01:38 |
1.3.3-359-2/full/sac-stdlib-1.3-76-gfc43.rpm | 52.8 MiB | 2019/09/25 01:38 |
1.3.3-359-2/basic/sac-checksums.sha256.txt | 243.0 B | 2019/09/25 00:01 |
1.3.3-359-2/basic/sac-stdlib-1.3-76-gfc43.rpm | 51.4 MiB | 2019/09/25 00:01 |
1.3.3-359-2/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 16.0 MiB | 2019/09/24 22:51 |
1.3.3-359-2/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 15.6 MiB | 2019/09/24 21:42 |
1.3.3-359-1/full/sac-checksums.sha256.txt | 241.0 B | 2019/09/08 09:49 |
1.3.3-359-1/full/sac-stdlib-1.3-68-g7392.rpm | 52.8 MiB | 2019/09/08 09:49 |
1.3.3-359-1/basic/sac-checksums.sha256.txt | 243.0 B | 2019/09/08 09:07 |
1.3.3-359-1/basic/sac-stdlib-1.3-68-g7392.rpm | 51.4 MiB | 2019/09/08 09:06 |
1.3.3-359-1/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 16.0 MiB | 2019/09/08 06:40 |
1.3.3-359-1/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.rpm | 15.6 MiB | 2019/09/08 06:36 |
MacOS
Filename | Filesize | Last modified |
---|---|---|
1.3.3-360-1/basic/sac-stdlib-1.3-76-gfc43.pkg | 24.7 MiB | 2019/09/26 13:03 |
1.3.3-360-1/basic/sac-checksums.sha256.txt | 209.0 B | 2019/09/09 13:49 |
1.3.3-360-1/basic/sac-stdlib-1.3-67-g11fce.pkg | 24.7 MiB | 2019/09/09 13:48 |
1.3.3-360-1/basic/sac2c-1.3.3-MijasCosta-360-g439c80-omnibus.pkg | 6.7 MiB | 2019/09/06 18:22 |
Linux x64
The contents of this package can be installed anywhere on your system (this is particularly useful if you do not have root permission!). Upon open the archive, you will find a README file and an install script (install.sh
). Please read the README on how to use the install script.
Filename | Filesize | Last modified |
---|---|---|
1.3.3-359-2/full/sac-checksums.sha256.txt | 247.0 B | 2019/09/24 22:28 |
1.3.3-359-2/full/sac-stdlib-1.3-76-gfc43.tar.gz | 78.8 MiB | 2019/09/24 22:28 |
1.3.3-359-2/basic/sac-checksums.sha256.txt | 249.0 B | 2019/09/24 21:26 |
1.3.3-359-2/basic/sac-stdlib-1.3-76-gfc43.tar.gz | 76.7 MiB | 2019/09/24 21:25 |
1.3.3-359-2/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.tar.gz | 42.2 MiB | 2019/09/24 18:53 |
1.3.3-359-2/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.tar.gz | 40.7 MiB | 2019/09/24 18:50 |
1.3.3-359-1/full/sac-checksums.sha256.txt | 247.0 B | 2019/09/08 02:27 |
1.3.3-359-1/full/sac-stdlib-1.3-68-g7392.tar.gz | 78.8 MiB | 2019/09/08 02:27 |
1.3.3-359-1/basic/sac-checksums.sha256.txt | 249.0 B | 2019/09/08 01:44 |
1.3.3-359-1/basic/sac-stdlib-1.3-68-g7392.tar.gz | 76.7 MiB | 2019/09/08 01:44 |
1.3.3-359-1/full/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.tar.gz | 42.2 MiB | 2019/09/07 23:11 |
1.3.3-359-1/basic/sac2c-1.3.3-MijasCosta-359-g856d44-omnibus.tar.gz | 40.7 MiB | 2019/09/07 23:07 |
Extra
We also have some user-contributed packages — as these are packages outwith the project, we can not provide any support on these. Please communicate with the package maintainers directly.
OS | External Link |
---|---|
ArchLinux | via sac-compiler-weekly and sac-stdlib-weekly |
Legacy
Here we list some of the older releases for platforms we no longer package for.
Ubuntu 14
Filename | Filesize | Last modified |
---|---|---|
1.3.3-352/sac-checksums.sha256.txt | 226.0 B | 2019/04/28 10:12 |
1.3.3-352/sac-stdlib-1.3-66-g58e8.deb | 73.9 MiB | 2019/04/28 10:12 |
1.3.3-352/sac2c-1.3.3-MijasCosta-352-g727db-omnibus.deb | 39.7 MiB | 2019/04/28 06:41 |
Major Release
The following packages contain the latest major-number release of sac2c
.
Old releases
The packages provided here are old and not fully supported. Please use one of the weekly packages instead.
Ubuntu 14
Ubuntu 16
Ubuntu 18
RHEL 6
Filename | Filesize | Last modified |
---|---|---|
sac2c-1.2-beta-BlackForest-669-gcd2f5-omnibus.rpm | 15.1 MiB | 2018/04/29 08:30 |
sac2c-1.2-beta-BlackForest-662-g8c92-omnibus.rpm | 15.0 MiB | 2018/03/04 07:51 |
sac2c-develop-2018-01-29-weekly.rpm | 15.1 MiB | 2018/01/29 21:08 |
sac2c-1.2-beta-BlackForest-467-gce8d4-omnibus.rpm | 12.6 MiB | 2017/04/25 16:17 |
RHEL 7
Filename | Filesize | Last modified |
---|---|---|
sac2c-1.2-beta-BlackForest-467-gce8d4-omnibus.rpm | 13.1 MiB | 2017/04/25 16:18 |
Debian 7
Filename | Filesize | Last modified |
---|---|---|
sac2c-1.2-beta-BlackForest-omnibus.deb | 33.7 MiB | 2017/04/25 16:18 |
Debian 8
Filename | Filesize | Last modified |
---|---|---|
sac2c-1.2-beta-BlackForest-omnibus.deb | 32.7 MiB | 2017/04/25 16:18 |
Linux x64
Filename | Filesize | Last modified |
---|---|---|
sac-stdlib-1.3-167-g5d1a.tar.gz | 360.3 MiB | 2024/05/19 16:48 |
sac2c-1.3.3-MijasCosta-1235-gf8245-omnibus.tar.gz | 42.0 MiB | 2024/05/18 17:44 |
sac2c-1.3.3-MijasCosta-1230-g757762-omnibus.tar.gz | 40.9 MiB | 2024/05/17 11:58 |
sac2c-1.2-beta-BlackForest-467-gce8d4-omnibus.tar.gz | 32.7 MiB | 2017/04/25 16:16 |
MacOS X (10.12)
Filename | Filesize | Last modified |
---|---|---|
sac2c-1.2-beta-BlackForest-467-gce8d4-omnibus.pkg | 5.8 MiB | 2017/04/25 16:15 |
Installing
RPM (RedHat Based distributions)
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 rpm
tool set.
Installation:
$ sudo rpm --install sac2c-VERSION-RELEASE.rpm
DEB (Debian based distributions)
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.
Installation:
$ sudo dpkg --install sac-VERSION-RELEASE.debor
$ sudo apt install sac-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.
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
.
Installation:
- Double click the downloaded
pkg
file - A dialog box should appear that will guide you through the install process
- Confirm that you agree with our license, and click Install to install SaC
- The binary
sac2c_p
should be in yourPATH
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 ./install.sh -i INSTALL_DIR # and thats it $ cd ~ && rm -rf temp_extract
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:
- You need to activate the developer mode of Windows. (Settings → Update & Security → For developers → tick the Developer Mode)
- You need to activate the WSL. (Control Panel → Programs → Programs & Features → Turn Features On & Off → tick Windows Subsystem for Linux)
- Go to the Microsoft Store and choose a Linux Distribution of your choice, e.g, Ubuntu 18.04 LTS.
- Download the basic version of
sac2c
andsac-stdlib
that matches the Linux version you have chosen and install it. For Ubuntu, you download the corresponding.deb
files and then run
$sudo apt update $sudo apt install sac2c-VERSION-RELEASE.deb $sudo apt install sac-stdlib-VERSION-RELEASE.deb
After that, you should have the sac system up and running:
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
.
Contribute?
Interested in contributing to the project? You can do so in several ways, by either telling us about bugs or by contributing code to the project.
Reporting bugs
Head over to the community page and follow the guidelines there on how to submit a bug.
Contributing code
- Create an account on this site by registering,
- and send an email to info@sac-home.org indicating that you'd like to have access to the compiler sources.