DragonLace.Net
Home of the GNAT AUX and future DRACO Ada compilers.

How does GNAT AUX differ from GNAT FSF and GNAT GPL?

GNAT GPL is produced by Adacore on a yearly basis. It is licensed GPL version 3 without a runtime library exception, so all binaries produced by it automatically become GPL licensed as well. If these binaries are distributed, the user will be required to distribute the source code as well. GNAT GPL is targeted at Free Software and open source projects as well as academia.

The GNAT produced by the Free Software Foundation (FSF) is part of the gcc project. Its GPL license has an exception for the runtime library like the rest of the gcc front-ends, so the products can be sold commercially without having to release the source. Adacore is the primary contributor to the GNAT FSF front-end, and they feed code into the gcc trunk on a regular basis. GCC has a number of active branches (currently 4.3, 4.4, and 4.5), and these are basically frozen in time with respect to GNAT. A few bug fixes here and there, but no new features are backported. That means the real arrival of new features comes when a new branch-point-zero is released. At the time of this writing, the next branch coming is 4.6.0. There is a general conception that FSF base lags FSF signficantly and is less capable. This is not really true, it's just that the new features are married to an unstable experiental compiler. When GCC 4.6.0 comes out, it will be more capable than GPL 2010, released in July 2010.

GNAT AUX is a parallel fork of GCC. The patches for the BSDs are maintained in place, and the makefiles / makefile fragments might be altered for specific OS/architectures to get GNAT on that system. Moreover, GNAT AUX follows the trunk, so it always has the latest features, and is always ahead of the latest release of GNAT GPL and FSF. Since it comes from the FSF code base, it's also got the GMGPL license that FSF has, making it suitable for closed-source projects. The FSF nor Adacore do not make attempts to port GNAT to BSD, nor do they run the testsuite on the one BSD that even compiles with the standard gcc codebase (FreeBSD i386). Even though it's based on an experiental compiler, the GNAT part of the compiler is solid (we run the testsuite against it) and the only other language we care about is C, which is used to build GNAT and it's been solid as well, at least as far as build GNAT is concerned. GNAT AUX is for you if you are a BSD or solaris user, or you want the latest features / bug fixes, or the GPL license is an issue for you.

Last edited Fri May 24 16:28:01 2013
© 2010 John Marino | design elements by styleshout | artwork by Arturo Aguirre