Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!brl-smoke!gwyn
From: gwyn@brl-smoke.ARPA (Doug Gwyn )
Newsgroups: comp.lang.c
Subject: X3J11 meeting notes
Message-ID: <6829@brl-smoke.ARPA>
Date: 13 Dec 87 18:03:42 GMT
Organization: Ballistic Research Lab (BRL), APG, MD.
Lines: 55
Keywords: ANSI C standard

The following are unofficial, incomplete notes about some of the
developments at the December X3J11 meeting:

The good news is, it appears that the second formal public review of
the draft proposed standard for C may start as early as February.
This time it will last for two months, and we hope that nothing will
turn up that requires more than minor editorial changes for the final
official standard.

A new keyword, "noalias", was added; it's a type-qualifier like const
and volatile.  Its only function is to permit tighter optimization, so
in a sense it's like register.  A "noalias" variable is one that the
programmer guarantees will only be accessed via a single "handle", so
the compiler does not have to make worst-case assumptions about pointer
aliasing.

All library routine pointer parameters (except for memmove()) now have
"noalias" added, replacing the English injunction to that effect.

Parenthesis grouping is now honored.  The sentence that permitted
regrouping of commutative & associate operators has been removed.
Unary plus no longer has special grouping semantics.

Pointers to the same object are now guaranteed to compare equal.
All types of null pointer compare equal.  (char *) and (void *)
have the same representation.

Additional multi-byte character stuff was added, most notably L"..."
and L'...' literals.  Catenation of mixed string literal types is
undefined.  "mb_max" was changed to "MB_CUR_MAX".  mbstowcs() and
wcstombs() functions were added to convert entire multibyte strings.
A wchar_t array can be initialized with a L"...".

Additional international monetary and numeric support was added.

NULL and size_t are to be included in any header that references them
in the Standard; other symbols are defined in only one header.

va_start and va_end are both macros, and their ranges (on distinct
va_list data) can overlap.

'0'..'9' are now required to be contiguous and in ascending order, so
the c-'0' construct is guaranteed to work.

stderr always starts out unbuffered.

signal handlers may now be entered with an implementation-defined
blocking of the signal instead of having it reset to SIG_DFL.

bsearch() passes the key as the first argument to the comparison
function (was previously not specified which argument was which).

"GMT" is changed to "UTC".

Slight tweaks to math routines to accommodate IEEE floating point.