GCC 5.0 set for a modular future?
Version 4.7 of the GNU Compiler Collection (GCC) is due out in April 2012 – a second release candidate was released last week. Discussions on the future direction of the utilities collection are currently underway. Musings over making GCC 5.0 more modular have attracted considerable attention. These have been inspired by the increasingly popular Low Level Virtual Machine (LLVM), a compiler infrastructure part-sponsored by Apple.
The proposal originated with Red Hat developer David Malcolm. Although the idea has received a positive reception, there is considerable doubt over whether the GNU Compiler Collection, which originated in the mid-80s, can be modularised. Even Malcolm admits that modularisation will not be easy, and that it may not be welcomed by many of the companies involved in developing the GCC.
According to Malcolm, modularisation would need to be carefully considered, as it could have an impact on many existing features. Another factor is licensing: GCC components are licensed under GPLv3, which is considered less liberal when it comes to onward licensing than, for example, the BSD licence used by LLVM.
The key idea behind Malcolm's concept is that the GCC should consist of a number of libraries that could be statically or dynamically linked. These would be easier to embed within applications. The executables would be thin wrappers that invoke the libraries, possibly using static linking programs to allow the programs to be started faster.
Another feature which many developers would clearly like to see in GCC 5.0 is a proper plugin interface. Many would also like to see future versions of the compiler collection written in C++, rather than C.