Что такое "libgnarl"? - PullRequest
       6

Что такое "libgnarl"?

0 голосов
/ 29 июня 2018

Что такое libgnarl? Я нахожу ссылки на это в разных местах, например, в исходном коде gcc или в подробном выводе gprbuild. gprbuild, в частности, сообщает о принятии решения о необходимости libgnarl, так что это явно дополнительная библиотека, но что это за библиотека? Я не могу найти документацию по этому вопросу. Источники содержат несколько пакетов, которые выглядят так, как будто они принадлежат стандартной библиотеке, но не являются (например, Ada.Execution_Time.Timers), так что я явно что-то упускаю.

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете в Google, например, "ada gnarl" и найдите довольно подробную информацию.

Это часть RTS, которая обрабатывает задачи, поэтому, в общем, если ваша программа не использует задачи, ей не понадобится libgnarl.

Исторически сложилось так, что он был разработан как совместный проект команды NYU GNAT и команды PART из Университета штата Флорида: из отчета FSU в цифровой библиотеке ACM ,

Разработка GNARL - это совместная работа проекта POSIX / Ada Real-Time (PART) Университета штата Флорида и команды разработчиков NYAT GNAT. Целью проекта PART является продвижение разработки и стандартизации привязок языка Ada к стандартам IEEE POSIX, семейству прикладных программных интерфейсов для служб операционной системы. Главной задачей проекта PART было согласование модели задач Ada с предлагаемыми стандартными сервисами потоков POSIX (Pthreads).

Встроенные RTS от AdaCore (по крайней мере, ARM), по-видимому, не сохраняют это различие: по крайней мере в одном, libgnarl.a содержит только empty.o! Тем не менее, AdaCore продолжил подход, включающий академические разработки RTS в свои встроенные RTS, см. s-bb.ads (bb => Bare Board):

--        Copyright (C) 1999-2002 Universidad Politecnica de Madrid         --
--             Copyright (C) 2003-2004 The European Space Agency            --
--                     Copyright (C) 2003-2018, AdaCore                     --
...