Чем отличается версия Adacore Gnat от стандартной

Я пытаюсь понять фундаментальные различия между компилятором Gnat, который поставляется с версией Adacore Libre, и тем, который входит в стандартную комплектацию gcc, скажем, в дистрибутиве Linux или MinGw.

Я предполагаю, что основное различие может заключаться в том, что версия Adacore всегда самая последняя, ​​тогда как то, что вы получаете с дистрибутивом Linux, может быть той, которая была доступна на дату упаковки дистрибутива.

Но есть ли функциональное различие? Имеются ли в виду какие-либо улучшенные функции в версии Adacore, которые они не выпускают для общих версий с открытым исходным кодом, доступных от Gnu?

Я не очень опытный пользователь Linux, поэтому извиняюсь, если это прозрачно, чтобы иметь больше опыта в мире Gnu/Open Source, но я ничего не смог найти по этому поводу.


person Rick    schedule 14.05.2014    source источник


Ответы (1)


Из чтения политики Debian для Ada, написанной Людовиком Брента и Стивеном Ликом: Когда код Ada создается для создания исполняемого файла, он связывается с библиотекой времени выполнения Ada. Основное различие между разными версиями компилятора GNAT заключается в лицензии библиотеки времени выполнения Ada.

  1. Версия GNAT Pro => GNAT-Modified GPL
  2. Версия GNAT Libre => GPL версии 3
  3. Версия FSF GNAT => GPL версии 3 с исключением библиотеки времени выполнения GCC

GNAT-Modified и GPL версии 3 с исключением библиотеки времени выполнения GCC позволяют разрабатывать коммерческое и проприетарное программное обеспечение. Версия GNAT libre не подходит для разработки коммерческого программного обеспечения, но отлично подходит для разработки бесплатного программного обеспечения. Версия FSF GNAT примерно на год отстает от версии GNAT Libre.

Я думаю, что AdaCore также хотела бы, чтобы я указал, что с версией GNAT Pro AdaCore обеспечивает поддержку, означающую, например, что, если в компиляторе обнаружена ошибка, можно сообщить им об этом, и она будет немедленно исправлена.

person Joakim Strandberg    schedule 14.05.2014
comment
Кроме того, OP прав, говоря, что версия от AdaCore, как правило, новее, чем версия, которую вы найдете в репозитории пакетов вашего дистрибутива - на самом деле это то же самое, что и любой другой проект с открытым исходным кодом. Окружающие инструменты (GPS IDE, набор инструментов SPARK и т. д.) поддерживаются непосредственно AdaCore и, похоже, не выпускаются как часть GCC. - person ajd; 15.05.2014
comment
GNAT Pro RTS теперь поставляется с исключением библиотеки времени выполнения GCC. - person Simon Wright; 15.05.2014
comment
Версия Adacore Gnat Pro, вероятно, новее, но версия Libre не такая уж новая. FSF Gnat, как правило, основан на более новом gcc (сейчас gcc4.9, а не... извините, у меня нет под рукой Gnat GPL 2014, чтобы проверить), но его функции Ada обычно отстают от любого из предложений Adacore. - person user_1818839; 15.05.2014
comment
Хорошо, спасибо. Я думаю, что резюмируя это: версия Adacore Libre, вероятно, новее, чем версия Gnu, но не позволяет разрабатывать коммерческое программное обеспечение, в то время как версия Gnu позволяет это, но, вероятно, более старая по функциям. Я не был уверен в последнем пункте. Это уже хорошее общее правило. - person Rick; 15.05.2014
comment
По закону разрешено использовать версию Libre для разработки коммерческого программного обеспечения, если соблюдаются требования полного лицензирования GPL. Тем не менее, AdaCore предлагает вам подумать о том, чтобы предпринять такое коммерческое предприятие без поддержки поставщика в виде исправлений ошибок, обновлений или советов. - person Marc C; 15.05.2014
comment
GNAT GPL 2014 основана на GCC 4.7.4. RTS FSF GCC 4.9.0 немного старше; например, GNAT.OS_Lib.Set_Executable в GPL 2014 имеет дополнительные параметры для дополнительного контроля. - person Simon Wright; 15.05.2014
comment
AdaCore поддерживает своих клиентов, помогая им двигаться вперед. Если для этого требуется сборка волнового фронта, они это сделают, но гораздо более вероятно, что они могут предоставить обходной путь для решения проблемы или даже объяснить вам, что вы делаете неправильно! - person Simon Wright; 15.05.2014