Both sides previous revision Previous revision Next revision | Previous revisionLast revisionBoth sides next revision |
download:sac2c [2020/04/06 10:31] – added table of newest release hnv | download:sac2c [2022/02/03 10:55] – sbs |
---|
===== 1 Compiler: the sac2c ecosystem ===== | ==== Installing the sac2c Eco System ==== |
| |
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. | 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. |
| |
<callout type="primary" icon="true"> | === Installation via packages === |
=== 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. | |
</callout> | |
| |
=== Package Variants === | Please choose the package that matches your operating system best: |
| |
We provide two types of packages variants, **basic** and **full**. | |
| |
<HTML> | |
<dl> | |
<dt><b>Basic package</b></dt> | |
<dd>— package excludes special features, like the GPU backend or advanced multi-threading scheduling.</dd> | |
<dd>— makes use of minimal external dependencies: <em>gcc, libc, uuid-lib</em>.</dd> | |
<dt><b>Full package</b></dt> | |
<dd>— package includes GPU backend and advanced multi-threading scheduling.</dd> | |
<dd>— more external dependencies: <em>gcc, libc, uuid-lib, hwloc, cuda<em>*</em></em></dd> | |
<dd>* CUDA must be installed as per the recommended guidelines of the distribution. Our packages are built using <a href="https://hub.docker.com/r/nvidia/cuda">docker containers</a> provided by NVIDIA, look there for their installation procedure.</dd> | |
</dl> | |
</HTML> | |
| |
//We use a CI cluster to build these packages using configurations defined in our [[https://www.macs.hw.ac.uk/gitlab/sac-group/build-sac-pkgs|package build repo]].// | |
| |
<callout type="primary" icon="true"> | |
=== 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. | |
</callout> | |
| |
=== 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 [[:mailing_lists#user_mailing_lists|user mailing list]] if you encounter any problem. | |
| |
<callout type="warning" icon="true"> | |
=== Releases have moved === | |
We now provide these packages via a separate repository, at https://gitlab.science.ru.nl/sac-group/sac-packages/-/releases. To get the latest releases, please look there first. | |
</callout> | |
| |
== Weekly Release v1.3.3-383-1 == | |
| |
^ System ^ Basic ^ Full ^ | |
| Linux (generic) | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Linux/1.3.3-383-1/basic/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Linux/1.3.3-383-1/basic/sac-stdlib-1.3-81-g930d.tar.gz|sac-stdlib-1.3-81-g930d.tar.gz]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Linux/1.3.3-383-1/basic/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.tar.gz|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.tar.gz]] | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Linux/1.3.3-383-1/full/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Linux/1.3.3-383-1/full/sac-stdlib-1.3-81-g930d.tar.gz|sac-stdlib-1.3-81-g930d.tar.gz]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Linux/1.3.3-383-1/full/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.tar.gz|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.tar.gz]] | | |
| RHEL 7 | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL7/1.3.3-383-1/basic/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL7/1.3.3-383-1/basic/sac-stdlib-1.3-81-g930d.rpm|sac-stdlib-1.3-81-g930d.rpm]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL7/1.3.3-383-1/basic/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.rpm|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.rpm]] | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL7/1.3.3-383-1/full/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL7/1.3.3-383-1/full/sac-stdlib-1.3-81-g930d.rpm|sac-stdlib-1.3-81-g930d.rpm]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL7/1.3.3-383-1/full/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.rpm|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.rpm]] | | |
| RHEL 6 | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL6/1.3.3-383-1/basic/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL6/1.3.3-383-1/basic/sac-stdlib-1.3-81-g930d.rpm|sac-stdlib-1.3-81-g930d.rpm]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/RHEL6/1.3.3-383-1/basic/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.rpm|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.rpm]] | | | |
| Ubuntu 18.04 | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl18/1.3.3-383-1/basic/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl18/1.3.3-383-1/basic/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl18/1.3.3-383-1/basic/sac-stdlib-1.3-81-g930d.deb|sac-stdlib-1.3-81-g930d.deb]] | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl18/1.3.3-383-1/full/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl18/1.3.3-383-1/full/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl18/1.3.3-383-1/full/sac-stdlib-1.3-81-g930d.deb|sac-stdlib-1.3-81-g930d.deb]] | | |
| Ubuntu 16.04 | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl16/1.3.3-383-1/basic/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl16/1.3.3-383-1/basic/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl16/1.3.3-383-1/basic/sac-stdlib-1.3-81-g930d.deb|sac-stdlib-1.3-81-g930d.deb]] | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl16/1.3.3-383-1/full/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.deb]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl16/1.3.3-383-1/full/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/Ubl16/1.3.3-383-1/full/sac-stdlib-1.3-81-g930d.deb|sac-stdlib-1.3-81-g930d.deb]] | | |
| MacOS | [[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/MacOS/1.3.3-383-1/basic/sac-stdlib-1.3-81-g930d.pkg|sac-stdlib-1.3-81-g930d.pkg]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/MacOS/1.3.3-383-1/basic/checksums.txt|checksums.txt]]//[[https://gitlab.science.ru.nl/sac-group/sac-packages/-/raw/master/packages/weekly/MacOS/1.3.3-383-1/basic/sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.pkg|sac2c-1.3.3-MijasCosta-383-g6ea12-omnibus.pkg]] | N/A | | |
| |
| |
=== 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. | |
| |
{{tablelayout?colwidth=","}} | |
^ OS ^ External Link ^ | |
| ArchLinux | via [[https://aur.archlinux.org/packages/sac-compiler-weekly|sac-compiler-weekly]] and [[https://aur.archlinux.org/packages/sac-stdlib-weekly|sac-stdlib-weekly]] | | |
| |
==== Major Release ==== | |
| |
The following packages contain the latest //major-number// release of ''sac2c''. | |
| |
<callout type="warning" icon="true"> | |
=== Old releases === | |
The packages provided here are **old** and not fully supported. Please use one of the [[download:main#weeklies_---_bleeding-edge_release|weekly packages]] instead. | |
</callout> | |
| |
=== Ubuntu 14 === | |
{{filelist>packages/release/Ubl14/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== Ubuntu 16 === | |
{{filelist>packages/release/Ubl16/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== Ubuntu 18 === | |
{{filelist>packages/release/Ubl18/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== RHEL 6 === | |
{{filelist>packages/release/RHEL6/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== RHEL 7 === | |
{{filelist>packages/release/RHEL7/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== Debian 7 === | |
{{filelist>packages/release/Deb7/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== Debian 8 === | |
{{filelist>packages/release/Deb8/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== Linux x64 === | |
{{filelist>packages/release/Linux/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
=== MacOS X (10.12) === | |
{{filelist>packages/release/mac10.12/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} | |
| |
==== Installing ==== | |
| |
<accordion> | <accordion> |
<panel type="default" title="RPM (RedHat Based distributions)"> | <panel type="default" title="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 ''rpm'' tool set. | 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. |
| |
Installation: | Choose and download the appropriate [[bin|packages (sac2c & stdlib)]]. |
| Thereafter you can install them via: |
| <code> |
| $ sudo dnf install sac2c-VERSION-RELEASE.rpm |
| $ sudo dnf install sac-stdlib-VERSION-RELEASE.rpm |
| </code> |
| or |
<code> | <code> |
$ sudo rpm --install sac2c-VERSION-RELEASE.rpm | $ sudo rpm --install sac2c-VERSION-RELEASE.rpm |
| $ sudo rpm --install sac-stdlib-VERSION-RELEASE.rpm |
</code> | </code> |
</panel> | </panel> |
<panel type="default" title="DEB (Debian based distributions)"> | <panel type="default" title="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. | 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: | Choose and download the appropriate [[bin|packages (sac2c #and# stdlib)]]. |
| Thereafter you can install them via: |
<code> | <code> |
$ sudo dpkg --install sac-VERSION-RELEASE.deb | $ sudo dpkg --install sac2c-VERSION-RELEASE.deb |
| $ sudo dpkg --install sac-stdlib-VERSION-RELEASE.deb |
</code> | </code> |
or | or |
<code> | <code> |
$ sudo apt install sac-VERSION-RELEASE.deb | $ sudo apt install sac2c-VERSION-RELEASE.deb |
| $ sudo apt install sac-stdlib-VERSION-RELEASE.deb |
</code> | </code> |
</panel> | </panel> |
<panel type="default" title="Pkg (Apple MacOS)"> | <panel type="default" title="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 ''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: | Choose and download the appropriate [[bin|packages (sac2c #and# stdlib)]]. |
- Double click the downloaded ''pkg'' file | Thereafter you can install them via: |
| - Double click the downloaded file sac2c-VERSION-RELEASE.pkg |
- A dialog box should appear that will guide you through the install process | - 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 | - Confirm that you agree with our license, and click //Install// to install SaC |
- The binary ''sac2c_p'' should be in your ''PATH'' | - The binaries ''sac2c'', ''sac2c_p'', and ''sac2c_s'' should be in your ''PATH'' |
| - 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''. |
| </panel> |
| <panel type="default" title="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. |
| |
| |
| Choose and download the [[bin|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! |
</panel> | </panel> |
<panel type="default" title="TAR.GZ (Unix-like operating systems)"> | <panel type="default" title="TAR.GZ (Unix-like operating systems)"> |
</code> | </code> |
</panel> | </panel> |
<panel type="default" title="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'' and ''sac-stdlib'' that matches the Linux version you have chosen and install it. For Ubuntu, you download the corresponding ''.deb'' files and then run | |
<code> | |
$sudo apt update | |
$sudo apt install sac2c-VERSION-RELEASE.deb | |
$sudo apt install sac-stdlib-VERSION-RELEASE.deb | |
</code> | |
| |
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''. | |
</panel> | |
</accordion> | </accordion> |
| |
==== Contribute? ==== | In case you run into any troubles installing, please get in touch via our [[:bugzilla|community]] channels! |
| |
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. | === Installation from sources === |
| |
=== Reporting bugs === | The sources are hosted on two ''git'' servers: |
| |
Head over to the [[:bugzilla|community]] page and follow the guidelines there on how to submit a bug. | <panel type="default" title="Building the Stdlib from sources"> |
| The standard library is hosted on [[https://github.com/sacbase]] within the [[https://github.com/sacbase/Stdlib|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 [[https://github.com/SacBase/Stdlib/blob/master/README.md|README]]. Contributions via pull-requests are always welcome! |
| </panel> |
| |
| <panel type="default" title="Building sac2c from sources"> |
| The compiler is hosted on [[https://gitlab.sac-home.org]] within the [[https://gitlab.sac-home.org/sac-group/sac2c|sac-group/sac2c]] repository. As for ''github.com'', you need to create an account on ''gitlab.sac-home.org'' as well. |
| Build instructions can be found there in the [[https://gitlab.sac-home.org/sac-group/sac2c/-/blob/develop/README.md|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 [[:index?do=register|here]]. |
| Contributions via pull-requests here are also always welcome! |
| </panel> |
| |
=== Contributing code === | |
| |
* Create an account on this site by [[:index?do=register|registering]], | |
* and send an email to [[info@sac-home.org]] indicating that you'd like to have access to the compiler sources. | |