Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
download:sac2c [2019/09/08 10:32] – re orgonised the downloads section hnvdownload:sac2c [2019/10/17 14:36] – extend description again, include version info hnv
Line 1: Line 1:
 ===== 1 Compiler: the sac2c ecosystem ===== ===== 1 Compiler: the sac2c ecosystem =====
  
-Binary releases of the compiler and the standard library are provided in the following sections.+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.
  
-We provide two types of distributable packagesstable releases and bleeding-edge releases (which we call //weeklies//)In both types, we provide a **basic** and a **full** package. In order to function, the basic package needs a system C compiler (GCC or MacOS Clang) and standard library, and pthreads. The full package additionally needs HWLOC and CUDA.+<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 featuresThese packages only differ from our stable release packages in that we do less testing before releasing them. 
 +</callout>
  
-//For normal usage, the basic variant is sufficient to try out all of the features of the Single Assignment C language.//+=== Package Variants === 
 + 
 +We provide two types of packages variants, **basic** and  **full**. 
 + 
 +<HTML> 
 +<dl> 
 +  <dt><b>Basic package</b></dt> 
 +    <dd>&mdash; package excludes special featureslike the GPU backend or advanced multi-threading scheduling.</dd> 
 +    <dd>&mdash; makes use of minimal external dependencies: <em>gcc, libc, uuid-lib</em>.</dd> 
 +  <dt><b>Full package</b></dt> 
 +    <dd>&mdash; package includes GPU backend and advanced multi-threading scheduling.</dd> 
 +    <dd>&mdash; 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"> <callout type="primary" icon="true">
-=== Which package should I use? === +=== Which variant should I use? === 
-At the momentwe suggest using one of the //weekly// 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.+For normal usage, the **basic** variant is sufficient to try out all of the features of the Single Assignment C language.
 </callout> </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 ==== ==== Weeklies --- Bleeding-Edge Release ====