Compilers: Clang/LLVM, Go, Rust
In the growing and evolving world of programming languages, our customers have asked us to support more compilers. We are pleased to add these three to our portfolio for Red Hat Enterprise Linux as technical preview: Clang/LLVM, Go, Rust.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies, with a primary focus on these two compilers:
The LLVM back-end compiler and core libraries provide a modern source- and target-independent optimizer, along with code generation support for the RHEL CPU architectures.
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 Go language 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 the Devtools Channel.
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.
Also included is cargo, a build system and dependency manager for Rust.
Build Something Today
Let's walk through everything you need to build your first application.Download