Doc No: SC22/WG21/N2596 J16/08-0106 Date: 2008-03-14 Project: JTC1.22.32 Reply to: Robert Klarer IBM Canada, Ltd. klarer@ca.ibm.com

Unofficial Record of Discussion: J16 Meeting No. 47, February 25-March 1, 2008

1. Opening activities

Clamage called the meeting to order at 09:00 (GMT+8) on Monday, February 24, 2008

1.1 Opening comments

Caves described the arrangements and facilities for the meeting.

1.2 Introductions

Clamage had the attendees introduce themselves.

1.3 Meeting guidelines (Anti-Trust)

Clamage reviewed the patent disclosure rules.

1.4 Membership, voting rights, and procedures for the meeting

Nelson reviewed membership rules. Nelson then circulated the attendance list and membership list. Clamage reviewed voting rules and reviewed procedures for the meeting.

1.5 Agenda review and approval

Clamage presented the agenda (document J16/07-0346 = WG21/N2476).

Motion to approve the agenda:

Mover: Hedquist
Seconder: Stoughton
WG favor oppose abstain
J16 unanimous consent
WG21 5 0 0

1.6 Distribution of position papers, WG progress reports, WG work plans for the week, and other documents that were not distributed before the meeting.

Each of the Working Group chairs presented their plans for the coming week.

Core Working Group (CWG)

Adamczyk reported that some design issues related to Concepts remain outstanding. Furthermore, there are approximately 15 diferent papers relating to language extensions that require CWG attention. Adamczyk predicted that little work will be done on defect reports.

Library Working Group (LWG)

Hinnant reported that there are 25 papers before the LWG that have not previously been discussed, and several more papers that need to be revisited. There are some 200 open LWG issues.

Evolution Working Group (EWG)

Stroustrup reported that EWG will discuss Lambdas, Initializer Lists, and any Concepts issues that arise from CWG.

1.7 Approval of the minutes of the previous meeting

Motion to approve the minutes (document J16/06-0323 = WG21/N2453)

Mover: Hedquist
Seconder: Plum
WG favor oppose abstain
J16 unanimous consent
WG21 5 0 0

1.8 Report on the WG21 Monday meeting

Sutter reported that five countries are represented at this meeting; all five have voting status.

Sutter reviewed the plan for completion of the revision.

1.9 Liaison reports

WG14 Liaison

A liason statement from WG14 to WG21 regarding Attributes can be found in J16/07-0336 = WG21/N2466.

A liason statement from WG14 to WG21 regarding Thread Cancellation can be found in J16/07-0325 = WG21/N2455.

POSIX Liaison

A POSIX liason statement to WG21 can be found in J16/08-0046 = WG21/N2536.

Other Working Group: Vulnerabilities (OWGV) Liaison

Plum reported that OWGV appreciated the participation of many WG21 members at the last OWGV meeting in Kona.

OWGV last met at the Carnegie Mellon Software Engineering Institute in Pittsburgh PA. They will next meet in the Netherlands, adjacent to the Spring 2008 meeting of WG14.

1.10 Editor's report and WP approval

The post-Kona draft of the WP is J16/07-0331 = WG21/N2461.

In Kona, a drafting committee and a review committee were empowered to specify the multithreading library. The result of that effort has been added to a subsequent draft, which is J16/08-0031 = WG21/N2521.

Brown read aloud a formal statement on the behalf of Fermilab:

Fermilab strongly objects to the adoption of N2522 as an official 
J16/WG21 Working Paper/Working Draft.

Our specific objection is to "Chapter 31 Date and time library 
[datetime]" and to those small parts of other chapters (notably "Chapter 
30 Thread support library [thread]") that make use of Chapter 31.  We 
have no objection to any other parts of N2521.  We understand that paper 
N2498 in the pre-meeting mailing seeks to modify much or most of Chapter 
31, but we do not address that paper here; we are objecting to the 
adoption of N2521 on the basis of what it says today.

We base our objection on a number of technical issues, most of which we 
have set forth in our paper N2526.  Our major objections are:

   - a multiplicity of types introduced to represent the single idea of
     a duration;

   - the consequent need to write templates, not functions, for even
     simple purposes, making it very difficult to write libraries using
     these types;

   - the explosion in the number of types needed as we extend this
     approach to additional physical quantities.

