[comp.lang.c] 'C' Standards

kent@xanth.UUCP (Kent Paul Dolan) (01/01/70)

                               That's me!
                              v
>In article <2163@xanth.UUCP> kent@xanth.UUCP (Kent Paul Dolan) writes:
>:[I just _know_ this is gonna get me flamed.  Line eater, eat this posting!]
>:
>:Is it just me, or has anyone else noticed how C is being warped, made
>:ugly and complex, because ONE microprocessor manufacturer couldn't see
>:fit to provide a flat, linear address space?  [rants on...]
>:I don't think it is a useful endeavor to labor at such length to embed
>:the hardware design mistakes of the past in the C standards of the
>:future.

Well, I just saw another example in another posting.  Pretty soon, C
is going to pass PL/1 in the ugly sweepstakes.

One manufacturer, Symbolics, commented to the standards committee that
their machine couldn't cope with setjmp() as currently defined (guess
that means they don't make a general purpose computer?), so every C
user on every machine for the rest of time gets to deal with the added
cruft of treating setjmp() as "almost" a function, and the standard
sinks under the weight of more accreted garbage.

Come on, guys, working standards are lean, clean, and don't cater to
every brain damaged misengineering that passes by.  The point of
standards is to provide a target of excellence for the hardware
designers, not a museum of abominations.

Kent, the (ever more irritable+@an22:cgeailyread

gwyn@brl-smoke.ARPA (Doug Gwyn ) (01/01/70)

In article <2471@xanth.UUCP> kent@xanth.UUCP (Kent Paul Dolan) writes:
>I must be missing something here.

As usual.  What you missed this time is the distinction between
"software developers" (which I referred to) and implementors of
ANSI C.  The latter will occasionally have to work hard in order
to make life simpler for the former.  But then, this point is
probably too subtle for someone who advocates changing a widely-
used language simply to conform to some idealized model in the
course of standardizing it.

throopw@xyzzy.UUCP (Wayne A. Throop) (01/01/70)

> kent@xanth.UUCP (Kent Paul Dolan)
>> gwyn@brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>)
>> [...] software developers cannot really afford to take into
>>account the uncontrolled vagaries of all past, present, and future
>>operating systems.
> Huh?  But the standards committee has been defending to the death its right
> to take into account the uncontrolled vagaries of all past, present, and
> future computing hardware.  I must be missing something here.

Indeed you are.  You've changed the subject from developers to
committee-members.  The standards comittee has been taking these things
into account so that software developers who follow the standard won't
have to.







--
"I could give you my word as a Spaniard," Inigo said.
"No good," the man in black replied.  "I've known too many Spaniards."
                        --- From The Princess Bride by William Goldman
-- 
Wayne Throop      <the-known-world>!mcnc!rti!xyzzy!throopw

bts@sas.UUCP (Brian T. Schellenberger) (09/10/87)

In article <2196@xanth.UUCP>, kent@xanth.UUCP (Kent Paul Dolan) writes:
> 
> Come on, guys, working standards are lean, clean, and don't cater to
> every brain damaged misengineering that passes by.  The point of
> standards is to provide a target of excellence for the hardware
> designers, not a museum of abominations.

I emphatically disagree.  The point of standards is to allow people to get
useful work done -- useful applications that need to work in lots of
different environments.  If you don't care about portability, you don't care
about standards.  If you *do* care about portability, you care about making
the standards work on the widest possible variaty of machines that it can
work on without doing true violence to the language.

The only thing the setjmp() rule seems to break is that you can no longer
assign setjmp to a function pointer and then call setjmp through the pointer.
I would be quite surprised to find that this is an exceedingly common thing
to do.

One thing standards are *NOT* supposed to be is an unattainable standard that
real-world manufacturers are hard-pressed to meet.  If you think that's what
standards are all about, look at Ada.  That is the result of such an "Aim
High" philosophy in standards-writing.

Sure, some whiz-bang gizmos will work better in your native environment.  And
I'll bet that some other things work better in the environment that has
trouble with setjmp/longjmp.  Yet the standard disallows both bells, so the
same code works on both machines.  And that's precisely why a standard is 
useful.
-- 
                                                         --Brian.
(Brian T. Schellenberger)				 ...!mcnc!rti!sas!bts

