public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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

  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).