Additionally, we believe that Chapter 31's approach of introducing 
standard types, such as seconds and nanoseconds, is an incorrect 
abstraction.  More importantly, we also believe that it contradicts a 
pre-existing International Standard, namely "International Standard 31 
Quantities and units."

We are fully aware that we are asking this Committee to reverse itself, 
but there is ample precedent for this.  Moreover, the principal authors 
of the clause in question are themselves already seeking (in N2498) to 
do so.  We therefore ask that Chapter 31 and all references to its 
contents be excised from the motion under consideration.

Brown offered to propose an amendment to excise the offending clauses from the paper.

Boehm recalled that the review committee discussed some of the technical issues that have been raised by Fermilab, and decided to approve the paper as written. The feeling of the review committee at the time was that the document accurately reflected the design that had been approved in principle by the committee in Kona.

Plauger advised that the current Working Paper be accepted as written, but that the committee take care to consider the technical objections that were raised by Fermilab.

Sutter observed that adminisitrative and technical confusion would result if the Working Paper was not formally accepted before technical discussions commenced for the week.

Dos Reis reported that France does not consider this an issue over which it would vote No on a ballot.

Plum proposed that the paper be accepted, but that there be agreement that chapter 31 (which specifies the multithreading library) has the status of new material and is therefore still subject to change.

Miller spoke against approving parts of a WP while excluding other parts of the same document, noting that internal cross-references within the document would be broken.

Boehm reported that the design points that are controversial were not introduced by the review committee, and that there is a great deal of non-controversial text in clause 31.

Discussion ensued.

Motion to accept the working paper

Mover: Becker
Seconder: Klarer

Plum moved to amend the motion as follows:

Motion to remove chapter 31 from the current Working Draft and accept the rest. The paper will be inconsistent and incomplete. The inconsistency will be remedied in one of two ways: by addressing controversies surrounding chapter 31 in later drafts, or by removing from a Working Draft all references to chapter 31.

Mover: Plum
Seconder: Brown

Discussion ensued.

Plauger called the question on the motion to amend.

Support for the call:

WG favor oppose abstain
J16 20 2 4

Motion to amend.

WG favor oppose abstain
J16 2 17 3
WG21 1 3 1

Plauger called the question on the original motion.

Support for the call:

WG favor oppose abstain
J16 20 0 5

Original motion.

WG favor oppose abstain
J16 20 1 5
WG21 5 0 0

1.11 New business requiring actions by the committee

Nelson proposed that, if a document is produced at this meeting to be voted on at this meeting, it has to be posted to the formal motions page on the wiki. Nelson elaborated that it is not sufficient to upload the document to a subgroup page and then link to it; the document should be uploaded to the formal motions page by the time straw poll discussions commence on Friday.

Clamage reported that two names have been submitted to be Friends of the Committee:

There will be a formal motion to grant Friend of the Committee status to these individuals on Saturday.

2. Organize subgroups, establish working procedures.

We have three subgroups: Core, Library, and Evolution. There will be a subgroup of Evolution to deal with issues relating to concurrency.

The committee broke into subgroups at 10:30 (GMT+10).

3. WG sessions (Core, Library, Performance, Evolution).

4. WG sessions continue.

5. WG sessions continue.

6. WG sessions continue.

7. General session.

7.1 WG status and progress reports.

Future meetings:

See 10.1, below.

7.2 Presentation and discussion of DRs ready to be voted on. Straw votes taken.

J16 Liaisons

Move that J16 approves the following members as liaisons to the designated committees:

  1. WG14/J11:
    1. Tom Plum
    2. Bill Plauger
    3. Barry Hedquist
    4. Nick Stoughton
    5. Clark Nelson
  2. POSIX/Austin Group:
    1. Nick Stoughton
    2. Tom Plum
    3. Bill Plauger
  3. SC22/OWGV:
    1. Tom Plum
WG favor oppose abstain
J16 26 0 1

Library Working Group

Motion 1. Move we apply the resolutions to the following issues from N2494 to the C++0X Working Paper:

527, 561, 562, 563, 567, 581, 620, 621, 622, 623, 624, 661, 664, 665, 666, 674, 675, 676, 679, 680, 687, 688, 689, 693, 694, 695, 700, 703, 705, 706

WG favor oppose abstain
J16 unanimous consent
WG21 4 0 1

Motion 2. Move we apply WG21/N2528 "Timed_mutex in C++0x" to the C++0X Working Paper.

