Rust
License information
The Rust programming language is dual-licensed under the Apache License, version 2.0 and the MIT license. See also the "Licenses" page on the Rust web site.
For Rust itself, the licenses can also be found in the LICENSE-APACHE and LICENSE-MIT files in the source repository. The repository also contains a copyright notice in the COPYRIGHT file.
User documentation
Rust is offered "as is", without support from the LUMI User Support Team as it is not a typical HPC language and as we don't have the personpower to build up proper knowledge about Rust.
The Rust compiler is known to conflict with the Cray PE in certain circumstances and recent versions are also incompatible with the system GCC of LUMI causing the bootstrap procedure during installation to fail.
The Rust EasyConfig files that we provide rely on GCC for the installation of the compiler but don't need GCC anymore afterwards which is why no toolchain is loaded explicitly.
We cannot guarantee that object files generated by the Rust compiler can link with object files or libraries from the Cray PE as the Rust compiler is based on its own version of LLVM which may not correspond with any Cray or AMD compiler version on the system at a given time.
User-installable modules (and EasyConfigs)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider Rust/<version>
.
EasyConfig:
Technical documentation
EasyBuild
-
There is no support for Rust in the CSCS repository
Rust 1.54.0 from LUMI/21.06 on
-
The EasyConfig builds upon the one of the EasyBuilders repository. It uses the SYSTEM toolchain however so that it can be used to generate packages for the SYSTEM toolchain or any other toolchain on LUMI.
-
It is intended for installation in
partition/common
as processor-specific binaries don't make much sense for compilers and as it can then be used to compile software for that partition also.
Rust 1.55.0 from LUMI/21.08 on
- Straightforward adaptation of the EasyConfig for version 1.54.0.
Rust 1.60.0 for LUMI/21.12 and LUMI/22.06
-
Port of the one for 1.55.0, but with some clean-up of loaded modules in the pre options as we have experienced that otherwise Rust might pick up the wrong compiler.
-
Modification based on the default EasyConfigs: use x.py for build and install steps.
-
TODO: We set CFLAGS and CXXFLAGS but it is not clear at all if this is of any use during the install procedure.
Rust 1.70.0, developed for LUMI/22.12
-
Now loading the gcc/11.2.0 module for the build process as building with the system gcc was problematic.
-
Added config options to also build all tools. This seems to solve the link problems that we appeared to have with the 1.60.0 version.
-
Checked with what the EasyBlock for Rust in an upcoming version of EasyBuild does.
Rust 1.75.0, developed for LUMI/23.09
-
A port of the 1.70.0 EasyConfig, but now using gcc/12.2.0.
-
Adapted the code a little bit so that in principle it could also work in other versions of the LUMI stack than the intended one.
Archived EasyConfigs
The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software