October 23-27 meeting of ISO SC22 WG14, the C programming language committee (Part 2 of 3)
By C Project Lead on Nov 12, 2006
Highlights of the October 23-27 meeting of ISO SC22 WG14, the C programming language committee:
- Lawrence Crowl of Google gave a presentation on where C++ threads is going.
- A proposal for Sequence Points work for the C rationale. This is in response to C++ threads work in understanding sequence points.
- Proposal to augment the interface of malloc, et al.
- DTR 24732, Decimal Floating Point headed for final balloting after some minor updates.
- DR review
- TR24731, Part II, Bounds Checking via dynamic allocation.
- We also had a visitor this meeting, Ulrich Drepper from Red Hat, Ulrich talked about his perceptions of the future of C. This lead to the main surprise of this meeting, committee sentiment to consider opening the C standard for another revision.
Here are the details on augmenting the interface of malloc, modeling sequence points to aid C++ work on concurrency, and committee discussions on revising the C standard.
Details (Part II):
Tom Plum Report #2, WG21/N1085 C++ Proposal to augment the interface of malloc, et al.
WG21/N1085 is a proposal by Howard Hinnant. Ulrich wants to add alignment considerations to this C++ proposal. POSIX is now using a function called posix_memalign() that seems suitable for the original proposal. That function came from an X/Open function named memalign(). Some of the members of J11 believe a function of this sort would be useful for C as well. Ulrich expressed concern that C++ might put a different spin on this. Bill Plauger prefers that we not push this work on to C++. Sees it as simply adding to layers of complexity. It's not clear whether or not C++ will even ever adopt this. Bill Plauger sees it as low on the list of things to do.
After much debate and several straw polls we agreed to this Liaison Report
WG14 urges WG21 to incorporate into the next C++ revision ("C++0x"):
- The functions sizeof_alloc and resize_alloc from WG14/N1085 ("Proposal to augment the interface of malloc/free/realloc/calloc", by Howard Hinnant); and
- A function along the lines of posix_memalign - see www.opengroup.org/onlinepubs/000095399/functions/posix_memalign.html
N1188 is a paper that explains the C language sequence point model, and may be suitable as an addition to the C99 rationale. The difficulty seems to be in determining all the possible orderings of sequence point, which makes teaching it difficult.
Making use of the model here is important in providing liaison input to C++ for their concurrency model. We want to make sure our underlying model does not get broken by C++ concurrency. We have plenty of time to get this in the C99 rationale, but there is more urgency in nailing down our model for C++ concurrency.
Future of C - Ulrich Drepper
Ulrich believes that the state of C compiler development is such that the C Standard is well behind the technology being used by the community. Virtually all major C compiler developers have developed extensions to the language that go well beyond the Standard. We can either subsume ourselves to C++, or plan on revising the C Standard to adopt existing technologies. Bill Plauger pointed out that our pace has been deliberate, and that adoption of C99 has been slow. We probably should consider reopening the Standard soon, and look at adopting things like multi-treading, security features, and others. Ulrich believes we should focus on existing practice, features that are in wide use, minimize the risk of standardizing features that no one will use. Doug Gwyn believes that C will have longevity in embedded programming, but that if we work on a 5 year schedule we should probably consider starting now. There are a number of things that C can probably do better than other languages. Round table discussion on whether or not we should consider revising the C Standard. David Keaton believes that are real commercial needs that C can address, such as security. General feeling that making a decision to revise the C Standard with a focus on existing practice would be a good thing. Many developers make use of extensions to the language, some do not. Invention of new feature sets is not a good idea. John Benito: No one is saying no. If we are going to do this we will need to work on our charter, and proceed from there.
The next step. John Benito (WG14 Convenor): We need to start putting a charter together that will define the scope a revision to the C Standard. Tom Plum is in favor of using the wiki as a vehicle to propose ideas. Bill Plauger suggests using a full day in London to process such a list. Start by generating a list, filter it based on criteria, then let the world know what we are doing. We are not ruling out proposals from the outside.