Dawes reports that this particular issue was voted 9/1/1/3 in LWG. This was a 2/3rd majority, so it is being brought forward. Regardless, Dawes urges the committee to vote against this motion, as he is concerned about implications to the Windows community. Dawes also expressed concern that implementors will need guidance for this necessary component, but they will have none if this item is not specified in the standard.

Stoughton stated that, by removing timed_mutex, we level the playing field by removing a component that is difficult to implement correctly on Windows and Apple platforms.

Discussion ensued.

Boehm noted that this is not a frequently used facility. It was difficult to find uses through Google Code Search.

Nelson asked about the cost of leaving timed_mutex in the Working Paper

Stoughton replied that the document will specify two incompatible mutex types. The timed_mutex facility as it stands could be very simply implemented using 76 lines of code that Hinnant has already produced. This item doesn't need to be in the standard.

discussion ensued.

McKenney indicated that, if you have two mutex types, a simple mutex and a timed_mutex, and you export a simple mutex through a library interface, then a client cannot acquire a timed_mutex. As real-time computing predominates, this will become an important deficiency.

discussion ensued.

WG favor oppose abstain
J16 16 6 5
WG21 2 2 1

Motion 3. Move we apply WG21/N2549 "Excision of Clause 31" the C++0X Working Paper.

McKenney made the following statement, on IBM's behalf:

Although, given the possible outcomes, IBM would prefer ytime,  IBM repectfully
invokes the ANSI 2-week rule, but without prejudice.  We believe that this will
give members time to consider either improvements to  existing proposals or new
proposals that will better meet the needs of the C++ community.  IBM would also
like  to  take this  opportunity to thank  everyone for their efforts  on  this
important topic.

Plum objected to the invocation of the 2-week rule, on the grounds that the sense of Motion 3 was completely foreshadowed by N2526, which was in the pre-meeting mailing. Furthermore, Plum argued that the ytime proposal (the subject of Motion 4, below), is not new, as it first appeared in document WG21/N2285.

Boehm noted that WG21/N2549 explicitly leaves dangling references in the Working Paper.

Clamage ruled that the two-week rule does not apply.

Boehm argued that there are a reasonable number of bugs in the code in N2552, and for that reason this is clearly not something that should be voted in at this meeting.

discussion ensued.

WG favor oppose abstain
J16 19 3 6
WG21 4 1 0

Motion 4. Move we apply WG21/N2552 "Using ytime for Times in the Thread Support Library" to the C++0X Working Paper.

WG favor oppose abstain
J16 6 16 6
WG21 0 5 0

Motion 5. Move we apply WG21/N2435 "Explicit bool for Smart Pointers" to the C++0X Working Paper.

This motion was withdrawn because there is a CWG issue that affects the explicit bool feature.

Motion 6. Move we apply WG21/N2543 "STL singly linked lists (revision 3)" to the C++0X Working Paper.

WG favor oppose abstain
J16 27 0 0
WG21 5 0 0

Motion 7. Move we apply WG21/N2551 "A variadic std::min(T, ...) for the C++ Standard Library (Revision 2)" to the C++0X Working Paper.

WG favor oppose abstain
J16 lots 0 3
WG21 5 0 0

Motion 8. Move we apply WG21/N2478 "A Proposal to Add typedef default_random_engine to C++0X" to the C++0X Working Paper.

Brown explained that this paper proposes to add a single typedef so that there will be a new symbol that represents the engine that the implementer recommends for use by the casual or inexpert user.

WG favor oppose abstain
J16 27 0 0
WG21 5 0 0

Motion 9. Move we apply WG21/N2554 "The Scoped Allocator Model (Rev 2)" to the C++0X Working Paper.

WG favor oppose abstain
J16 16 2 8
WG21 4 0 1

Motion 10. Move we apply WG21/N2525 "Allocator-specific Swap and Move Behavior" to the C++0X Working Paper.

Austern asked how this proposal affects list::splice.

Halpern replied that splice between containers with unequal allocators is undefined.

WG favor oppose abstain
J16 13 3 11
WG21 4 0 1

Motion 11. Move we apply WG21/N2509 "Nesting Exceptions" to the C++0X Working Paper.

WG favor oppose abstain
J16 15 0 12
WG21 4 0 1

Core Working Group

