[comp.lang.c] Why he won't use ANSI C

chris@trantor.umd.edu (Chris Torek) (02/21/88)

In article <7290@brl-smoke.ARPA> gwyn@brl.arpa (Doug Gwyn) writes:
>My views normally agree with Guy Harris, Chris Torek, Henry Spencer, and
>other established C/UNIX "gurus".  The main "controversy" is that Chris
>and Donn Seeley seem fundamentally opposed to the idea of C standardization
>by committee whereas I support what X3J11 is doing for the most part.

I was all set to hotly deny this (to boldly split the infinitive),
and jump up and down shouting `I AM NOT SHOUTING'; but it is true,
quite so; and it stems from my personal definition of a committee:
A committee is a group of people charged with the task of reaching
a compromise, and a compromise is a solution to a problem that is
equally distasteful to all.  I do not want language changes that
are equally distasteful to everyone; I want those which result in
a complete, coherent whole that is nonetheless compatible with what
I run now (so I need not do any work :-) ).

X3J11 has actually done quite well, given the differences between
existing implementations.  There are a few botches, notably the
unsigned `value preserving' rules, `noalias', and some of the
preprocessor rules.  The coexistence of old and new style declarations
necessitates the format for the prototype declaration of a function
with no arguments, which is an eyesore.  There are a few other
kludges, but an ANSI Standard is of necessity a compromise.  I
might wish for a standard from research!dmr, but he has the wrong
initials.  If only he had been named Isaac Stanley Oliver....
-- 
In-Real-Life: Chris Torek, Univ of MD Computer Science, +1 301 454 7163
(hiding out on trantor.umd.edu until mimsy is reassembled in its new home)
Domain: chris@mimsy.umd.edu		Path: not easily reachable

fox@alice.marlow.reuters.co.uk (Paul Fox) (03/04/88)

In article <2331@umd5.umd.edu> chris@trantor.umd.edu (Chris Torek) writes:
>X3J11 has actually done quite well, given the differences between
>existing implementations.  There are a few botches, notably the
>unsigned `value preserving' rules, `noalias', and some of the
>preprocessor rules.  The coexistence of old and new style declarations
>necessitates the format for the prototype declaration of a function
>with no arguments, which is an eyesore.  There are a few other
>kludges, but an ANSI Standard is of necessity a compromise.  

Well, what about the fact that:

	typedef int	(*PFI)();

	main()
	{
		PFI	fp = main;
	}

gives:
	fp == *fp == **fp == ***fp ?
-------------------
     //        o      All opinions are my own.
   (O)        ( )     The powers that be ...
  /    \_____( )
 o  \         |
    /\____\__/      
  _/_/   _/_/         UUCP:     fox@alice.marlow.reuters.co.uk

karl@haddock.ISC.COM (Karl Heuer) (03/09/88)

In article <295@alice.marlow.reuters.co.uk> fox@alice.marlow.reuters.co.uk (Paul Fox) writes:
>In article <2331@umd5.umd.edu> chris@trantor.umd.edu (Chris Torek) writes:
>>X3J11 has actually done quite well ... There are a few botches [e.g. ...]
>
>Well, what about the fact that [after declaring a function pointer `fp`]
>	fp == *fp == **fp == ***fp ?

The only new part is that `fp()` is now a valid way to invoke the indirect
function.  It's always been true that, in any context other than `(*fp)()`,
`*fp` would degenerate to `fp`; all they did was remove the special case.  (A
cleaner approach would have been to deprecate the degeneration, and require an
explicit ampersand: `fp = &main`.  Too big a change, I suppose.)

Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint

chris@mimsy.UUCP (Chris Torek) (03/11/88)

In article <933@micomvax.UUCP> ray@micomvax.UUCP (Ray Dunn) writes:
>To a certain extent I agree with the sentiments expressed above
[a `thank you' to Doug Gwyn that I deleted]
>by Richard even though (if anyone cares) I sometimes vent my frustration
>at some of Doug's idiosyncratic responses.

Venting frustration in netnews is something many will do (yes, I too),
though it is usually counterproductive.  Since it happens, readers of
this group (and other groups) should watch for it and try not to let it
affect them.

>If you hold yourself up as an authority, as Doug does, you must be very
>careful to maintain your credibility.

Here I will argue philosophy (another counterproductive effort :-) ).
I say one cannot `hold oneself up as an authority'.  There are two
kinds of Authority.  One boils down to `power'; in the Usenet
dementiarchy [*], at least, and to a fair extent in the ARPA-land
info-c mailing list, this meaning does not apply.  The other is, in
essence, `knowledge'; the only true Authority in this sense is that
which is demonstrated.  Hence it is his readers who (sensibly) regard
Doug Gwyn as an Authority on the latest doings of the ANSI X3J11
committee.  Thus it is (at least in part) up to those readers to
separate Gwyn-opinion from committee-fact.

----
[*] `Rule by madness'.  (I made it up.)


>What does it matter if *I* spout off, who am I, but Doug has positioned
>himself such that his readers should be able to rely on the veracity of his
>remarks.  He should thus be careful what he says and how he says it.

Perhaps so; but it *does* matter if you, or indeed anyone, `spouts off'.
As you yourself put it:
>... in my mind it denegrates the "quality" of [one's]
>postings and [one's] credibility as an authority.

>Earlier gurus of 4 or 5 years ago ... would
>rarely resort to sarcasm and downright dismissal of others views!

(I think your memory has mellowed the situation somewhat.)

>[Mind you, Chris Torek seems to be getting a little crotchetty in his
>old age these days! (:-)].

I am not!  Why you young whippersnapper, I will have you know . . . .
:-)  (Besides, I am only 24, and even among full mortals that is rarely
considered old, to say nothing of Halfelven.)

Seriously, though, anyone can rant, and most of us do; while as
authors we should try to minimise this, as readers we should also
expect it, and do our best to ignore it.

>If anyone wants to follow up this posting, please choose an appropriate news
>group.

I could not think of any better place (except perhaps /dev/null, but
then that was why I put in the Summary header above.).
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris

llave@phoenix.Princeton.EDU (Rafael Llave) (03/13/88)

# Well, what about the fact that:
# 
# 	typedef int	(*PFI)();
# 
# 	main()
# 	{
# 		PFI	fp = main;
# 	}
# 
# gives:
# 	fp == *fp == **fp == ***fp ?

A)
	It does not.
B)
	If it did , it would not be more serious
than
	for( i=0;;) 
generating an endless loop.