Справочник по Ada (Ada 2022)
Е.3 Согласованность распределённой системы
Этот подраздел определяет атрибуты и правила, связанные с проверкой согласованности распределённой программы.
Статическая семантика
Для префикса P, который статически обозначает единицу программы, определены следующие атрибуты:
P'Version
Возвращает значение предопределённого типа String, идентифицирующего версию единицы компиляции, содержащей объявление единицы программы.
P'Body_Version
Возвращает значение предопределённого типа String, идентифицирующего версию единицы компиляции, содержащей тело (но не подблоки) единицы программы.
Версия единицы компиляции изменяется всякий раз, когда единица компиляции изменяется каким-либо семантически значимым образом. В данном документе точное значение "семантически значимого" не определено. Не определено, есть ли другие события (например, перекомпиляция), приводящие к изменению версии единицы компиляции.
Если P не является единицей библиотеки и у P нет завершения, то P'Body_Version возвращает Body_Version самой внутренней единицы программы, охватывающей объявление P. Если P является единицей библиотеки и у P нет завершения, то P'Body_Version возвращает значение, отличное от Body_Version любой версии P, имеющей завершение.
Ограниченные (временные) ошибки
В распределённой программе единица библиотеки является согласованной, если используется одна и та же версия её объявления. Ошибка является ограниченной при разработке раздела распределённой программы, содержащей единицу компиляции, зависящей от другой версии объявления общей пассивной или RCI-единицы библиотеки, чем та, которая включена в раздел, которому была назначена общая пассивная или RCI-единица библиотеки. В результате этой ошибки Program_Error может быть поднят в одном или обоих разделах во время разработки; в любом случае разделы станут недоступны друг для друга.