Motion 1. Move WG21/N2546 "Removal of auto as a storage-class specifier" into the C++0X Working Paper.

Plum suggested that WG14 be invited to deprecate auto.

WG favor oppose abstain
J16 lots 0 0
WG21 5 0 0

Motion 2. Move WG21/N2547 "Allow atomics use in signal handlers" into the C++0X Working Paper.

WG favor oppose abstain
J16 lots 0 1
WG21 5 0 0

Motion 3. Move WG21/N2535 "Namespace Association ("inline namespace")" into the C++0X Working Paper.

WG favor oppose abstain
J16 lots 0 1
WG21 5 0 0

Motion 4. Move WG21/N2541 "New Function Declarator Syntax Wording" into the C++0x Working Paper.

WG favor oppose abstain
J16 lots 1 0
WG21 5 0 0

Motion 5. Move WG21/N2540 "Inheriting Constructors (revision 5)" into the C++0X Working Paper.

WG favor oppose abstain
J16 lots 2 2
WG21 5 0 0

Motion 6. Move WG21/N2544 "Unrestricted Unions (Revision 2)" into the C++0X Working Paper.

WG favor oppose abstain
J16 lots 1 3
WG21 5 0 0

Motion 7. Move WG21/N2555 "Extended Variadic Template Template Parameters (Revision 1)" into the C++0X Working Paper.

WG favor oppose abstain
J16 lots 0 6
WG21 4 0 1

Motion 8. Move WG21/N2550 "Lambda Expressions and Closures: Wording for Monomorphic Lambdas (Revision 4)" into the C++0X Working Paper.

Adamczyk reported that there is potentially an issue on Windows in that the syntax is similar to what is used for attributes. Also, this paper introduces a library component, and that component has not been reviewed by the LWG. It's expected that this review will occur within the next 24 hours. If there is any controversy over the library component, that part of the paper will be removed before this goes to formal vote tomorrow afternoon.

WG favor oppose abstain
J16 27 0 2
WG21 5 0 0

8. WG sessions continue

9. WG sessions continue

10. Review of the meeting

Plauger moved to thank the host. Applause.

10.1 Formal motions, including DRs to be resolved.

Friends of the Committee Move to grant the following organizations Friend of the Committee status:

  1. Fredrik Jonsson, Ericsson
  2. Peter Dimov, self
Mover: Hedquist
Seconder: Stoughton
WG favor oppose abstain
J16 unanimous consent

J16 Liaisons Move that J16 approves the following members as liaisons to the designated committees:

  1. WG14/J11:
    1. Tom Plum
    2. Bill Plauger
    3. Barry Hedquist
    4. Nick Stoughton
    5. Clark Nelson
  2. POSIX/Austin Group:
    1. Nick Stoughton
    2. Tom Plum
    3. Bill Plauger
  3. SC22/OWGV:
    1. Tom Plum
Mover: Hedquist
Seconder: Plauger
WG favor oppose abstain
J16 unanimous consent

Library Working Group

Motion 1. Move we apply the resolutions to the following issues from N2494 to the C++0X Working Paper:

527, 561, 562, 563, 567, 581, 620, 621, 622, 623, 624, 661, 664, 665, 666, 674, 675, 676, 679, 680, 687, 688, 689, 693, 694, 695, 700, 703, 705, 706

Mover: Hinnant
Seconder: Plauger

Gregor indicated that he had found a problem in the proposed resolution for 688, and that the author of the resolution agreed.

Hinnant proposed an amendment to the motion, dropping issue 688 from the list of issues to be considered. Plauger agreed to the amendment.

Amended Motion 1. Move we apply the resolutions to the following issues from N2494 to the C++0X Working Paper:

527, 561, 562, 563, 567, 581, 620, 621, 622, 623, 624, 661, 664, 665, 666, 674, 675, 676, 679, 680, 687, 689, 693, 694, 695, 700, 703, 705, 706

WG favor oppose abstain
J16 27 0 0
WG21 5 0 0

Motion 2. Move we apply WG21/N2528 "Timed_mutex in C++0x" to the C++0X Working Paper.

Lakos requested further explanation of the reasons for the removal of timed_mutex.

Boehm responded by mentioning that it is a relatively minor component, and that it will be seldom used. Furthermore, there is a possibility that, in the future, the base mutex will support this capability. For that reason, the proposal is to defer the introduction of this capability to a TR.

