README.md 3.84 KiB

SaC Packages

In this repository we store packages associated with the SaC projects using Git LFS.

We currently creates packages for:

  • RHEL 6, RHEL 7
  • Ubuntu 16.04, Ubuntu 18.04
  • Linux generic (based on ArchLinux)
  • MacOS 10.14+

To get the latest packages, checkout the release page.

Things to be aware of

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, cuda1

We suggest that you use the basic package variant, unless you are sure you need CUDA.

Externally-maintained packages

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

Latest Link

We also provide a latest link to the packages within the latest/ directory. These link to latest versions of packages per distribution, though they can also refer only to the latest stable version.

Users can link to these, it is especially useful in the context of continous integration and testing systems.

Installation

Linux generic package

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.

Further Information

Repository Directory Scheme

Packages are stored under packages, using the following directory structure scheme:

packages/<release type>/<platform>/<version>/<variant>/...pkgs...

release type : we have two release types, release and weekly. The first indicates a stable package that could be using in production solution, and the latter is unstable. In practice we don't release many release packages as the compiler is constantly in flux. That being said we try to ensure that the weekly package is functional.

platform : we create packages for different platforms

version : 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 (e.g. 1).

variant : We provide two types of packages variants, basic and full.

FAQ

Why store the package here?

  1. we are able to associate each package release/build with a new Git commit, which means we can build a history of each release.
  2. easier to access/find a given release. Our previous listing via https://sac-home.org was not very easy to look through, and did cause users to be confused. Unfortunately we do create a few different releases for many different platforms and so per build we have 10+ packages. These are listed with previously created packages, thus making it difficult to gain an overview there.
  3. We can mark releases as having problems/known-issues, so that users are better informed about what release is more likely to work for them.

Footnotes

  1. 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.