DISCLAIMER:  Whereas Brian Schellenberger (hereinafter "the party of the first 

guardian@laidbak.UUCP (Harry Skelton) (09/11/87)

In article <181@sas.UUCP> bts@sas.UUCP (Brian T. Schellenberger) writes:
>
>I emphatically disagree.  The point of standards is to allow people to get
>useful work done -- useful applications that need to work in lots of
>different environments.  If you don't care about portability, you don't care
>about standards.  If you *do* care about portability, you care about making
>the standards work on the widest possible variaty of machines that it can
>work on without doing true violence to the language.
>
>Sure, some whiz-bang gizmos will work better in your native environment.  And
>I'll bet that some other things work better in the environment that has
>trouble with setjmp/longjmp.  Yet the standard disallows both bells, so the
>same code works on both machines.  And that's precisely why a standard is 
>useful.
>-- 
>                                                         --Brian.
>(Brian T. Schellenberger)				 ...!mcnc!rti!sas!bts
>

It's hard to think that some people use the word 'standards' to address
what can only work in the environment that they have access to.  I agree with
Brian in that if you work at setting up a program to work in a 'standard' that
it should be created to work under as many environments as possible.  This
would address both the newest version of Unix to the old ( by someone's 
standard - brain damaged ) versions of Unix.

I think that in the realm of public domain, such as Usenet, that programs or
information that is to be considered 'standard' should apply to items that can
address as many machines and/or versions of an OS as possible. 

I don't think the term 'standard' should be used to set guidelines in which
to program by but rather to term the portability of a program or function
or to discribe the actions of a program.

Setting a standard for programming will only limit things and cause great
outcry (such as been seen on this net).

If you want to set a standard, how about just saying what will work under
certain conditions and under different versions of an OS.

Some of us don't have the money to purchase new versions of an OS every time
it is released.  I feel well enough knowing that what I make is upward 
compatable untill a major OS change makes it necessary for me to upgrade.

#include <disclaimer.h>
                          .---------.
Harry Skelton             :   .-.   : --- other mail drops ---
guardian@laidbak.UUCP     :   `-'o  : ihnp4!laidbak!ugh!bear
ihnp4!laidbak!guardian    :    O    : ihnp4!chinet!guardian
                          `---------' 
	As in the words of Socretes: "I drank wha*.........."

gwyn@brl-smoke.UUCP (09/12/87)

In article <1141@laidbak.UUCP> guardian@laidbak.UUCP writes:
>If you want to set a standard, how about just saying what will work under
>certain conditions and under different versions of an OS.

That information might be useful for some purposes, but it cannot
replace true standards.  The essential problem requiring standards
is that software developers cannot really afford to take into
account the uncontrolled vagaries of all past, present, and future
operating systems.  Even just keeping abreast of them is beyond
most organizations' budgets.  The practical advantage of standards
is that applications can be developed to use a known set of
facilities with known properties, and they will then work across
a wide variety of systems with negligible porting effort.  If the
standard environment is sufficiently rich, such applications can
even be useful (unlike many that assume only the lowest common
denominator environment).  Of course, for this to work, there must
be agreement on what the standards ARE, and they must be readily
implementable across all those systems.

kent@xanth.UUCP (Kent Paul Dolan) (09/17/87)

In article <6422@brl-smoke.ARPA> gwyn@brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes:
>In article <1141@laidbak.UUCP> guardian@laidbak.UUCP writes:
>>If you want to set a standard, how about just saying what will work under
>>certain conditions and under different versions of an OS.
>
>That information might be useful for some purposes, but it cannot
>replace true standards.  The essential problem requiring standards
>is that software developers cannot really afford to take into
>account the uncontrolled vagaries of all past, present, and future
>operating systems.

Huh?  But the standards committee has been defending to the death its right
to take into account the uncontrolled vagaries of all past, present, and
future computing hardware.  I must be missing something here.

Kent, the man from xanth.

"His expression lit up.  'Hey, you wouldn't be a dope smuggler, would you?'

Rail looked confused.  'Why would anyone wish to smuggle stupidity when
there is so much of it readily available?'"

		-- Alan Dean Foster, GLORY LANE

kent@xanth.UUCP (Kent Paul Dolan) (09/23/87)

In article <6447@brl-smoke.ARPA> gwyn@brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes:
>In article <2471@xanth.UUCP> kent@xanth.UUCP (Kent Paul Dolan) writes:
>>I must be missing something here.
>
>As usual.  What you missed this time is the distinction between
>"software developers" (which I referred to) and implementors of
>ANSI C.  The latter will occasionally have to work hard in order
>to make life simpler for the former.  But then, this point is
>probably too subtle for someone who advocates changing a widely-
>used language simply to conform to some idealized model in the
>course of standardizing it.


Mr. Gwyn,

If you are unable to keep a civil tongue in your head, I suggest in
the strongest terms that you have yourself replaced as a spokesperson
in this forum for ANSI and X3J11.  Your continued, intemperate and ad
hominem attacks on me and other net correspondents, to the neglect of
answering the valid technical issues raised here, are a disgrace.

You continue to espouse embedding hardware misfeatures into the C
language standard.  Granted, the implementors of the resulting C
compilers will be forced to take these abominations into account, but
SO WILL EVERY C PROGRAMMER FOR GENERATIONS TO COME (those system
developers you distinguish against).

Kent, the (out of patience) man from xanth.

guy%gorodish@Sun.COM (Guy Harris) (09/23/87)

> You continue to espouse embedding hardware misfeatures into the C
> language standard.

Excuse me?  How is he espousing this?  He merely wishes to allow for the
possibility that C might be implemented on machines that do not have a simple
flat address space.

If you wish to write programs that only work on machines with a flat address
space, *nobody* is stopping you from doing so.  You may, however, find yourself
able to use this software more widely if you don't do so.  The choice is yours.
	Guy Harris
	{ihnp4, decvax, seismo, decwrl, ...}!sun!guy
	guy@sun.com

guardian@laidbak.UUCP (09/24/87)

Should not 'C' Standards cover what will currently work with 'C' rather than
trying to re-write 'C' ?   Maybe we should open up a Subject of "Setting 'C'
Standards" to cover what should be included in new versions of the 'C'
compiler.

update:

The document/book I am working on covers what is defined in various 
'C' environments as well as what 'kludges' are needed to work on other 
'brain damaged' 'C' systems.  I have the manuals for Sun, AT&T, 
IBM (AT/PC Class), Sequent, and various micro 'C' manuals.  If anyone 
would like to donate information on problems or hidden features of certain 
compilers, please e-mail the information to: ihnp4!laidbak!guardian.  

Manuals will also be accepted.  All information recieved will be noted as 
comming from the originator.

(yeah, it's gonna' take a while...)

                          .---------.
Harry Skelton             :   .-.   : --- other mail drops ---
guardian@laidbak.UUCP     :   `-'o  : ihnp4!laidbak!ugh!bear
ihnp4!laidbak!guardian    :    O    : ihnp4!chinet!guardian
                          `---------' 
"I thought about it, then I figured out that it was not worth thinking about."

gwyn@brl-smoke.ARPA (Doug Gwyn ) (09/25/87)

In article <2514@xanth.UUCP> kent@xanth.UUCP (Kent Paul Dolan) writes:
>If you are unable to keep a civil tongue in your head, I suggest in
>the strongest terms that you have yourself replaced as a spokesperson
>in this forum for ANSI and X3J11.

I don't know where "the man from Xanth" got the idea that I'm a
spokesperson for ANSI and X3J11 -- I've included disclaimers many
times.  I think this is indicative of the level of care he takes
when reading these articles.

Dolan, despite admitting that he is only slightly acquainted with C
and doesn't regularly use it, seems to feel qualified to declare
what the language "should" be like, discounting the reality of the
conflicting requirements that X3J11 has to take into account when
designing a standard for a living language.  He didn't bother to
send suggestions to X3J11, where they might have done some good,
but simply complains in this newsgroup that X3J11 isn't catering
to his tunnel vision.  This is the academic at his worst.

I received the most amazing mail from this fellow, full of
condescension and (when I failed to be impressed by his
"credentials") quite insulting -- so much so that he has the honor
of being the second person whose mail I automatically delete upon
reception.

This posting, unlike most of mine, has no appreciable technical
content -- because the flame to which I'm responding had none.

throopw@xyzzy.UUCP (Wayne A. Throop) (09/28/87)

> kent@xanth.UUCP (Kent Paul Dolan)
> You continue to espouse embedding hardware misfeatures into the C
> language standard.

Quite the reverse.  He espouses NOT embedding non-universal hardware
"features" into the C language standard, a different thing altogether.

>  Granted, the implementors of the resulting C
> compilers will be forced to take these abominations into account, but
> SO WILL EVERY C PROGRAMMER FOR GENERATIONS TO COME (those system
> developers you distinguish against).

No, they do *not* have to take the hardware misfeatures you disapprove
of into account.  They only have to take the standard into account.
That is, developers don't have to know about segments, or word-granular
pointers, or tagged pointers, or ringed architectures, or any such
transient things of the mundane, hardware world.  All they have to know
is what the standard says are the properties of addresses.  If they
adhere to the standard, they don't have to care what hardware they are
running on.  Which is as it should be.

(Granted, the standard *does* make certain assumptions, such as that the
compiled program is to run on a binary digital computer.  But some level
of assumption is unavoidable.  The point is that the standards committee
has, indeed, chosen a good level.)

--
Inigo hated it there.  Everybody was so dangerous, big, mean and
muscular, and so what if he was the greatest fencer in the world, who'd
know it to look at him?  He looked like a skinny Spanish guy it might be
fun to rob.  You couldn't walk around with a sign saying "Be careful,
this is the greatest fencer since the death of the Wizard of Corsica. Do
not burgle."
                        --- From The Princess Bride by William Goldman
-- 
Wayne Throop      <the-known-world>!mcnc!rti!xyzzy!throopw