rex@aussie.UUCP (Rex Jaeschke) (04/04/89)
Recently, I formed a Numerical C Extensions Group (NCEG) to add extra support to the C language and library for numerical applications. Quite a few of the major players in this area have agreed to attend the first meeting to be hosted by Cray Research on May 10-11. I would appreciate any feedback on the proposal below. Thanks. This proposal was mailed to all ANSI/ISO C Standard members, about 10 days ago. Rex Jaeschke %--------------------------------------------------------------- Numerical C Extensions Group Formation ---------------------------------------- Introduction ============ As some of you know, for some time I have had an interest in standardizing extensions outside of X3J11. Thus far, my role has been to convene an extensions meeting one evening during each X3J11 meeting week. And while each extensions meeting was well attended, only the two or three regular presenters really participated. In September, we at X3J11 decided we had done the best job we could and voted to forward the standard to X3 for final approval. And although that has not yet happened, all indications are that it will without further committee deliberation. As a result, the X3J11 meetings will be held less regularly and for shorter periods. That coupled with the fact that many (most?) of the regular X3J11 attendees have little or no interest in the numerical marketplace at this time, makes X3J11 an inappropriate forum for efforts to standardize extensions, at least in the numerical direction. Certainly, any effort to standardize extensions must be done with X3J11's stated goal and future directions in mind. One of the principle reasons complex and the like are not in the first version of the standard is the lack of prior art and in some cases, the lack of consistent prior art. Only once an extensions group can form consensus within their own ranks can they reasonably expect a formal standards body to consider adopting their extensions. The First Step ============== As a result of my involvement in X3J11, my writing and teaching interests, and of my starting The Journal of C Language Translation, I have formed an extensions group. The name of that group is ``The Numerical C Extensions Group'' (NCEG) and its broad purpose will be to standardize extensions to the preprocessor, language and/or library as appropriate to sell to and/or satisfy the increasing interest in C being shown by the numerical community. Who am I to start such a group? -- What I lack in implementation details I make up for in enthusiasm. Besides, there are plenty of competent people out there who can provide the technical details. -- I have no commercial interest in the outcome of such extensions and can therefore, provide some unbiased leadership. -- If others are really interested in making it work I have the time and resources to commit. -- I offer the services of The Journal for ongoing publicity of the groups' decisions and activities. At the very least, Tom MacDonald of Cray Research (and The Journal's Numerical Editor) will provide regular coverage. -- If I don't start something will you? (I don't mind sharing the ``glory'' and the work.) Getting Together ================ We are already at the point where more than a few companies are interested in the idea of NCEG. However, unless something formal happens soon their interest will wane and they will ``do their own thing'' anyway, or at best, sound off a few ideas with others via e-mail. Cray Research has agreed to host an inaugural NCEG meeting at their Mendota Heights facility in suburban Minneapolis, Minnesota on May 10--11. That gives you time enough to decide on your level of participation, if any. The meeting needs to take place before the summer break when many of you may be vacationing, plus one or more of the participating vendors may well be shipping product containing numerical extensions by the end of the year. The longer we leave it to get started the harder the task will be. Inaugural Meeting Format ======================== I propose a 1 1/2 day format for the following reasons: -- It will take quite some time to address administrative issues before even looking at technical solutions. -- Staying overnight gives attendees a chance to get together over dinner and discuss ideas. I find that sleeping on decisions made the previous day can often result in changes and improvements. -- Finishing by lunch the second day gives everyone time to catch a flight out that afternoon. A reasonable format would be to break the day into four formal periods, two each in the morning and afternoon. Have a two hour lunch to get informal discussions going and to have people meet each other. Wed: 9:00 -- 10:30 session 1 10:45 -- 12:15 session 2 12:15 -- 2:15 LUNCH 2:15 -- 3:45 session 3 4:00 -- 5:30 session 4 Thu: 9:00 -- 10:30 session 1 10:45 -- 12:15 session 2 Meeting Agenda ============== It is clear to me that the thing we don't want to do immediately on the first day, is to start producing technical specifications. In fact, if all we achieve in both days is a consensus of what the issues really are, and in which corners each company stands, we will have been wildly successful. I believe a reasonable plan of attack is to: -- Identify any existing prior hardware and software art. -- Identify existing and pending formal and de facto standards and establish a liaison with them. (X/OPEN, OSF, POSIX, X3J11, GKS, and ISO immediately come to mind. Maybe even Fortran 8X.) -- Identify and prioritize the technical issues into the following categories: :-- Must have now or as soon as possible. :-- Can live without for the time being but eventually need/would like. :-- Wishful thinking; ``Gee, wouldn't that be nice stuff''. -- Recognize, accept and rationally deal with the problems created when competing vendors and conflicting commercial interests arise. -- Identify, as soon as possible, those areas that such a group cannot, or chooses not to, standardize. Meeting Rules ============= Although I was not involved with X3J11 at the very beginning, I have attended all but about seven meetings. (X3J11 votes by majority rules.) I have also attended three ISO C meetings where voting is by consensus. As a result, I propose that we remain as informal as possible. In particular, given the specific nature of the task, the small number of participants and the potential commercial conflicting interests, I propose working by consensus rather than simple or two thirds majority vote. It makes no sense for the group as a whole, to have one or two vendors be quite opposed to some idea and go do it their own way anyhow. If such situations cannot be resolved fairly quickly, those issues may have to go into the ``unspecified'' or ``implementation-defined'' bin. Unless someone else wants to arm wrestle me for the role of convener/chair I am happy to serve in that capacity. Apart from that we would need a secretary---perhaps a different person each meeting so the workload can be spread around. Beyond the First Meeting ======================== I would expect that by the end of the first meeting we will have identified most of the ``Must have now or soon'' goals and that we will each have volunteered to be the focal point for, or to actively participate in, one or more interest groups. We will also have exchanged e-mail and postal addresses and phone numbers so that the ``real'' work can get under way. It would probably be useful to identify a date and host for the following meeting. Of course, meeting frequency can be determined as necessary and probably no more than two or three times per year. Once we get organized it would be desirable to schedule them along with X3J11 meetings. Also, we would need a volunteer to do a mailing of minutes, etc., to all companies we have ``registered'' as intending to participate. Meeting attendance must not be necessary for NCEG participation and so there needs to be a way for proposals, etc., to be circulated in paper form. Committee Status ================ As stated earlier, initially NCEG would have no official status. However, it is expected that most, if not all, member companies would also be X3J11 members. If a useful numeric extensions package can be agreed upon, it certainly should be submitted to X3J11 and POSIX for their consideration, however. Regarding the adoption by a formal standards group---it is quite possible that even if we don't violate X3J11, they may not adopt any or all of our proposals simply because the general membership won't want to be forced to implement things their customer base don't need. The only way this might work is if future versions of the standard are defined as ``Base plus optional packages'' as other language standards are. While we certainly don't want to go against established practice, I see the main role of NCEG as defining a de facto standard. If we all agree on the details, our efforts must be successful, by definition. Then, if we have done our homework thoroughly, we'll also have the official (or, perhaps, unofficial) backing of one or more standards groups. What Can You Do? ================ -- Let Tom MacDonald or I know as soon as you can if you are interested in NCEG. This is for your benefit as much as ours so we won't come chasing after you. If less than 8--10 companies commit to attending the first meeting THAT MEETING WILL LIKELY NOT BE HELD. -- Give me constructive feedback on this whole proposal, even if you don't intend to participate in the group now or at all. -- If you want to participate, identify the people in your organization who will likely attend and/or provide input. Even if you cannot attend the meeting, make your submissions anyway so that I can make sure they get a hearing. -- Identify your company's numerical needs and categorize them into the three groups named earlier. Make sure you have a good idea about which things you are prepared to ``go to the wall on'' and which you are not. (Nothing useful will likely result without compromise.) -- Offer to become the focal point for a particular topic. (I'm sure Tom MacDonald would LOVE to handle complex since that's his top priority.) -- Tell anyone who might be remotely interested in what I am proposing. Technical Issues ================ I have identified the following possible issues. (I'm sure there are many more.) They are in no particular order. -- complex -- IEEE issues including infinity and not-a-number handling -- float.h -- need for something like {__NCE__} predefined conformance macro -- validation suite -- matherr and errno -- vector/parallel processing (including array syntax) -- aliasing -- variably dimensioned arrays -- Fortran interface -- issues with existing math library -- numeric applications libraries What Happens Next? ================== I announced the group's existence in the free sample issue of The Journal which was mailed in Mid-March. (About 1500 copies were distributed world-wide.) We'll schedule the meeting and if your level of commitment is reasonable, we'll hold it; if it is not, we'll cancel it. And depending on our understanding of the problem we'll either reschedule it or drop the whole idea. If you want to discuss this proposal or related issues, contact Tom MacDonald or myself as follows: Rex Jaeschke, The Journal of C Language Translation, 1810 Michael Faraday Drive, Suite 101, Reston, VA 22090, (703) 860-0091, uunet!aussie!jct. Tom MacDonald, Cray Research, Inc., 1345 Northland Drive, Mendota Heights, MN 55120, (612) 681-5818, tam@cray.com, uunet!cray!hall!tam. Hotel and Meeting Details ========================= The meeting will be held at Cray's facility located at: Cray Research 1345 Northland Drive Mendota Heights, MN 55120 If you wish to provide handouts of technical submissions, etc., please bring 30--40 copies since on-site duplication facilities will be limited. (At the time of writing, the number of people who have indicated their interest in attending is at least 15--20.) Accommodation is available within walking distance at: Mariott Courtyard 1352 Northland Drive Mendota Heights, MN 55120 (800) 321-2211 (612) 452-2000 Their standard room rate is $62 per night. You may get a corporate rate if you ask. A block of rooms has NOT been reserved; each of you must take care of your own reservations. The hotel has an indoor pool, whirlpool and small exercise room, and a reasonable restaurant. Airport limo service is available on demand from 6:30 AM till 11PM, free of charge. (The hotel is only 10--15 minutes from the airport.) If you rent a car at the airport, take 494E to the Pilot Knob exit. You can see the hotel from the freeway and you make your way to the local service road to get to it. Mendota Heights is about 15 minutes from downtown St. Paul and 25 minutes from downtown Minneapolis. Please advise either Tom or I if you plan to attend the meeting so we can arrange for an appropriate size room and refreshments. %--------------------------------------------------------------------- Rex ---------------------------------------------------------------------------- Rex Jaeschke | C Users Journal | Journal of C Language Translation (703) 860-0091 | DEC PROFESSIONAL |1810 Michael Faraday Drive, Suite 101 uunet!aussie!rex | Programmers Journal | Reston, Virginia 22090, USA ----------------------------------------------------------------------------
jima@hplsla.HP.COM (Jim Adcock) (04/06/89)
Again, people who are interested in doing serious numerical processing in C, ought to look into C++. Not that C++ is not without its shortcomings, but it certainly is my first choice when I need to do serious numerical programming.
rex@aussie.UUCP (Rex Jaeschke) (06/30/89)
Several weeks ago I posted a report on the first meeting of NCEG. And whileI listed the main topics we discussed I did not have the names and contact information for the subgroup leaders. Here they are. At the Minnesota meeting, we identified the `hot' topics and formed subgroups for each of them. Each subgroup has a primary (and for some a secondary) leader who is coordinating that group's activities. The intent is that anyone interested in one of these topics keep in touch with the leader(s) and that only the distillations of these groups actually be included in the formal mailings. That way we can keep the size of the mailings down and we can better focus on the `real' issues at our very short and infrequent meetings. So only send me documents for mailings if you are doing so on behalf of a subgroup or there is no subgroup for your particular topic. The subgroups established in May, and their leaders, are as follows: ---------------------------------------------------------------------- NCEG Subgroups and Leaders ---------------------------------------------------------------------- Topic Primary Secondary ---------------------------------------------------------------------- aliasing Bill Homer variable dim arrays Dennis Ritchie Tom MacDonald array syntax Frank Farance Tom MacDonald parallelization Austin Curley Frank Farance complex Tom MacDonald Bob Allison IEEE issues Jim Thomas David Hough exceptions David Hough Jim Thomas new math functions Frank Farance ANSI math.h issues Walter Murray ---------------------------------------------------------------------- They may be contacted as follows: ---------------------------------------------------------------------- How to Contact Subgroup Leaders ---------------------------------------------------------------------- Person e-mail telephone ---------------------------------------------------------------------- Bob Allison uunet!microsoft!bobal (206) 882-8413 Austin Curley curley@convex.com (214) 497-4529 Frank Farance decvax!farance!frank (212) 486-4700 Bill Homer homer@cray.com (612) 681-5606 David Hough dgh@sun.com (415) 336-7702 Tom MacDonald tam@cray.comx (612) 681-5818 Walter Murray walter@hpda.HP.COM (408) 447-6129 Dennis Ritchie dmr@research.att.com (201) 582-3770 Jim Thomas uunet!apple.com!jimt (408) 974-3266 ---------------------------------------------------------------------- Rex ---------------------------------------------------------------------------- Rex Jaeschke | C Users Journal | Journal of C Language Translation (703) 860-0091 | DEC PROFESSIONAL |1810 Michael Faraday Drive, Suite 101 uunet!aussie!rex | Programmers Journal | Reston, Virginia 22090, USA ---------------------------------------------------------------------------- Convener of the Numerical C Extensions Group (NCEG) ----------------------------------------------------------------------------