Lakos suggested allowing an implementation to provide timed_mutex in the form of a typedef which my or may not have the same underlying type as the base mutex. He attributed this idea to Dietmar Kühl.

Mover: Hinnant
Seconder: Plauger
WG favor oppose abstain
J16 15 7 5
WG21 2 2 1

The motion did not carry.

Motion 3. Move we apply WG21/N2549 "Excision of Clause 31" the C++0X Working Paper.

Mover: Hinnant
Seconder: Plum
WG favor oppose abstain
J16 18 2 7
WG21 4 1 0

Motion 4. Move we apply WG21/N2543 "STL singly linked lists (revision 3)" to the C++0X Working Paper.

Mover: Hinnant
Seconder: Halpern
WG favor oppose abstain
J16 27 0 0
WG21 5 0 0

Motion 5. Move we apply WG21/N2551 "A variadic std::min(T, ...) for the C++ Standard Library (Revision 2)" to the C++0X Working Paper.

Mover: Hinnant
Seconder: Stoughton

Glassborow indicated that various UK national experts have considered this proposal since straw votes were taken on Friday, and that the UK will be voting no.

WG favor oppose abstain
J16 15 6 6
WG21 4 1 0

Motion 6. Move we apply WG21/N2478 "A Proposal to Add typedef default_random_engine to C++0X" to the C++0X Working Paper.

Mover: Hinnant
Seconder: Brown
WG favor oppose abstain
J16 27 0 0
WG21 5 0 0

Motion 7. Move we apply WG21/N2554 "The Scoped Allocator Model (Rev 2)" to the C++0X Working Paper.

Gregor announced his intention to vote against this proposal, noting that it doubles the number of constructors in simple containers, and that pair will now have 14 constructors. He expects that this new facility will be used only rarely, yet all programmers will be forced to contend with the added interface complexity that this proposal entails.

Halpern did not agree that this new facility will be used only rarely, or that the increased interface complexity is onerous.

Mover: Hinnant
Seconder: Halpern
WG favor oppose abstain
J16 14 4 9
WG21 3 0 2

Motion 8. Move we apply WG21/N2525 "Allocator-specific Swap and Move Behavior" to the C++0X Working Paper.

Mover: Hinnant
Seconder: Halpern
WG favor oppose abstain
J16 24 1 2
WG21 4 0 1

Motion 9. Move we apply WG21/N2559 "Nesting Exceptions" to the C++0X Working Paper.

Witt announced his belief that there are defects in the paper and that it is not ready for approval.

Mover: Hinnant
Seconder: Meredith
WG favor oppose abstain
J16 15 1 11
WG21 4 0 1

Core Working Group

Motion 1. Move WG21/N2546 "Removal of auto as a storage-class specifier" into the C++0X Working Paper.

Mover: Adamczyk
Seconder: Widman
WG favor oppose abstain
J16 26 0 0
WG21 5 0 0

Motion 2. Move WG21/N2547 "Allow atomics use in signal handlers" into the C++0X Working Paper.

Mover: Adamczyk
Seconder: Stoughton
WG favor oppose abstain
J16 26 0 0
WG21 5 0 0

Motion 3. Move WG21/N2535 "Namespace Association ("inline namespace")" into the C++0X Working Paper.

Mover: Adamczyk
Seconder: Meredith
WG favor oppose abstain
J16 26 0 0
WG21 5 0 0

Motion 4. Move WG21/N2541 "New Function Declarator Syntax Wording" into the C++0x Working Paper.

Mover: Adamczyk
Seconder: Dos Reis
WG favor oppose abstain
J16 25 1 0
WG21 5 0 0

Motion 5. Move WG21/N2540 "Inheriting Constructors (revision 5)" into the C++0X Working Paper.

Mover: Adamczyk
Seconder: Wong
WG favor oppose abstain
J16 24 2 0
WG21 5 0 0

Motion 6. Move WG21/N2544 "Unrestricted Unions (Revision 2)" into the C++0X Working Paper.

Mover: Adamczyk
Seconder: Talbot
WG favor oppose abstain
J16 24 0 3
WG21 5 0 0

Motion 7. Move WG21/N2555 "Extended Variadic Template Template Parameters (Revision 1)" into the C++0X Working Paper.

Mover: Adamczyk
Seconder: Meredith
WG favor oppose abstain
J16 25 0 2
WG21 5 0 0

