#mercury
#mercury
Вопрос:
Как мне указать время компиляции, определенное в Mercury?
Я хотел бы, чтобы система сборки считывала номер версии из файла конфигурации и передавала его в модуль для доступа с помощью предикатов и функций.
Например, в C я бы сделал что-то вроде: gcc -DVERSION=»1.2.0″, а затем использовал бы вновь определенную ВЕРСИЮ макроса в исходном коде.
Ответ №1:
Золтан Сомоги из списка рассылки пользователей Mercury ответил:
[Определения времени компиляции, как и в C, в Mercury невозможны], потому что это та часть функциональности, которая редко требуется, чего легко достичь без специальной поддержки в самом Mercury.
….
[Для вашей конкретной потребности введите номер версии из системы сборки] Есть что-то вроде файла с именем version.m.in содержащий
:- версия модуля.
:- интерфейс. :- версия функции = строка.
:- реализация. версия = «@VERSION @».
а затем иметь сценарий оболочки или sed, который создает version.m из version.m.in заменив @VERSION@ на строку фактической версии. Если вы хотите, чтобы строка версии изменялась без вмешательства человека (например, для отражения текущей даты), вам следует добавить правило mmake для построения version.m из version.m.in автоматически в соответствующие моменты времени.