ISO/ IEC JTC1/SC22/WG14 N870

                                                     SC22/WG14 N870
       Editor's Report



                                                   January 28, 1999



       1.  Status

       N869 is a revised draft incorporating the changes detailed
       in the Santa Cruz minutes (N859, incorporating parts of
       N847, N851, and N852), plus a few more corrections and
       editorial changes.  It contains diff marks for all of the
       changes from CD2 except for very minor formatting changes.

       The Foreword and Introduction are now part of the body of
       the document (i.e., they follow the Table of Contents,
       appear in it, and have page numbers).  The Foreword now
       points to the committee's web page and mentions the
       Rationale and DR Log, notes that this edition of the
       standard replaces the previous edition, and contains a list
       of major changes from the previous edition.  At the moment,
       the list is essentially the list of changes from the
       committee's web page; opinions as to which of these changes
       are worth mentioning and which aren't will be gratefully
       accepted, as will any notes about changes that have been
       overlooked.

       Uses of the term ``printable character'' have been replaced
       by the more widely used ``printing character''.  Likewise,
       ``upper case'' and ``upper-case'' have been replaced by
       ``uppercase'' (ditto for ``lowercase'').

       The type _Bool is now correctly classified as an unsigned
       integer type and thus is also a basic type and an integer
       type.

       The Usual Arithmetic Conversions now specify a default type
       domain for the result, which allowed removing all of the
       explicit statements that matched the default as well as
       covering the cases where we forgot to specify it (e.g., ?:).

       Conversions in general have been cleaned up to avoid missing
       or conflicting requirements.

       6.3.2.3 now states unambiguously that any conversion of a
       null pointer constant to a pointer type results in a null
       pointer, not just those resulting from assignment or
       comparison.

       The description of getc now states unambiguously that end-
       of-file is sticky.

       The UCN annex has been moved to where the formal definition
       of sequence points annex used to be to avoid renumbering the




       2                                             SC22/WG14 N870


       floating point, complex, and LIA annexes; since the UCN
       annex is normative, it makes sense to have it appear sooner.
       Please note that I still haven't decided on a final ordering
       of the annexes and am still soliciting suggested orderings.


       2.  N869 Errata

         1.  N847 items 10, 19, 33, and 43 were overlooked and have
             not been applied.  Item 19 should be revisited as,
             upon further reflection, I believe that Clive's
             proposed words are exactly correct and should be used
             instead of the revised words in the minutes.

         2.  A single numbered example occurs in 6.4.9, 7.6.3.2,
             7.6.4.4, and 7.21.5.8.  These examples should be
             unnumbered.

         3.  In 7.12, the Recommended practice in p9 is misplaced.
             The parenthetical remark at the end should have been
             appended to F.5p2.  The remainder should have been
             moved to the end of 5.2.4.2.2.

         4.  In 7.16, __bool_true_false_are_defined should be
             described as an ``integer'' constant rather than a
             ``decimal'' constant.

         5.  B.7 and B.17 need to be updated to match the revised
             main text.


       3.  My comments

         1.  Given that selection and iteration statement are now
             at least two and frequently three blocks, do we want
             to revisit the block nesting limit in 5.2.4.1?

         2.  In 6.6, we say that constant expressions shall not
             contain certain operators, except in a subexpression
             that is not evaluated.  The exception used to be just
             for the operand of sizeof, but VLAs cause sizeof
             operands to be evaluated, so we changed it.  However,
             there are other operators that don't evaluate certain
             operands in some cases (&&, ||, ?:), so this may be an
             unintended loosening of the rules.

         3.  The title of 6.8.2 should probably be changed to just
             ``Compound statement''.  References to 6.8.2 should be
             checked; most of them should probably be changed to
             6.8.

         4.  In 6.8.5.3, we should probably say something about
             what happens when clause-1 is a declaration (e.g.,
             it's reached in the order of execution before the




       SC22/WG14 N870                                             3


             first evaluation of the controlling expression).

         5.  The descriptions of the standard pragmas in 7.3.4,
             7.6.1, and 7.12.2 talk about their behavior in a
             ``compound statement''; that should, perhaps, be
             changed to ``block''.

         6.  In 7.24.1, I believe that WCHAR_MAX and WCHAR_MIN
             should be described as expanding to integral constant
             expressions.  I also believe that the description of
             WEOF should be moved from 7.25.1 to here.

         7.  The descriptions of the restartable conversion
             functions in 7.24.6.3.2, 7.24.6.3.3, 7.24.6.4.1, and
             7.24.6.4.2 say that ``the conversion state is
             undefined''.  I think this should say ``unspecified''
             instead.


       4.  Open Issues

         1.  N847 item 4 (character set definitions) is still open.

         2.  The text version of the draft has not been reviewed
             and contains numerous formatting problems such as
             superscripts overprinting information from the
             previous line and unintelligible expressions.

         3.  There are still some typesetting issues to be
             addressed, particularly in annex F.

         4.  All hyphenated terms should be examined to determine
             where the hyphenation is appropriate and where it
             isn't.  All italicized terms should also be examined.

         5.  All of the cross references need to be checked for
             relevance and accuracy.

         6.  The draft still needs some work to fully comply with
             Part 3 of the ISO Directives.  The major issues
             remaining are:

               -- the formatting of tables

               -- we have many subclauses that contain text in
                  addition to subordinate subclauses; ISO strongly
                  discourages this

               -- all references to a specific version of a
                  standard must include the date; it is not
                  sufficient to include the date only in the
                  Normative references or the Bibliography as we
                  currently do




       4                                             SC22/WG14 N870


               -- annexes are required to appear in the order in
                  which they are cited in the text (and thus there
                  has to be a citation for each annex); if anyone
                  has any strong feelings about ordering, please
                  let me know



       --                            Larry Jones