Стандарт кодирования GNU. : Совместимость с другими реализациями

Вперед Назад Содержание

4. Совместимость с другими реализациями

За некоторыми исключениями, утилиты и библиотеки для GNU должны быть совместимы с реализацией Berkley Unix, должны соответствовать стандарту ANSI C, если ANSI C определяет их функционирование, и соответствовать стандарту POSIX, если POSIX определяет их функционирование.

Когда эти стандарты входят в противоречие друг с другом, желательно предоставить режимы работы, совместимые с каждым из них.

ANSI C и POSIX препятствуют введению многих расширений. Вы можете вводить любые расширения, давая возможность выключить их путем указания опции '--ansi' или '--compatible'. Однако, если расширение таково, что оно не позволяет использовать почти любую совместимую программу или скрипт, то оно не обеспечивает совместимость вверх со стандартом. Поэтому Вам необходимо переработать соответствующий интерфейс.

Многие программы GNU выключают расширения, противоречащие POSIX, если определена переменная окружения POSIXLY_CORRECT (даже если она определена с пустым значением). Разрабатывайте Ваши программы таким образом, чтобы они по возможности распознавали эту переменную.

Когда некотарые возможности используются только пользователями, а не программами или командными файлами, и их обычная реализация в Unix выполнена плохо, приветствуется полная их замена чем-то абсолютно другим и лучшим. (Например, редактор vi был заменен редактором Emacs). Тем не менее, не плохо предоставить совместимость с предыдущими реализациями.

Приветствуется добавление новых функциональных возможностей, которые отстутствуют в Berkley Unix. Дополнительные программы, не имеющие аналогов в Unix могут быть полезны, но в первую очередь необходимо реализовать то, что Unix уже имеет.


Вперед Назад Содержание