----- Original Message -----From:"Lawrence Stewart" <stewart@serissa.com>To:"The Eunuchs Hysterical Society" <tuhs@tuhs.org>Cc:Sent:Fri, 3 Nov 2017 08:53:40 -0400Subject:[TUHS] Fwd: [Simh] An abandoned piece of K&R C
This caught my attention. Did early C really have min and max? Were they used for anything? In those days I was a BCPL user, which IIRC, did not have such things.-LarryBegin forwarded message:From: Leo Broukhis <leob@mailcom.com>Subject: [Simh] An abandoned piece of K&R CDate: 2017, November 3 at 1:14:42 AM EDThttps://retrocomputing.stackexchange.com/q/4965/4025_______________________________________________
In the UNIX V7 version of the C language, there were the /\ (min) and the \/ (max) operators. In the source of the scanner part of the compiler,
case BSLASH:
if (subseq('/', 0, 1))
return(MAX);
goto unkn;
case DIVIDE:
if (subseq('\\', 0, 1))
return(MIN);
...
However, attempting to use them reveals that the corresponding part in the code generator is missing. Trying to compile
foo(a, b) { return a \/ b; }
results in
1: No code table for op: \/
The scanner piece survived in the copies of the compiler for various systems for several years. I tried to look for copies of the code generator table which would contain an implementation, but failed. Has anyone ever seen a working MIN/MAX operator in K&R C?
Thanks,Leo
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh