Tech —

LLVM project’s 2.7 release out with a Clang

LLVM's 2.7 release includes major improvements to its support for C++ and ARM …

On Tuesday, the LLVM team announced the availability of its 2.7 release. LLVM is an open source project with a license similar to BSD's; it offers front ends for a number of programming languages, compiling them to intermediate code that can be interpreted by a Just-in-Time compiler or immediately compiled into native code. The 2.7 release marks a major milestone for LLVM, as it's the first time that its C language compiler, Clang, has sufficient C++ support to self-host, meaning that it can compile a functional version of itself.

Although the C++ support is considered alpha-quality, LLVM considers Clang's C and Objective-C compiling to be ready for production use. The relatively high quality of Objective-C shouldn't be surprising, as Apple was one of the early commercial backers of the project. The influence of Apple may also be felt in the progress made in supporting ARM processors, which has been given a beta designation. New in this version are support for both the Linux and Darwin ARM ABIs, as well as improved code generation for the ARM vector instruction set, NEON.

But Apple isn't the only game in town. LLVM has been used by Google, for its Unladen Swallow Python project, and Adobe, which adopted it for its ill-fated attempt to get Flash applications running on the iPhone/Pad platform. With 2.7, Linux and Darwin support arrive in the same release, and the Objective-C compilation can now target non-Apple platforms thanks to use of the GNUstep runtime. There's also vastly improved support for VMKit, which allows static and JIT compilation that supports both Java and Microsoft's Common Language Infrastructure. 2.7 brings a new garbage collection architecture with significantly improved performance.

There are some other interesting tidbits scattered throughout the release notes. Significant progress has been made in developing a plugin that will replace GCC's standard optimizers and code generators with those derived from LLVM. There's also initial support for a soft-processor that operates on field-programmable gate arrays. 

The growing number of projects that rely on LLVM seems to indicate that the project is attracting much wider interest than it was just a few years back.

Channel Ars Technica