Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > C99 is not a failure (continued)

Reply
Thread Tools

C99 is not a failure (continued)

 
 
William Hughes
Guest
Posts: n/a
 
      02-11-2010
On Feb 11, 2:56*am, jacob navia <(E-Mail Removed)> wrote:
> Andrew Poelstra a écrit :
>
> > On 2010-02-10, jacob navia <(E-Mail Removed)> wrote:
> >> Tor Rustad a écrit :
> >>> jacob navia wrote:
> >>>> The most important argument of the people in this group
> >>>> trying to deny the importance of C99 is that

>
> >>>> "There are not enough C99 implementations"
> >>> The main problem, is rather that two *mainstream* compilers lack support
> >>> for C99.

>
> >> Besides Microsoft which one?

>
> > I believe he means gcc.

>
> Gcc implements most of C99 and the places where it diverges from C99 is
> in places where gcc implemented features of C99 BEFORE C99. I can
> understand that gcc developers are reluctant to reimplement features
> that are working and produce problems to gcc's users because the C99
> committee decided to implement their features differently.
>


Which features are you talking about?

> gcc implements C99. Yes not 100% but then it doesn't implement C++98
> to 100% either


Question, how many C++ compilers would you say
implement the C++98 standard to (the same/a greater)
degree (that/than) gcc implements C99?

- William Hughes




 
Reply With Quote
 
 
 
 
Seebs
Guest
Posts: n/a
 
      02-11-2010
On 2010-02-11, William Hughes <(E-Mail Removed)> wrote:
> Which features are you talking about?


Outside of C99 mode, gcc has different semantics for inline functions...
except that they changed so that the default is now much more like C99, but
you can still use something like -fgnu89-inline to get the old behavior.
There are/were some subtle differences, I believe, in VLAs and designated
initializers, although I don't know whether any remain. The gcc
implementation of the C99 struct hack had a surprising trait which
contradicted the wording of C99 TC1 but is consistent with the revised wording
in C99 TC3. I don't know whether gcc supports C99 varargs macros; the C99
spec is noticably different, as I recall, from GNU C's previously-existing
varargs macros.

On the other hand, if I look stuff up in C99, and try to use it, it works.
I am sure there are gaps left, I just don't care about them, apparently.

.... and note that this isn't just a matter of new development. For reasons
hard to explain, I have to care about versions of gcc which are, frankly,
ridiculously old, and all my C99-oriented code still works on them,
apparently.

-s
--
Copyright 2010, all wrongs reversed. Peter Seebach / http://www.velocityreviews.com/forums/(E-Mail Removed)
http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
 
Reply With Quote
 
 
 
 
William Hughes
Guest
Posts: n/a
 
      02-11-2010
On Feb 11, 9:56*am, Seebs <(E-Mail Removed)> wrote:
> On 2010-02-11, William Hughes <(E-Mail Removed)> wrote:
>
> > Which features are you talking about?

>
> Outside of C99 mode, gcc has different semantics for inline functions...
> except that they changed so that the default is now much more like C99, but
> you can still use something like -fgnu89-inline to get the old behavior.
> There are/were some subtle differences, I believe, in VLAs and designated
> initializers, although I don't know whether any remain. *The gcc
> implementation of the C99 struct hack had a surprising trait which
> contradicted the wording of C99 TC1 but is consistent with the revised wording
> in C99 TC3. *I don't know whether gcc supports C99 varargs macros; the C99
> spec is noticably different, as I recall, from GNU C's previously-existing
> varargs macros.
>
> On the other hand, if I look stuff up in C99, and try to use it, it works..
> I am sure there are gaps left, I just don't care about them, apparently.
>
> ... and note that this isn't just a matter of new development. *For reasons
> hard to explain, I have to care about versions of gcc which are, frankly,
> ridiculously old, and all my C99-oriented code still works on them,
> apparently.
>




