Spec-Zone.ru › Ada 2022
Справочник по Ada (Ada 2022)

E.2.1 Общие пассивные библиотечные модули

Общий пассивный библиотечный модуль используется для управления глобальными данными, которые используются совместно между активными разделами. Ограничения на общие пассивные библиотечные модули не позволяют данным или задачам одного активного раздела быть доступными другому активному разделу через ссылки, неявные в объектах, объявленных в общем пассивном библиотечном модуле.
Абзацы 2 и 3 перемещены в Приложение J, «Устаревшие возможности».

Правила законности

Когда аспект библиотечного модуля (см. 13.1.1) Shared_Passive библиотечного модуля равен True, библиотечный модуль является общим пассивным библиотечным модулем. Для такого библиотечного модуля применяются следующие ограничения:
  • он должен быть предварительно вычисляемым (см. 10.2.1);
  • он должен семантически зависеть только от объявленных чистых или общих пассивных library_items;
  • он не должен содержать объявление на уровне библиотеки:
типа доступа, который обозначает тип класса;
типа с частью, которая является типом задачи;
типа с частью, которая является защищённым типом с entry_declarations; или
который содержит имя, обозначающее тип, объявленный внутри объявленного чистого пакета, если этот тип имеет часть, которая является типом доступа; для целей этого правила, учитываются части полных представлений любых частных типов или частных расширений.
Несмотря на определение доступности, приведённое в 3.10.2, объявление библиотечного модуля P1 недоступно внутри области объявления общего пассивного библиотечного модуля P2, если общий пассивный библиотечный модуль P2 не зависит семантически от P1.

Статическая семантика

Общий пассивный библиотечный модуль предварительно вычисляется.

Правила после компиляции

Общий пассивный библиотечный модуль должен быть назначен не более чем одному разделу в рамках данной программы.
Несмотря на правило, приведенное в 10.2, единица компиляции в данном разделе не требует (в смысле 10.2) общих пассивных библиотечных модулей, от которых она семантически зависит, для включения в этот же раздел; они обычно находятся в отдельных пассивных разделах.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API