Motion 8. Move WG21/N2550 "Lambda Expressions and Closures: Wording for Monomorphic Lambdas (Revision 4)" into the C++0X Working Paper.

Adamczyk reported that the library section of this paper is now reviewed by LWG. During LWG's review, it was noticed that the semantics of a deleted function were specified elsewhere. This is a clear contradiction in the paper, so the semantics were removed from the current revision of the paper.

Vandevoorde cited evidence that the performance advantages of making reference_closure a standard function were inadvertantly exaggerated during technical discussions.

Crowl replied that the numbers cited were from deployed software, explaining that the hard numbers that have been reported are well represented. If techniques are discovered that make reference_closure unnecessary for performance reasons, he will support the removal of the type.

Mover: Adamczyk
Seconder: Crowl
WG favor oppose abstain
J16 26 0 1
WG21 5 0 0

10.2 Future meetings:

See 11.1, below.

10.3 Issues delayed until Saturday

None.

11. Plans for the future

11.1 Next meeting

June 8-13, 2008 in Sophia Antipolis, France

11.2 Mailings

Nelson reported the following mailing deadlines:

post-meeting mailing March 14, 2008
pre-Nice mailing May 16, 2008

11.3 Following meetings

The following meetings are as follows:

  1. September 14-19, 2008 in the San Francisco Bay area -- this meeting will be co-located with WG14

Motion to adjourn

Mover: Plauger
Seconder: Gregor

Unanimous consent.

Attendance

Company/Organization Representative Mon Tue Wed Thu Fri Sat
Adobe Systems Mat Marcus V V V V V V
Adobe Systems Sean Parent A A
Apple Computer Howard E. Hinnant V V V V V V
Bloomberg John Lakos V V V V V V
Bloomberg Pablo Halpern A A A
Bloomberg Dietmar Kühl A A A A A A
Boost Consulting Eric Niebler A A A A A A
Borland International Alisdair Meredith V V V V V V
Dawes Beman G. Dawes V V V V V V
Seymour Bill Seymour A A A A A A
Dinkumware P. J. Plauger V V V V V V
Dinkumware Tana Plauger A A A A A A
Dinkumware Christopher Walker A A A A A
Edison Design Group J. Stephen Adamczyk V V V V V V
Edison Design Group Daveed Vandevoorde A A A A A A
Edison Design Group John H. Spicer A A A A A A
Edison Design Group Mike Herrick A A A A A A
Edison Design Group William M. Miller A A A A A A
Fermi Nat. Accelerator Lab Walter E. Brown V V V V V V
Gimpel Software James Widman V V V V V V
Google Matthew Austern V V V V V V
Google Lawrence Crowl A A A A A A
PremAnand Rao Hans Boehm V V V V V V
Hewlett-Packard Hans Boehm A A A A A A
IBM Robert Klarer V V V V V V
IBM Michael Wong A A A A A A
IBM Paul McKenney A A A A A A
Indiana University Doug Gregor V V V V V V
Intel Clark Nelson V V V V V V
Microsoft Jonathan Caves V V V V V V
Microsoft Herb Sutter A A A A A A
National ICT Australia Manfred Doudar V V V V V V
Perennial Barry Hedquist V V V V V V
Plum Hall Thomas Plum V V V V V V
Plum Hall Francis W. Glassborow A A A A A A
Red Hat Jason Merrill V V V V V V
Red Hat Benjamin Kosnik A A A A A A
Red Hat Ulrich Drepper A
Rogue Wave Software Martin Sebor V V V
Roundhouse Consulting Pete Becker V V V V V V
Sandia National Labs K. Noel Belcourt V V V V V
Sun Microsystems Stephen D. Clamage V V V V V V
Tele Atlas Alan Talbot V V V V V V
Texas A&M Bjarne Stroustrup V V V V V V
Texas A&M Jaakko Järvi A A A A
USENIX Nick Stoughton V V V V V V
Zephyr Associates Thomas Witt V V V V V V
Amazon.com Gary Powell N N N N N N
CrystalClear Software Jeff Garland N N N N N
Digital Mars Walter Bright N
INRIA Sylvain Pion N N N N
Integrable Solutions Gabriel Dos Reis N N N N N N
Interactive Data Managed Solutions Jens Maurer N N N N N N
Vollmann Engineering Detlef Vollmann N N N N N N
Blair Mckay N N N N N N