4 ms·
The license prohibits you from using Adacore's tools unless the software you release is also GPL, right? I thought that was the case so I never really bothered
by analognoise 8y ago
The license prohibits you from using Adacore's tools unless the software you release is also GPL, right? I thought that was the case so I never really bothered with Ada.
Is that true? If there was ever a group of people who knew, it would be here.
- okl 8y agoAdacore releases a GCC/GNAT compiler on their website that has no runtime library exception. You can build your own GCC/GNAT (not difficult) or install from another source (e.g. your distro's repo). Another option is to only release your source code.
- pjmlp 8y agoBesides okl's answer, the other option is to actually sell software.
- 4thaccount 8y agoI looked into this as well recently and came to the same conclusion: If you use the GNAT Community version, there is a runtime exception which states you don't have to release source if you just use the stdlib (something along those lines). If you use any of the Adacore libraries, then you are under the GPL. If you get the commercial GNAT compiler, you can of course withhold your source. I'm not an expert or lawyer, but I was told (not by Adacore) that is how it works. At the end of the day, this makes Ada an excellent language that I can't use. Their customers seem to work on big ticket items like aircraft and aerospace where the pockets are deep. It's a shame too as I'd love to use it over C.
- xvilka 8y agoYou always can upgrade from C to Rust though.
- exitcode00 8y agoThe Ada standard library is massive and is included in the exception. There are "internal" "GNAT specific" packages which you can include in your project but there are not really any you need or would use in a general sense - there are even warnings you get at compile-time telling you that you are using something GNAT specific and are prefixed with GNAT.* instead of Ada.
- 4thaccount 8y agoThat is news to me, thanks for pointing it out!
- rurban 8y ago"massive" meaning a ~300 MB compressed download, compared to a 20mb C++ with stdlib. it's even more more massive than the biggest professional lisp packages. Only Microsoft and Apple Tools can compete with that kind of massiveness, but they ship a lot of crap with it. Ada/Spark is an extremely nice and easy to use framework (if you forget the python crap that comes with it), and I would hire any Spark or ATS or F* programmer over a C++ or Java programmer in a minute. no questions asked. This example of integer overflow is also very common amongst C/C++ programmers. Almost nobody cares about overflows or 2gb boundaries. Nobody knows how to efficiently use adc ("add with carry") or how to check for it at compile-time. spark does it for you automatically.