Well, I was specifically thinking about inline, macros
with a variable number of arguments, and complex
support, as I understood that gcc had extensions for all
which were not compatible with the C99 standard.
I was surprised to glance at the conformance page
and see these marked as done. At a quick glance I
could not see anything that looked like Jacob Navia's
description, a feature that was not implemented because
of conflict with a pre-existing extension.
Hence the question.

- William Hughes
 
Reply With Quote
 
Seebs
Guest
Posts: n/a
 
      02-11-2010
On 2010-02-11, William Hughes <(E-Mail Removed)> wrote:
> Well, I was specifically thinking about inline, macros
> with a variable number of arguments, and complex
> support, as I understood that gcc had extensions for all
> which were not compatible with the C99 standard.
> I was surprised to glance at the conformance page
> and see these marked as done. At a quick glance I
> could not see anything that looked like Jacob Navia's
> description, a feature that was not implemented because
> of conflict with a pre-existing extension.
> Hence the question.


Way back in the day, I think there was more of that. During the C99
process, there was poor communication between gcc folks and the standards
team, largely for hysterical raisins. That was back when gcc's maintainers
as a group were more hostile to the standard, and the standard folks as
a group were more dismissive of gcc. (Example from back in the day; the
gcc manual documented some annoying behavior about \ in include names with
the explanation that ANSI required it, but it simply wasn't so. This
kind of thing happened, going both ways.)

I think C99 would have been much improved by the involvement of someone who
was active in the gcc project, but it didn't work out. I remember a few times
we had discussions where someone said "doesn't gcc have a version of this?"
and about all we could come up with was that someone thought it did but no
one quite remembered. Ugh.

-s
--
Copyright 2010, all wrongs reversed. Peter Seebach / (E-Mail Removed)
http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
 
Reply With Quote
 
Keith Thompson
Guest
Posts: n/a
 
      02-11-2010
Michael Foukarakis <(E-Mail Removed)> writes:
> On Feb 11, 10:46Â*am, jacob navia <(E-Mail Removed)> wrote:

[...]
>> Gcc has a very good C99 implementation, covring most of the standard.
>>
>> Your assertion has no base in reality.

>
> *most* being the relevant keyword. Admittedly, *most* missing features
> are library issues. Some missing macro names and pragmas, or lack of
> optimization for static, aren't important, but extended integer types,
> IEC 60559 support, support for error treatment from math library
> functions are a big deal.
>
> So, next time you want to establish "reality", get your facts straight
> first.


Both extended integer types and IEC 60559 support are optional
features; the lack of them is not a conformance issue.

--
Keith Thompson (The_Other_Keith) (E-Mail Removed) <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
 
Reply With Quote
 
Ersek, Laszlo
Guest
Posts: n/a
 
      02-12-2010
In article <(E-Mail Removed)>, Seebs <(E-Mail Removed)> writes:

> During the C99 process


Funny this should come up, I wanted to ask about the history of the
standardization process anyway. Perhaps this is a trivia question more
adequate for a tabloid, but I hope it's not completely uninteresting,
considering that Bjarne Stroustrup wrote a complete article in a similar
matter (>>The C++0x "Remove Concepts" Decision<<).

http://www.drdobbs.com/architect/218600111

Who were the people involved? With what (public) backgrounds? How were
they "selected"?

The wikipedia article

http://en.wikipedia.org/wiki/Herbert_Schildt

uses the expression

"Peter Seebach, a former voting member of ISO C committee"

Were there non-voting members? What did the right to vote depend on?

Were committee meetings anything like corporate dev team meetings? (I
ask this in a completely neutral tone.)

I'm not trying to provoke hostility, I'm just curious how it all went.
The rationales sometimes use language that "tells a story", like "the
committee considerd this or that", or "the standard developers came to
the conclusion that so and so", but I'd like to know more.

Thanks,
lacos
 
Reply With Quote
 
Seebs
Guest
Posts: n/a
 
      02-12-2010
