DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(standards.info.gz) Compatibility

Info Catalog (standards.info.gz) Source Language (standards.info.gz) Design Advice (standards.info.gz) Using Extensions
 
 Compatibility with Other Implementations
 ========================================
 
    With occasional exceptions, utility programs and libraries for GNU
 should be upward compatible with those in Berkeley Unix, and upward
 compatible with Standard C if Standard C specifies their behavior, and
 upward compatible with POSIX if POSIX specifies their behavior.
 
    When these standards conflict, it is useful to offer compatibility
 modes for each of them.
 
    Standard C and POSIX prohibit many kinds of extensions.  Feel free
 to make the extensions anyway, and include a `--ansi', `--posix', or
 `--compatible' option to turn them off.  However, if the extension has
 a significant chance of breaking any real programs or scripts, then it
 is not really upward compatible.  So you should try to redesign its
 interface to make it upward compatible.
 
    Many GNU programs suppress extensions that conflict with POSIX if the
 environment variable `POSIXLY_CORRECT' is defined (even if it is
 defined with a null value).  Please make your program recognize this
 variable if appropriate.
 
    When a feature is used only by users (not by programs or command
 files), and it is done poorly in Unix, feel free to replace it
 completely with something totally different and better.  (For example,
 `vi' is replaced with Emacs.)  But it is nice to offer a compatible
 feature as well.  (There is a free `vi' clone, so we offer it.)
 
    Additional useful features are welcome regardless of whether there
 is any precedent for them.
 
Info Catalog (standards.info.gz) Source Language (standards.info.gz) Design Advice (standards.info.gz) Using Extensions
automatically generated byinfo2html