State of C++ Evolution (post-Kona 2007 Meeting)

This paper presents a quick summary of all papers submitted to WG21 for
consideration by the Evolution Working Group, with an indication of their
progress towards inclusion in the next C++ Standard. It is based on the
pre-Kona 2007 mailing, with known additions for the post-Kona mailing made
available for formal motions during the Kona meeting.

There are no library papers here, unless highlighted by the Registration
Document submitted following the Portland meeting. Otherwise this list
focuses entirely on changes affecting clauses 1 -> 16. Library
progress can be followed in the companion document
N2433. Note that most of the overlap is
related to threading and atomic libraries.

Note on progress

A clear statement of intent was made to complete work on the new standard
in 2008, in order to achieve publication in 2009. To meet this timetable
the plan is to vote out a feature complete Working Draught in two meetings
time at Sophia-Antipolis in June. An FCD will be issued from the
following meeting, allowing at least a minimal time for review and
'integration testing' of the new features.

In order to reach this goal, the threading library presented at Kona has
been adopted, although a further round of work in an Editorial Committee
will follow before a Review Committee signs off the draught wording for
the project editor. While this proposal is feature and semantically
complete, a little wordsmithing remains before it is ready for the
Working Draught. It is expected to be incorporated in the Working Draught
of the pre-Bellevue mailing.

A second proposed compromise to meet the timetable is the scaling back
of the garbage collection feature. It is planned to remove known problems
that inhibit garbage collected implementations, without actively designing
a new feature. A couple of library APIs will be added to indicate
code where pointers may be masked, or it is known that masked pointers do
not exist. Both could be implemented as no-operations on a non-collecting
implementation. It is expected that work on garbage collection will
continue, and should be adopted in some form ahead of a complete
revision of the next standard. Possible means include a new Technical
Report, or a Normative Addendum to the (planned) 2009 Standard.

Key to the tables

Papers have been grouped according to theme, and related papers joined
into the same row, even when submitted by different authors. The intent is
to capture the feature, rather than the workflow. Papers are ordered by
theme, and themes ordered by document number for the first submission on
that theme.

Note that while the deadline for new proposals for C++0x is long past, it
is not unusual to split a specific feature out of an existing proposal, to
ease their progress. Likewise, existing Core Working Group issues may grow
large enough to merit a paper that would not have previously shown on this
list.

Proposals in a green font have advanced a
category since the last meeting, those in red
have moved back, while those in yellow are new
or have been updated since the last meeting.

Proposals with a green background have been highlighted as the features
that will be delivered in the next version of the standard in the
Registration Document.

WG21 Number(s)

Title

Authors

Integrated into working paper

These proposals are already incorporated into the latest working
paper, N2369, or the project editor
has been directed to include them in the next draught.

These papers have been adopted in principle, and are undergoing
final wordsmithing in a specially commissioned Editorial Committee.
They will be further reviewed by a Review Committee before moving
directly into the Working Paper ahead of the next meeting.

These papers are undergoing final scrutiny in Core Working group.
Full wording is available, and each has been reviewed at least once
by the CWG. However, some draughting issues remain to be resolved
before moving into the Working Paper.

The design of these features is deemed complete and accepted by EWG,
and there is a paper with complete wording for Core to review.
However, CWG have not yet devoted any committee time to this issue.
Typically papers in this state have been accepted by EWG at the
previous meeting, or the version with proposed wording was not
avaiable by the pre-meeting mailing.

These papers are the inspiration or history behind the active or
accepted proposals. They might have been absorded into a larger
proposal to ease taking a whole package through review. They are
retained here as they capture a large part of the rationale that
will produce C++0x.

Papers in this category have been in development and reviewed
several times over the evolution of C++0x. However, although there
is a strong interest the feature has not quite stabilised fast
enough to meet the 2009 target deadline. Work will proceed
outside the main committee meetings, and will be picked up with a
view to an early adoption.

These topics are deemed too important to wait for another standard
after C++0x before being published, but too experimental to be
finalised in time for the next Standard. Therefore, these features
will be delivered by a technical report at the earliest
opportunity.

Papers in this category have been reviewed in EWG but for various
reasons they have not been accepted for C++0x. This may have been
a lack of time to finalise the issues, a lack of motivation
compared to competing papers, or simply the authors being
pulled in different directions. This list is retained as a
potential working list for EWG to pick up for the next standard
revision.

These papers have either been superseded by different set of
proposals, or were identified as a something we do not want to do.
While everyone is free to submit papers they feel strongly about,
it is unlikely any of these topics will gain favour for a
future standard unless something significantly new is presented
with the updated paper.