What is the difference between the Adacore Gnat version and the "standard" one
Asked Answered
D

1

7

I am trying to understand the fundamental differences between the Gnat compiler that is delivered with the Adacore Libre version and the one that comes standard with the gcc say in a Linux distribution or MinGw.

I assume the main difference may be that the Adacore version is always the latest one whereas what you get with a Linux distribution might be the one that was available at the date the distribution was packaged.

But is there a functional difference as well? Meaning are there any improved functions in the Adacore version that they dont release to the general Open Source versions available from Gnu?

I am not a very experienced Linux user, so apologies if this is transparent to have more experience in the Gnu/Open Source world, but I couldn't find anything about this.

Descant answered 14/5, 2014 at 11:50 Comment(0)
E
10

From reading the Debian policy for Ada written by Ludovic Brenta and Stephen Leake: When Ada code is built to produce an executable it is linked with the Ada runtime library. The main difference between the different versions of the GNAT compiler is the license of the Ada runtime library.

  1. The GNAT Pro Version => GNAT-Modified GPL
  2. The GNAT Libre Version => GPL version 3
  3. FSF GNAT Version => GPL version 3 with GCC runtime library exception

GNAT-Modified and GPL version 3 with GCC runtime library exception allow development of commercial and proprietary software. The GNAT libre version is not suitable for commercial software development but excellent for developing free software. The FSF GNAT version seems to be about one year behind the GNAT Libre Version.

I think AdaCore would also like me to point out that with the GNAT Pro Version AdaCore provides support meaning for example that if a bug is found in the compiler one can inform them about this and it will be corrected immediately.

Entertainer answered 14/5, 2014 at 13:55 Comment(7)
Additionally, the OP is correct in saying that the version from AdaCore is generally newer than the version you'll find in your distribution's package repository - this is the same as any other open source project, really. The surrounding tools (the GPS IDE, the SPARK toolkit, etc) are maintained directly by AdaCore and don't seem to be released as part of GCC.Sogdiana
The GNAT Pro RTS now comes with the GCC runtime library exception.Rubble
The Adacore Gnat Pro version is probably newer, but the Libre version is not quite so new. The FSF Gnat tends to be based on a newer gcc (gcc4.9 now, vs ... sorry I don't have Gnat GPL 2014 handy to check) but its Ada features typically lag behind either of the Adacore offerings.Weariless
Alright, thanks. I think to summarize this: Adacore Libre version is probably newer than the Gnu version, but does not allow for commercial software development, while the Gnu version does allow this, but is probably older feature wise. I wasn't sure about that last point. That's already a good general rule of thumb.Descant
One is legally permitted to use the Libre version for commercial software development, so long as the requirements of full GPL licensing are followed. AdaCore would suggest you consider the wisdom, though, of undertaking such a commercial endeavor without vendor support for bug fixes, updates, or advice.Physostomous
GNAT GPL 2014 is based on GCC 4.7.4. FSF GCC 4.9.0’s RTS is slightly older; for instance, GNAT.OS_Lib.Set_Executable in GPL 2014 has extra params to give additional control.Rubble
AdaCore support their customers by helping them move forward. If it takes a wavefront build they will do that, but it’s much more likely that they can provide a workround for a problem - or even explain to you what you’re doing wrong!Rubble

© 2022 - 2024 — McMap. All rights reserved.