Twice a year, Red Hat distributes new versions of compiler toolsets, scripting languages, open source databases, and/or web tools, etc. so that application developers will have access to the latest, stable versions. These Red Hat supported offerings are packaged as Red Hat Software Collections (scripting languages, open source databases, web tools, etc.), Red Hat Developer Toolset (GCC), and the recently added compiler toolsets Clang/LLVM, Go, and Rust. All are yum installable, and are included in most Red Hat Enterprise Linux subscriptions and all Red Hat Enterprise Linux Developer Subscriptions. Most Red Hat Software Collections and Red Hat Developer Toolset components are also available as Linux container images for hybrid cloud development across Red Hat Enterprise Linux, Red Hat OpenShift Container Platform, etc.
The new/updated compiler toolsets are:
New version of the GCC compiler toolset: Red Hat Developer Toolset 7.1 with GCC 7.3
This is an update of the latest stable upstream updates of GCC 7. Developer Toolset (DTS) users are encouraged to update to DTS 7.1.
The latest GNU Compiler Collection major release, GCC 7.3, brings substantial new functionality, including experimental support for the current C++17 draft, better diagnostics, and an improved optimizer, with many new intra- and inter-procedural optimizations. With respect to diagnostics, GCC 7 brings improved locations, location ranges, suggestions for misspelled identifiers, option names, fix-it hints, and new warnings.
DTS 7 is available for the following architectures:
- x86_64 (RHEL 6 & 7 )
- ppc64le (RHEL 6)
- aarch64 (RHEL 6)
- s390x (RHEL 6)
Where to find other versions of GCC and DTS?
- DTS 6.1 has GCC version 6.3
- DTS 4.1 has GCC version 5
- (There is no DTS 5)
- RHEL7 has GCC version 4.8
- RHEL6 has GCC version 4.4
- Updated DTS tools in DTS 7
Linux Container image: rhscl-beta/devtoolset-7-toolchain-rhel7
New version of the Clang and LLVM compiler toolset: Clang and LLVM 5.0
Clang is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages, and to provide a platform for building great source level tools. The Clang Static Analyzer is a tool that automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Clang frontend as a library to parse C/C++ code. The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. The LLVM Core libraries provide a modern source- and target-independent optimizer, along with code generation support for the RHEL CPU architectures.
The Clang and LLVM toolset will release in the devtools repo as Tech Preview for RHEL 7 only. Customers are encouraged to use and evaluate the compiler but not to build applications for production. Frequent updates, not necessarily backward compatible, are planned until the LLVM toolset is considered stable enough for production support. There is currently no Clang and LLVM toolset available in RHEL7.
The Clang and LLVM toolset is Tech Preview for RHEL 7 for:
The following packages are included in this release:
New version of the Go compiler toolset: Golang 1.8.7
This release of the Go toolset introduces a new version of the Golang1.8.7 compiler for use by RHEL customers and partners.
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
Currently, a Golang compiler is available in the Optional channel of RHEL7. Long term, the compiler in Optional will be dropped in favor of this new Go toolset in devtools.
RHEL developers now have the latest stable version of the upstream Go compiler for application development on RHEL7. The Go toolset will release in devtools as Tech Preview. Customers are encouraged to use and evaluate the compiler but not to build applications for production. Frequent updates, not necessarily backward compatible, are planned until the Go toolset is considered stable enough for production support.
The Go toolset is Tech Preview for RHEL 7 and is available for:
Package name: go-toolset-7-golang
New version of the Rust compiler toolset: Rust 1.24
The first release of the Rust toolset is based on Rust version 1.20.
Rust is an open source systems programming language created by Mozilla and a community of volunteers, designed to help developers create fast, secure applications which take full advantage of the powerful features of modern multi-core processors. It prevents segmentation faults and guarantees thread safety, all with an easy-to-learn syntax. In addition, Rust offers zero-cost abstractions, move semantics, guaranteed memory safety, threads with no data races, trait-based generics, pattern matching, type inference, and efficient C bindings, with a minimum runtime size.
Cargo is Rust’s package manager and build tool. It allows Rust projects to declare dependencies with specific version requirements. Cargo will resolve the full dependency graph, download packages as needed, and build and test the entire project.
Rust was added to RHEL devtools channel with RHSCL 3.0 (late 2017).
The Rust toolset is Tech Preview for RHEL 7 and is available for:
The following packages are included in this release:
- Developer Toolset and GCC 7.3 Hello World and Release Notes
- Clang/LLVM 5.0, Go 1.8.7, and Rust 1.24: Hello World and Release Notes
- Red Hat Container Catalog