On 2010-02-12, Ersek, Laszlo <(E-Mail Removed)> wrote:
> Who were the people involved? With what (public) backgrounds? How were
> they "selected"?


It gets complicated.

There are two committees, sort of. There's the US ANSI committee, and there's
the ISO committee, but it's more convenient if they have the same meetings,
so they do. The ANSI committee has membership based on paying dues and
choosing to go. Other national bodies have different ways of picking people.
Many technical decisions are decided by "straw poll", where all people
present, whether or not voting, are polled to determine the sense of the
group. Decisions that actually need to be formally made are made by a vote
of national bodies, only officially it's "consensus" of national bodies.

The voting rules for ANSI are that you have to declare intent to be a voting
member, and at any given meeting, you have to have attended two of the last
three meetings (including the current one) to vote. So if you attend every
other meeting, you can vote at the ones you're at.

> Were there non-voting members? What did the right to vote depend on?


Choosing to opt for it and attending meetings. Schildt didn't opt for
a voting membership, if I recall correctly, but more significantly, he
never showed up for meetings. I actually made a bit over half the meetings
during the first 9 years or so of my membership.

> Were committee meetings anything like corporate dev team meetings? (I
> ask this in a completely neutral tone.)


I have no idea. I am reliably assured that $dayjob's work enviroment
is wildly atypical (in a good way).

Committee meetings were, for the large part, pretty fun. Mostly polite,
reasonable, and fairly friendly. I can recall about one instance of real
hostility, involving internal politics in a national delegation. So far
as I know, the right people won that one, although it happened right as
I was dropping out for budget reasons, so I'm not totally sure.

There were various different activities, which were resolved in different
ways. Defect processing worked by splitting into smaller groups to look
at a series of defects and come up with proposed answers, which were then
presented to the committee. People presented things like proposals for
extensions, proposals for alignment with other standards, and so on.

Generally, by the end of the week, decision making had declined in quality,
so there was an effort to schedule hard stuff early and stuff that was less
important late in the week.

> I'm not trying to provoke hostility, I'm just curious how it all went.
> The rationales sometimes use language that "tells a story", like "the
> committee considerd this or that", or "the standard developers came to
> the conclusion that so and so", but I'd like to know more.


My views are probably only semi-informed, as a great deal of the material
is social and I tend to miss a big hunk of social face-to-face stuff.

-s
--
Copyright 2010, all wrongs reversed. Peter Seebach / (E-Mail Removed)
http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
 
Reply With Quote
 
Ersek, Laszlo
Guest
Posts: n/a
 
      02-12-2010
In article <(E-Mail Removed)>, Walter Banks <(E-Mail Removed)> writes:

> No one should underestimate the work involved in participation.


Thank you both for explaining.
lacos
 
Reply With Quote
 
Chris H
Guest
Posts: n/a
 
      02-14-2010
In message <(E-Mail Removed)>, Seebs
<(E-Mail Removed)> writes
>Committee meetings were, for the large part, pretty fun. Mostly polite,
>reasonable, and fairly friendly. I can recall about one instance of real
>hostility, involving internal politics in a national delegation. So far
>as I know, the right people won that one,


No the right people lost and the panel has closed... Sadly all the
industrial players will not touch the panel (if and when it restarts)
with a barge pole.


--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: C99 is not a failure Antoninus Twink C Programming 23 01-30-2010 06:00 PM
Success Or Failure: There Is No Such Thing As Failure bs866806@163.com C Programming 0 01-06-2008 11:41 AM
Difference between "library parts" of C99 and "language parts" of C99 albert.neu@gmail.com C Programming 3 03-31-2007 08:14 PM
C99 struct initialization (C99/gcc) jilerner@yahoo.com C Programming 3 02-20-2006 04:41 AM
[JAVA] [EVALUATION] - The Java Failure (Sorry: The Java(tm) Failure) Ilias Lazaridis Java 0 02-01-2005 10:32 AM



Advertisments