Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
download:sac2c [2018/11/09 18:13] – change file listing styles hnv | download:sac2c [2020/03/31 17:53] – sbs |
---|
===== 1 Compiler: the sac2c ecosystem ===== | ===== 1 Compiler: the sac2c ecosystem ===== |
| |
==== Major Release ==== | 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. |
| |
The following packages contain the latest //major-number// release of ''sac2c''. | <callout type="primary" icon="true"> |
| === 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> |
| |
<callout type="info" icon="true"> | === Package Variants === |
=== Package Compatibility === | |
Releases have been tested on specific operating system versions. Though some packages can be installed on newer or older systems, we advise against doing this. If you find a problem, please contact us (see at bottom of page of how to do this). | |
| |
The packages below have been build against the following libraries **which need to be available on the system** in order to install the compiler: | We provide two types of packages variants, **basic** and **full**. |
- CUDA 8.0 | |
- HWLOC | <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> | </callout> |
| |
=== Ubuntu 14 === | === Version Number === |
{{filelist>packages/release/Ubl14/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | |
| 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. |
=== Ubuntu 16 === | === Ubuntu 16 === |
{{filelist>packages/release/Ubl16/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{filelist>packages/weekly/Ubl16/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
| === Ubuntu 18 === |
| {{filelist>packages/weekly/Ubl18/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
=== RHEL 6 === | === RHEL 6 === |
{{filelist>packages/release/RHEL6/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{filelist>packages/weekly/RHEL6/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
=== RHEL 7 === | === RHEL 7 === |
{{filelist>packages/release/RHEL7/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{filelist>packages/weekly/RHEL7/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
=== Debian 7 === | === MacOS === |
{{filelist>packages/release/Deb7/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{filelist>packages/weekly/MacOS/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=name&direct=1&showdate=1&showsize=1}} | |
=== Linux x64 === | === Linux x64 === |
{{filelist>packages/release/Linux/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | 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. |
=== MacOS X (10.12) === | {{filelist>packages/weekly/Linux/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
{{filelist>packages/release/mac10.12/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | |
| |
=== Extra === | === 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. | 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=","}} | {{tablelayout?colwidth=","}} |
^ OS ^ External Link ^ | ^ OS ^ External Link ^ |
| ArchLinux | via [[https://aur.archlinux.org/packages/sac2c|AUR]] | | | 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]] | |
| |
==== Weeklies --- Bleeding-Edge Release ==== | === Legacy === |
| |
| Here we list some of the older releases for platforms we no longer package for. |
| |
| == Ubuntu 14 == |
| {{filelist>packages/weekly/Ubl14/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
| |
| ==== Major Release ==== |
| |
| The following packages contain the latest //major-number// release of ''sac2c''. |
| |
<callout type="warning" icon="true"> | <callout type="warning" icon="true"> |
=== Stability === | === Old releases === |
These packages are of the most recent (//bleeding-edge//) state of the compiler. They are provided on a //best-effort// basis, but it is highly likely that the packages (and compiler) might not work correctly and negatively impact your system. You have been warned! | 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> | </callout> |
| |
=== Ubuntu 14 === | === Ubuntu 14 === |
{{filelist>packages/weekly/Ubl14/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{filelist>packages/release/Ubl14/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
=== Ubuntu 16 === | === Ubuntu 16 === |
{{filelist>packages/weekly/Ubl16/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{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 === | === RHEL 6 === |
{{filelist>packages/weekly/RHEL6/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{filelist>packages/release/RHEL6/sac*&style=table&tableheader=1&recursive=1&sort=mtime&direct=1&showdate=1&showsize=1}} |
=== RHEL 7 === | === RHEL 7 === |
{{filelist>packages/weekly/RHEL7/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{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 === | === Linux x64 === |
{{filelist>packages/weekly/Linux/sac*&style=table&tableheader=1&recursive=1&sort=name&direct=1&showdate=1&showsize=1}} | {{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 ==== | ==== Installing ==== |
<panel type="default" title="DEB (Debian based distributions)"> | <panel type="default" title="DEB (Debian based distributions)"> |
| |
The ''deb'' package is meant to be installed on Debian based distributions (e.g. Debian, Ubuntu, etc.) using the ''dpkg'' 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: | Installation: |
<code> | <code> |
$ sudo dpkg --install sac-VERSION-RELEASE.deb | $ sudo dpkg --install sac-VERSION-RELEASE.deb |
| </code> |
| or |
| <code> |
| $ sudo apt install sac-VERSION-RELEASE.deb |
</code> | </code> |
</panel> | </panel> |
$ cd ~ && rm -rf temp_extract | $ cd ~ && rm -rf temp_extract |
</code> | </code> |
| </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: |
| 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. |
| 4) 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> | </panel> |
</accordion> | </accordion> |