Newsgroups: comp.lang.c Path: utzoo!henry From: henry@utzoo.uucp (Henry Spencer) Subject: Re: Shouldn't ANSI have provided nonvolatile instead of volatile? Message-ID: <1990Feb12.182343.14269@utzoo.uucp> Organization: U of Toronto Zoology References: <1117.18:37:35@stealth.acf.nyu.edu> <1990Feb8.162440.22318@utzoo.uucp> <17910@rpp386.cactus.org> Date: Mon, 12 Feb 90 18:23:43 GMT In article <17910@rpp386.cactus.org> woody@rpp386.cactus.org (Woodrow Baker) writes: >I wish that there had been more notice, or information as to when the >standards meetings were held, or that they had gotten a wider input. It was fairly widely publicized in the C community at the time, actually. >They virtually ignored the needs of control programmers. Looking at the list of X3J11 members, I really doubt this -- there is no shortage of people there from companies with very heavy involvement in such things. >Flexible way to declare a function as an interrupt handler. >I like Turbo 'C's modifier of interrupt. Unfortunately very machine-specific. No, not all machines have interrupts resembling those of the 8086. This is also an area where a little bit of assembly-language glue -- often necessary anyway -- goes a very long way to solving the problem. >It simply brackets the entire function with a push all registers, and >restore all registers. The definition of it would be: saves the >entire working register set of the machine and restores it on exit. This is vast overkill for interrupts on, say, the AMD 29000 -- a machine being sold primarily to the high-end control market, and one that is noted for blazing-fast interrupt handling. Actually, many modern processor architectures (the 8086 and descendants do not qualify!) have special provisions for very-low-latency interrupts that would be ill-served by such a feature. >QUADS. I.E. double longs. The "common extensions" discussion in the appendix mentions "long long int" among other things. I think the major problem here was simply that there was little experience with it. Pity. >FIXED i.e. fixed point math. This type would deal with chars,ints, longs >and quads. There would be an assumed binary point in the middle of the >data... But *I* want the assumed binary point three bits from the right! :-) This whole area is a massive swamp of conversion rules, overflow handling, etc. I doubt that anyone has ever added this to C, and I think there is good reason to fear the consequences. Despite some of the uninformed flaming, very little of what's in ANSI C is actually X3J11 inventions: almost all of it has actually been tried, and proven workable, in some C compiler somewhere. This is important. The few things that *were* X3J11 inventions are among the worst botches in the standard. -- SVR4: every feature you ever | Henry Spencer at U of Toronto Zoology wanted, and plenty you didn't.| uunet!attcan!utzoo!henry henry@zoo.toronto.edu