From: Joseph Myers <joseph@codesourcery.com>
To: Rical Jasan <ricaljasan@pacific.net>
Cc: <libc-alpha@sourceware.org>,
Michael Kerrisk <mtk.manpages@gmail.com>,
Carlos O'Donell <carlos@redhat.com>
Subject: Re: [PATCH 3/3] manual: Add new header and standards annotations.
Date: Thu, 24 Nov 2016 13:37:00 -0000 [thread overview]
Message-ID: <alpine.DEB.2.20.1611241318060.2194@digraph.polyomino.org.uk> (raw)
In-Reply-To: <64fa1a5a-4af3-5e3f-b192-e79203c3e328@pacific.net>
On Thu, 24 Nov 2016, Rical Jasan wrote:
> > XOPEN2K is generically an unhelpful name. In the headers it actually
> > means POSIX.1-2001; the X/Open version is __USE_XOPEN2KXSI. Likewise
> > __USE_XOPEN2K8 means POSIX.1-2008 and the X/Open version is
> > __USE_XOPEN2K8XSI. So anywhere you say XOPEN2K because the headers use
> > __USE_XOPEN2K, say POSIX.1-2001 in the manual instead; likewise
> > POSIX.1-2008 for XOPEN2K8.
>
> I'm glad you mention this. Have you seen the related discussion on
> libc-help? [1] I'm interested in your thoughts on converting standards
> to feature test macros (or vice versa).
I'm not on libc-help. libc-help is for user questions. It's not an
appropriate place for development discussions and is not relevant to
establishing consensus on development directions.
> Also, if we want long-form standards in the manual, where would we put
> the feature test macros? It seems more appropriate to document the
> feature test macros in the Summary, and the current framework uses the
> standard @comment verbatim there. (There is also the issue that, e.g.,
> XOPEN2K or _USE_XOPEN2K aren't the actual feature test macros one would
> even use...)
My assumption is that creature.texi (which is very out of date regarding
what's enabled by default, values of _POSIX_C_SOURCE, etc.) would, where
it describes support for a standard and any associated feature test
macros, say something like: "Functions enabled with this feature test
macro / from this standard are listed as POSIX.1-2008 in <summary>.".
Where <summary> could be a link to the existing summary. Or it could say
"in the Standards information in the individual function description", if
we use macros to generate explicit Standards information in each function
description alongside the Safety information. Or both.
That is, creature.texi would explain the notation just like intro.texi has
an explanation of the safety annotations. The summary currently says "the
standard or other source from which each facility is derived", not "the
feature test macro".
There's an open question of whether we wish to continue to document BSD /
SVID / ... sources not corresponding to feature test macros, or just make
the annotations say MISC or DEFAULT and leave information about BSD etc.
origins to free-text descriptions.
As for names corresponding to standards / feature test macros, I suggest
one possibility:
C90 (everything is a superset of this apart from gets obsoletion)
C95
C99
C11
(note that these four are normally selected with -std, not with feature
test macros, though glibc has _ISOC99_SOURCE and _ISOC11_SOURCE)
TR 27431-2:2010
TS 18661-1:2014
TS 18661-4:2015
POSIX.1 (= 1990 edition)
POSIX.2
POSIX.1-1993
POSIX.1-1995
POSIX.1-2001
XSI POSIX.1-2001
POSIX.1-2008
XSI POSIX.1-2008
DEFAULT
GNU
XOPEN (= __USE_XOPEN; listed as XPG3 in conform/ tests; corresponds to
functions in C435 that are not UX-shaded)
XPG4 (= __USE_XOPEN_EXTENDED; corresponds to everything in C435)
UNIX98
LFS (= __USE_LARGEFILE64, i.e. *64 functions)
(which doesn't cover _LARGEFILE_SOURCE / _ATFILE_SOURCE / _REENTRANT, but
should be enough anyway to provide a sufficient indication of where
functions come from, at least if you can handle "standard 1 || standard
2", "standard 1 && ! standard 2", or similar).
--
Joseph S. Myers
joseph@codesourcery.com
next prev parent reply other threads:[~2016-11-24 13:37 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-23 6:38 [PATCH 0/3] manual: Header & Standards Cleanup Rical Jasan
2016-11-23 6:38 ` [PATCH 1/3] manual: Refactor header and standards annotations Rical Jasan
2016-11-23 17:31 ` Joseph Myers
2016-11-24 9:34 ` Rical Jasan
2016-11-24 13:17 ` Joseph Myers
2016-11-25 3:44 ` Rical Jasan
2016-11-25 14:25 ` Joseph Myers
2016-11-30 8:58 ` Rical Jasan
2016-11-23 6:38 ` [PATCH 2/3] manual: Convert @tables of variables to @vtables Rical Jasan
2016-11-23 6:38 ` [PATCH 3/3] manual: Add new header and standards annotations Rical Jasan
2016-11-23 17:42 ` Joseph Myers
2016-11-24 10:22 ` Rical Jasan
2016-11-24 13:37 ` Joseph Myers [this message]
2016-11-25 5:59 ` Rical Jasan
2016-11-25 14:53 ` Joseph Myers
2016-11-25 15:09 ` Joseph Myers
2016-11-30 10:39 ` Rical Jasan
2016-11-30 10:45 ` Florian Weimer
2016-11-30 12:50 ` Joseph Myers
2016-12-02 11:54 ` Rical Jasan
2016-12-02 13:56 ` Joseph Myers
2016-12-05 7:59 ` Rical Jasan
2016-11-30 12:38 ` Joseph Myers
2016-12-05 5:33 ` Rical Jasan
2016-12-05 18:22 ` Joseph Myers
2016-12-06 10:57 ` Rical Jasan
2016-12-06 15:59 ` Joseph Myers
2016-12-06 16:36 ` Zack Weinberg
2016-11-25 7:36 ` Rical Jasan
2016-11-25 16:17 ` Joseph Myers
2016-11-30 10:46 ` Rical Jasan
2016-11-30 12:52 ` Joseph Myers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.2.20.1611241318060.2194@digraph.polyomino.org.uk \
--to=joseph@codesourcery.com \
--cc=carlos@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=mtk.manpages@gmail.com \
--cc=ricaljasan@pacific.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).