Path: csiph.com!weretis.net!feeder9.news.weretis.net!panix!.POSTED.spitfire.i.gajendra.net!not-for-mail From: cross@spitfire.i.gajendra.net (Dan Cross) Newsgroups: comp.os.linux.misc,alt.folklore.computers Subject: Re: Naughty =?UTF-8?Q?C=E2=99=AF?= Date: Tue, 6 Jan 2026 19:59:54 -0000 (UTC) Organization: PANIX Public Access Internet and UNIX, NYC Message-ID: <10jjpjq$p56$2@reader2.panix.com> References: <10jjc9s$3uhtk$1@dont-email.me> <10jjd2a$e8$2@reader2.panix.com> <84c7R.819121$PGrb.160843@fx10.iad> Injection-Date: Tue, 6 Jan 2026 19:59:54 -0000 (UTC) Injection-Info: reader2.panix.com; posting-host="spitfire.i.gajendra.net:166.84.136.80"; logging-data="25766"; mail-complaints-to="abuse@panix.com" X-Newsreader: trn 4.0-test77 (Sep 1, 2010) Originator: cross@spitfire.i.gajendra.net (Dan Cross) Xref: csiph.com comp.os.linux.misc:80613 alt.folklore.computers:233283 In article <84c7R.819121$PGrb.160843@fx10.iad>, Scott Lurndal wrote: >cross@spitfire.i.gajendra.net (Dan Cross) writes: >>In article <10jjc9s$3uhtk$1@dont-email.me>, >>Chris Ahlstrom wrote: >>>Waldek Hebisch wrote this post by blinking in Morse code: >>> >>>> In alt.folklore.computers c186282 wrote: >>>> >>>>> Hmm ... look at all the GNU 'compilers' - >>>>> FORTRAN, COBOL, Ada, 'D', M2, Rust,C++, >>>>> G++, even Algol-68. None are 'compilers' >>>>> per-se, but to-'C' TRANSLATORS. So, 'C', >>>>> pretty much All Are One And One Is All. >>>> >>>> No. Compiler as first stage translate given language to a >>>> common representation. This representatiton is different >>>> than C. Ada and GNU Pascal have parametrized types, there >>>> is nothing like that in C. >>>> >>>> >>>> >>>> C++ (and some other languages) >>>> have exceptions, C do not have them. >>> >>>What about setjmp()/longjmp() ? >> >>Not at all the same thing. `setjmp`/`longjmp` are about >>non-local flows of control; exceptions are about non-local >>passing of values. > >However, in many real world situations, [sig]setjump and >[sig]longjmp can be used to emulate exceptions. Yes, I said just that. :-) >I have a C++ application that models a computer (Burroughs V380 >et alia). The thread that models each processor (cpu) uses >longjmp whenever a condition is encountered that would have >been signaled as a fault on the real cpu. The processor code >doesn't do dynamic memory allocation; and the fault code is >stored in the processor class before the longjmp call. > >I once tried replacing setjmp/longjmp with C++ exceptions which >led to a 20% reduction in simulated CPU performance (as measured >by the time to compile a COBOL program). Huh. Interesting. I wonder why...possibly to run a bunch of nop destructors? - Dan C.