Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The Macintosh is Xerox technology at its best.


devel / comp.lang.c / Re: iso646.h

SubjectAuthor
* iso646.hLawrence D'Oliveiro
+- Re: iso646.hLew Pitcher
+* Re: iso646.hJames Kuyper
|`- Re: iso646.hLawrence D'Oliveiro
`* Re: iso646.hDavid Brown
 +* Re: iso646.hScott Lurndal
 |`* Re: iso646.hLawrence D'Oliveiro
 | `* Re: iso646.hKeith Thompson
 |  `* Re: iso646.hLawrence D'Oliveiro
 |   `* Re: iso646.hKeith Thompson
 |    `* Re: iso646.hLawrence D'Oliveiro
 |     `- Re: iso646.hKaz Kylheku
 `* Re: iso646.hLawrence D'Oliveiro
  +- Re: iso646.hKaz Kylheku
  +* Re: iso646.hBlue-Maned_Hawk
  |`* Re: iso646.hLawrence D'Oliveiro
  | +- Re: iso646.hKaz Kylheku
  | `* Re: iso646.hJanis Papanagnou
  |  `* Re: iso646.hLawrence D'Oliveiro
  |   +- Re: iso646.hJanis Papanagnou
  |   `- Re: iso646.hKaz Kylheku
  +- Re: iso646.hTim Rentsch
  +* Re: iso646.hJanis Papanagnou
  |`* Re: iso646.hLawrence D'Oliveiro
  | `- Re: iso646.hJanis Papanagnou
  +* Re: iso646.hDavid Brown
  |`* Re: iso646.hKaz Kylheku
  | +- Re: iso646.hbart
  | +* Re: iso646.hJanis Papanagnou
  | |+* Re: iso646.hKeith Thompson
  | ||`* Re: iso646.hLawrence D'Oliveiro
  | || +* Re: iso646.hKeith Thompson
  | || |`* Re: iso646.hDavid Brown
  | || | `- Re: iso646.hJanis Papanagnou
  | || +* Re: iso646.hLew Pitcher
  | || |`* Re: iso646.hLawrence D'Oliveiro
  | || | +- Re: iso646.hLew Pitcher
  | || | +* Re: iso646.hKaz Kylheku
  | || | |`- Re: iso646.hChris M. Thomasson
  | || | `- Re: iso646.hScott Lurndal
  | || `- Re: iso646.hKaz Kylheku
  | |`* Re: iso646.hKaz Kylheku
  | | +- Re: iso646.hJanis Papanagnou
  | | `* Re: iso646.hJanis Papanagnou
  | |  `- Re: iso646.hKaz Kylheku
  | `- Re: iso646.hDavid Brown
  +- Re: iso646.hbart
  `* Re: iso646.hMalcolm McLean
   +* Re: iso646.hLew Pitcher
   |+- Re: iso646.hKaz Kylheku
   |+* Re: iso646.hLawrence D'Oliveiro
   ||+* Re: iso646.hKeith Thompson
   |||`* Re: iso646.hLawrence D'Oliveiro
   ||| +* Re: iso646.hKeith Thompson
   ||| |+- Re: iso646.hLawrence D'Oliveiro
   ||| |`- Re: iso646.hMalcolm McLean
   ||| `- Re: iso646.hJanis Papanagnou
   ||`- Re: iso646.hJanis Papanagnou
   |`* C/CPP macro conventions (was Re: iso646.h)Janis Papanagnou
   | `* Re: C/CPP macro conventions (was Re: iso646.h)Kaz Kylheku
   |  +- Re: C/CPP macro conventions (was Re: iso646.h)Janis Papanagnou
   |  +- Re: C/CPP macro conventions (was Re: iso646.h)David Brown
   |  `- Re: C/CPP macro conventions (was Re: iso646.h)Blue-Maned_Hawk
   +* Re: iso646.hbart
   |+* Re: iso646.hScott Lurndal
   ||`* Re: iso646.hJames Kuyper
   || +* Re: iso646.hKalevi Kolttonen
   || |+* Re: iso646.hLawrence D'Oliveiro
   || ||`* Re: iso646.hKaz Kylheku
   || || +* Re: iso646.hKalevi Kolttonen
   || || |`* Re: iso646.hJanis Papanagnou
   || || | `* Re: iso646.hJames Kuyper
   || || |  +* Re: iso646.hJanis Papanagnou
   || || |  |+- Re: iso646.hJanis Papanagnou
   || || |  |+* Re: iso646.hKalevi Kolttonen
   || || |  ||`* Re: iso646.hKalevi Kolttonen
   || || |  || `* Re: iso646.hLawrence D'Oliveiro
   || || |  ||  `- Re: iso646.hDavid Brown
   || || |  |`* Re: iso646.hKeith Thompson
   || || |  | `- Re: iso646.hKalevi Kolttonen
   || || |  +- Re: iso646.hLawrence D'Oliveiro
   || || |  `* Re: iso646.hKaz Kylheku
   || || |   `* Re: iso646.hJames Kuyper
   || || |    +* Re: iso646.hDavid Brown
   || || |    |+* Re: iso646.hJanis Papanagnou
   || || |    ||`* Re: iso646.hDavid Brown
   || || |    || `- Re: iso646.hJanis Papanagnou
   || || |    |`* Re: iso646.hbart
   || || |    | `- Re: iso646.hDavid Brown
   || || |    `- Re: iso646.hTim Rentsch
   || || `- Re: iso646.hJanis Papanagnou
   || |`- Unix shell conditionals (was Re: iso646.h)Janis Papanagnou
   || `* Re: iso646.hScott Lurndal
   ||  +* Re: iso646.hKaz Kylheku
   ||  |`* Re: iso646.hbart
   ||  | `- Re: iso646.hKaz Kylheku
   ||  +- Re: iso646.hKeith Thompson
   ||  `* Re: iso646.hJames Kuyper
   ||   `- Re: iso646.hJanis Papanagnou
   |+* Python (Re: iso646.h)Kalevi Kolttonen
   ||+* Re: Python (Re: iso646.h)bart
   ||+* Re: Python (Re: iso646.h)Keith Thompson
   ||+* Re: Python (Re: iso646.h)Lawrence D'Oliveiro
   ||`- Re: Python (Re: iso646.h)Dan Cross
   |+* Re: iso646.hKeith Thompson
   |`* Re: iso646.hMalcolm McLean
   `* Re: iso646.hLawrence D'Oliveiro

Pages:1234567891011121314151617181920212223242526
Re: iso646.h

<GVTrN.46982$U1cc.26176@fx04.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31449&group=comp.lang.c#31449

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!news.niel.me!news.nntp4.net!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx04.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: sco...@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: iso646.h
Newsgroups: comp.lang.c
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me>
Lines: 11
Message-ID: <GVTrN.46982$U1cc.26176@fx04.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Tue, 23 Jan 2024 18:52:22 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Tue, 23 Jan 2024 18:52:22 GMT
X-Received-Bytes: 1120
 by: Scott Lurndal - Tue, 23 Jan 2024 18:52 UTC

bart <bc@freeuk.com> writes:
>On 23/01/2024 16:32, Malcolm McLean wrote:

>
>Every explanation for && and || for every language that copied them from
>C, is that && means AND, and || means OR.

in C, && specifically means 'conditional and'. The programmer can
rely on the fact that the second term will not be evaluated if
the first term evaluates to false.

Re: iso646.h

<uop3ml$1d8ao$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31451&group=comp.lang.c#31451

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: jameskuy...@alumni.caltech.edu (James Kuyper)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 14:23:01 -0500
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <uop3ml$1d8ao$2@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 23 Jan 2024 19:23:01 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="39c41b92fd2798faeea761dd61d5ee98";
logging-data="1483096"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19NqdE822gVoYWWh6G8dMkRmLhqEWmlE6I="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:9QyPBf0RA9+/FaFOA4UFc1OC0YY=
In-Reply-To: <GVTrN.46982$U1cc.26176@fx04.iad>
Content-Language: en-US
 by: James Kuyper - Tue, 23 Jan 2024 19:23 UTC

On 1/23/24 13:52, Scott Lurndal wrote:
> bart <bc@freeuk.com> writes:
>> On 23/01/2024 16:32, Malcolm McLean wrote:
>
>>
>> Every explanation for && and || for every language that copied them from
>> C, is that && means AND, and || means OR.
>
> in C, && specifically means 'conditional and'. The programmer can
> rely on the fact that the second term will not be evaluated if
> the first term evaluates to false.

Actually, C uses the term "Logical AND". I don't have any idea what
"conditional and" is supposed to mean, except that the explanation you
provide matches the term "Logical AND".

Python (Re: iso646.h)

<uop48a$1dmoe$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31452&group=comp.lang.c#31452

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!rocksolid2!news.neodome.net!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kal...@kolttonen.fi (Kalevi Kolttonen)
Newsgroups: comp.lang.c
Subject: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 19:32:26 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 33
Sender: <untosten@0.0.0.0>
Message-ID: <uop48a$1dmoe$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me>
Injection-Date: Tue, 23 Jan 2024 19:32:26 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="28d10614f3f0debe35477cf82de5fa28";
logging-data="1497870"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19tWcxfVVJv1vjxqg63Hs6J8eKyJn0B2YQ="
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.6.11-200.fc39.x86_64 (x86_64))
Cancel-Lock: sha1:bQjCT8j7SnlPeP4T/zoqdusKmeU=
 by: Kalevi Kolttonen - Tue, 23 Jan 2024 19:32 UTC

bart <bc@freeuk.com> wrote:
> Presumably everyone knows what AND and OR mean. So
> why not just use AND and OR?

Maybe back in the early days of C even a one byte
mattered? strlen("AND") is 3 and strlen("&&") is 2.
So they chose "&&" and then "||" was chosen because
of symmetry? Just speculation, of course.

Dennis Ritchie has said that he regretted the
spelling of creat(2) function. Presumably the
abbreviation was supposed to save one byte of
storage.

Anyway, sorry for the off-topic, but Python aims to
be like what you say. It should be like executable
pseudo-code in the sense that your carefully written
code reads almost like plain English. I once wrote
a 300 line Python script without any comments simply
because all the identifiers were long enough and
carefully chosen so that comments were not needed.

But the Python designers botched at least one thing
concerning that philosophy: private functions are not
defined by "private" keyword like in Java but instead
the designers violated their own basic principle of easy
readability: the "privateness" is defined by
by prefixing the function names with an underscore ("_").

I find that decision wrong.

br,
KK

Re: Python (Re: iso646.h)

<uop5rs$1dv1c$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31454&group=comp.lang.c#31454

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!newsfeed.endofthelinebbs.com!news.hispagatos.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (bart)
Newsgroups: comp.lang.c
Subject: Re: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 19:59:56 +0000
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <uop5rs$1dv1c$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <uop48a$1dmoe$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 23 Jan 2024 19:59:56 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8742e5598e1d813c0e920801ede76464";
logging-data="1506348"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX192HuL5flNjq8GPVZFnDY+wdkhX+oTJMHY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:HOzvgG2/IME/9cSzxBbOzJNRQYs=
In-Reply-To: <uop48a$1dmoe$1@dont-email.me>
Content-Language: en-GB
 by: bart - Tue, 23 Jan 2024 19:59 UTC

On 23/01/2024 19:32, Kalevi Kolttonen wrote:
> bart <bc@freeuk.com> wrote:
>> Presumably everyone knows what AND and OR mean. So
>> why not just use AND and OR?
>
> Maybe back in the early days of C even a one byte
> mattered?

Plenty of languages already existed that used 'and', 'or' and 'not'.

My first language did so as well, and was implemented on a smaller
machine than the first C compiler.

If compact code was advantageous, then you have to wonder about the
considerable amount of punctuation in C.

> strlen("AND") is 3 and strlen("&&") is 2.
> So they chose "&&" and then "||" was chosen because
> of symmetry? Just speculation, of course.

Why two & and two |? Was '|' even commonly available on keyboards at the
time? I'm pretty sure 'o' and 'r' were!

Although whether in lower case, I don't know. If not, then just typing
'if' was going to be a problem.

> Dennis Ritchie has said that he regretted the
> spelling of creat(2) function. Presumably the
> abbreviation was supposed to save one byte of
> storage.

Such identifiers would been exposed to external tools such as assemblers
and linkers, which may have had their own limits. Keywords such as 'and'
are internal to the C compiler.

> Anyway, sorry for the off-topic, but Python aims to
> be like what you say. It should be like executable
> pseudo-code

That's a good idea. I've often wondered why, if pseudo-code is so easy
to understand, why it isn't used more for real languages.

Re: Python (Re: iso646.h)

<87h6j3ak2i.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31455&group=comp.lang.c#31455

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 12:09:09 -0800
Organization: None to speak of
Lines: 41
Message-ID: <87h6j3ak2i.fsf@nosuchdomain.example.com>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <uop48a$1dmoe$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="26e4c0dfaad44fa440c0363db91416b9";
logging-data="1510331"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+gHiB14oRmp6wcVx/PWJxy"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:vEA1PxVunmSGGUM7CLrx80PVB9Y=
sha1:rAz3RrdYnk/eHmkFs6XuBqDwjvg=
 by: Keith Thompson - Tue, 23 Jan 2024 20:09 UTC

kalevi@kolttonen.fi (Kalevi Kolttonen) writes:
> bart <bc@freeuk.com> wrote:
>> Presumably everyone knows what AND and OR mean. So
>> why not just use AND and OR?
>
> Maybe back in the early days of C even a one byte
> mattered? strlen("AND") is 3 and strlen("&&") is 2.
> So they chose "&&" and then "||" was chosen because
> of symmetry? Just speculation, of course.
>
> Dennis Ritchie has said that he regretted the
> spelling of creat(2) function. Presumably the
> abbreviation was supposed to save one byte of
> storage.

C's predecessor language B had "&" and "|" operators, bitwise "and" and
"or". It didn't have "&&" or "||". "&" and "|" were used in
expressions like:

if (x > 3 & x < 42)

which was reasonably safe because the "<" and ">" operators always yield
0 or 1.

The logical (not bitwise) and short-circuit "&&" and "||" operators were
added in C and appear in the 1974 C manual. The symbols were a fairly
obvious extension of the existing "& and "|" symbols.

There was probably a fairly strong inclination to use punctation rather
than identifiers for operators. There's no explicit rule to this
effect, but sizeof (and later _Alignof) are the only exceptions to the
pattern.

(Perl did something interesting. It has "&&" and "||" operators like
C's, but it also has "and" and "or" keywords, which have the same
semantics but different precedence.)

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Medtronic
void Void(void) { Void(); } /* The recursive call of the void */

Re: iso646.h

<87cytrajvc.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31456&group=comp.lang.c#31456

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!news.niel.me!news.gegeweb.eu!gegeweb.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 12:13:27 -0800
Organization: None to speak of
Lines: 19
Message-ID: <87cytrajvc.fsf@nosuchdomain.example.com>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="26e4c0dfaad44fa440c0363db91416b9";
logging-data="1510331"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/elDHnzQ2CXg27inUVdEty"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:nVqkyn/OnnCpUU75yIhgFNwb6Po=
sha1:CDBYDbYhY4jj9P98LsWLxB4+GBk=
 by: Keith Thompson - Tue, 23 Jan 2024 20:13 UTC

bart <bc@freeuk.com> writes:
[...]
> But it's OK to justify 'pow' for exponentiation?

"pow" is a library function, not an operator. If C had an exponentation
operator, it would probably have been represented using punctuation
characters, perhaps "**". (Adding a "**" operator now would break some
existing code; `x**y` currently means `x * (*y)`. "^^" might work, but
there doesn't seem to be much demand for an exponentation operator
anyway.)

(Yes, sizeof and _Alignof are operators that use keywords rather than
punctuation symbols. There's no hard rule that operators must be
punctuation, just a general trend.)

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Medtronic
void Void(void) { Void(); } /* The recursive call of the void */

Re: Python (Re: iso646.h)

<uop6tv$1e5f9$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31457&group=comp.lang.c#31457

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kal...@kolttonen.fi (Kalevi Kolttonen)
Newsgroups: comp.lang.c
Subject: Re: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 20:18:07 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 80
Sender: <untosten@0.0.0.0>
Message-ID: <uop6tv$1e5f9$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me> <uop48a$1dmoe$1@dont-email.me> <uop5rs$1dv1c$1@dont-email.me>
Injection-Date: Tue, 23 Jan 2024 20:18:07 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="28d10614f3f0debe35477cf82de5fa28";
logging-data="1512937"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+/sY5Cb1fgrN9i6feajbxCY+O1b3XnfFE="
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.6.11-200.fc39.x86_64 (x86_64))
Cancel-Lock: sha1:ZteECFClfETCy1BGGKGgPyQV4SM=
 by: Kalevi Kolttonen - Tue, 23 Jan 2024 20:18 UTC

bart <bc@freeuk.com> wrote:
> On 23/01/2024 19:32, Kalevi Kolttonen wrote:
>> bart <bc@freeuk.com> wrote:
>>> Presumably everyone knows what AND and OR mean. So
>>> why not just use AND and OR?
>>
>> Maybe back in the early days of C even a one byte
>> mattered?
>
> Plenty of languages already existed that used 'and', 'or' and 'not'.

I actually know that but it could have mattered
to Dennis Ritchie to be as succinct as possible.

In the same spirit as UNIX has "ls" not "list", "cp"
not "copy" and "mv" not "move".

> My first language did so as well, and was implemented on a smaller
> machine than the first C compiler.
>
> If compact code was advantageous, then you have to wonder about the
> considerable amount of punctuation in C.

True.

>> strlen("AND") is 3 and strlen("&&") is 2.
>> So they chose "&&" and then "||" was chosen because
>> of symmetry? Just speculation, of course.
>
> Why two & and two |? Was '|' even commonly available on keyboards at the
> time? I'm pretty sure 'o' and 'r' were!

I really do not know. I never thought of that but
it does seem strange especially if one claims
that they wanted to save storage.

I guess some old formal logic books use
a single "&" for logical AND before the operators
became standardized.

> Although whether in lower case, I don't know. If not,
> then just typing
> 'if' was going to be a problem.
>
>
>> Dennis Ritchie has said that he regretted the
>> spelling of creat(2) function. Presumably the
>> abbreviation was supposed to save one byte of
>> storage.
>
> Such identifiers would been exposed to external tools such as assemblers
> and linkers, which may have had their own limits. Keywords such as 'and'
> are internal to the C compiler.

I don't believe strlen("create") == 6 would have
exceeded any limits. Ritchie's regret seems to
confirm that. It implies that he could have chosen
"create" as well, but for some reason he did not
do so.

>> Anyway, sorry for the off-topic, but Python aims to
>> be like what you say. It should be like executable
>> pseudo-code
>
> That's a good idea. I've often wondered why, if pseudo-code
> is so easy to understand, why it isn't used more for real
> languages.

Yes, Python is a nice language but the last time
I checked, an O'Reilly Learning Python book was something
like 2000 pages long...

ChatGPT did not know the answer, but this time Google
did: Learning Python, 5th edition (2013) is 1643 pages.

I have no problem with large texts, but I just have to
live with a proper subset of Python features.

br,
KK

Re: iso646.h

<uop7p7$1eahb$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31458&group=comp.lang.c#31458

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kal...@kolttonen.fi (Kalevi Kolttonen)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 20:32:39 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 23
Sender: <untosten@0.0.0.0>
Message-ID: <uop7p7$1eahb$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad> <uop3ml$1d8ao$2@dont-email.me>
Injection-Date: Tue, 23 Jan 2024 20:32:39 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="28d10614f3f0debe35477cf82de5fa28";
logging-data="1518123"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/3OSE7IF5VCHAOCbEwzXrPXHB+8SPeuzo="
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.6.11-200.fc39.x86_64 (x86_64))
Cancel-Lock: sha1:DjeZ9cdnwuK3MCmhyw+K54w4agU=
 by: Kalevi Kolttonen - Tue, 23 Jan 2024 20:32 UTC

James Kuyper <jameskuyper@alumni.caltech.edu> wrote:
> Actually, C uses the term "Logical AND". I don't have any idea what
> "conditional and" is supposed to mean, except that the explanation you
> provide matches the term "Logical AND".

The term "conditional and" is probably not so good, but the
meaning of it here refers to the familiar short-circuiting
behaviour of C's "&&". The same behaviour exists in, I
think, all UNIX shells.

If I write this in bash:

rm foo.txt && rm bar.txt

then if the first rm-command fails with a non-zero exit value,
then the second rm-command is not executed at all.

It is similar in C code but the zero evaluation value
there means false, i.e. it is completely opposite of the
UNIX shell.

br,
KK

Re: iso646.h

<XbWrN.302617$xHn7.29225@fx14.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31459&group=comp.lang.c#31459

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!rocksolid2!news.neodome.net!news.mixmin.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx14.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: sco...@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: iso646.h
Newsgroups: comp.lang.c
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad> <uop3ml$1d8ao$2@dont-email.me>
Lines: 23
Message-ID: <XbWrN.302617$xHn7.29225@fx14.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Tue, 23 Jan 2024 21:28:23 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Tue, 23 Jan 2024 21:28:23 GMT
X-Received-Bytes: 1708
 by: Scott Lurndal - Tue, 23 Jan 2024 21:28 UTC

James Kuyper <jameskuyper@alumni.caltech.edu> writes:
>On 1/23/24 13:52, Scott Lurndal wrote:
>> bart <bc@freeuk.com> writes:
>>> On 23/01/2024 16:32, Malcolm McLean wrote:
>>
>>>
>>> Every explanation for && and || for every language that copied them from
>>> C, is that && means AND, and || means OR.
>>
>> in C, && specifically means 'conditional and'. The programmer can
>> rely on the fact that the second term will not be evaluated if
>> the first term evaluates to false.
>
>Actually, C uses the term "Logical AND".

The term 'conditional and' has been in common use for decades.

I never claimed it was the term used in the standard, regardless
of the use of the word 'specifically'.

An issue with the use of the iso646 'and' macro is that the
typical reader, unfamiliar with iso646, might assume a bitwise
and rather than a 'logical' or 'conditional' and.

Re: iso646.h

<20240123131544.17@kylheku.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31460&group=comp.lang.c#31460

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 433-929-...@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 21:30:20 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 63
Message-ID: <20240123131544.17@kylheku.com>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uont40$16rlc$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:30:20 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="89a24c451ef1c6e54f4783ce54b57f43";
logging-data="1536287"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/tMGLiHwahuymrJ5islD/I9CXC5jX4Yis="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:XOdyRvlEswew/kDEyG6eMtIcizE=
 by: Kaz Kylheku - Tue, 23 Jan 2024 21:30 UTC

On 2024-01-23, David Brown <david.brown@hesbynett.no> wrote:
> On 22/01/2024 21:34, Lawrence D'Oliveiro wrote:
>> On Mon, 22 Jan 2024 09:30:21 +0100, David Brown wrote:
>>
>>> ... I don't use the matching names in C++ either ...
>>
>> I do, if/when I do use C++ and C. Don’t you think it improves readability:
>
> No. But I fully appreciate that this is personal preference and habit.

I believe that some of the identifiers improves readability for people
coming from a programming language which uses those English words for
very similar operators rather than && and ||.

In a green field programming language design, it's probably better
to design that way from the start. It's a nice bonus if a language
looks readable to newcomers.

Generations of C coders are used to && and || though; that's the normal
way to write C. Using these aliases is a vanishingly rare practice. An
important aspect of readability is writing code like everyone else. When
a language is newly designed so that there isn't anyone else, that
doesn't have to be considered.

For that reason, these identifiers should not be used, except for
machine-encoding of programs into a 6 bit character set.

Additionally certain names in the iso646.h header are poorly considered,
and obstruct readability. They use the _eq suffix for an operation that
is assignment.

#define and_eq &=

If the purpose of this header were to optimize readability for those
unfamiliar with C, this should be called

#define and_set &=

or similar.

The assignment operator = should not be read "equals", but "becomes" or
"takes the value" or "is assigned" or "is set to". This should be taken
into consideration when coming up with word-like token or token fragment
to represent it.

Also note the following inconsistency:

#define and &&
#define bitand &
#define and_eq &= // what happened to "bit"?

This looks like and_eq should correspond to &&=, since and is &&,
and bitand is &. &= wants to be bitand_eq.

Clearly, the purpose of this header is to allow C to be written with the
ISO 646 character set. The choices of identifiers do not look like
evidence of readability having been highly prioritized.

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca
NOTE: If you use Google Groups, I don't see you, unless you're whitelisted.

Re: iso646.h

<20240123134007.592@kylheku.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31462&group=comp.lang.c#31462

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 433-929-...@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 21:49:23 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <20240123134007.592@kylheku.com>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uoosj4$1aidf$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:49:23 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="89a24c451ef1c6e54f4783ce54b57f43";
logging-data="1536287"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/UX9EBtimCvYxWQU5GSgqIDCiOKR5bGQ8="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:FdJr1uoHIHGRIo5cJfwLwhDYZK4=
 by: Kaz Kylheku - Tue, 23 Jan 2024 21:49 UTC

On 2024-01-23, Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
> On Tue, 23 Jan 2024 16:32:09 +0000, Malcolm McLean wrote:
>
>> On 22/01/2024 20:34, Lawrence D'Oliveiro wrote:
>>> On Mon, 22 Jan 2024 09:30:21 +0100, David Brown wrote:
>>>
>>>> ... I don't use the matching names in C++ either ...
>>>
>>> I do, if/when I do use C++ and C. Don’t you think it improves readability:
>>>
>> It breaks the rule that, in C, variables and functions are alphnumeric,
>> whilst operators are symbols. sizeof is an exception, but a justified
>> one. However it's harder to justify a symbol for "plus" but a word for "or".
>
> Less importantly, it also violates the convention that C macros are named in
> upper case to distinguish them from keywords and "regular" identifiers.

So do true, false, bool, complex, imaginary, errno, assert, fpclassify,
...., and any function supplanted by a macro, such as used to be the case
with getc.

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca
NOTE: If you use Google Groups, I don't see you, unless you're whitelisted.

Re: iso646.h

<uopca9$1f17i$3@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31463&group=comp.lang.c#31463

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 21:50:01 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <uopca9$1f17i$3@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uonjsu$15b7p$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:50:01 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/qBKNpQg71FbZtb4DgBVHR"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:CDBdGWOwkUOTbetD+px2hgz8B74=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 21:50 UTC

On Tue, 23 Jan 2024 06:47:10 +0100, Janis Papanagnou wrote:

> There's also problems with these names. For example '&&' has not the
> semantics of 'and' but of 'and_then', 'or' is actually 'or_else'.

Funnily enough, that is how the languages that offer those words interpret
them. Not just C and C++.

Re: iso646.h

<uopcd0$1f17i$4@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31464&group=comp.lang.c#31464

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 21:51:29 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <uopcd0$1f17i$4@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:51:29 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX180EuSbmqWbNy+d/0H/fD/O"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:Ju0Q1eYo7ZAbLQtcg37TVeRsVpE=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 21:51 UTC

On Tue, 23 Jan 2024 16:32:09 +0000, Malcolm McLean wrote:

> It breaks the rule that, in C, variables and functions are alphnumeric,
> whilst operators are symbols.

Where is there such a “rule”?

> sizeof is an exception, but a justified one.

This is how religious people argue: they use circular reasoning to say
something is justified because it is justified.

Re: iso646.h

<uopcdv$1f17i$5@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31465&group=comp.lang.c#31465

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 21:52:00 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <uopcdv$1f17i$5@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uoosj4$1aidf$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:52:00 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19SzcauQgFp+qHaqddxSYvj"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:TMJS8GpY53Aub65ORa7+eTHDhoA=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 21:52 UTC

On Tue, 23 Jan 2024 17:21:40 -0000 (UTC), Lew Pitcher wrote:

> Less importantly, it also violates the convention that C macros are
> named in upper case to distinguish them from keywords and "regular"
> identifiers.

Why does C allow lowercase in macro names, then?

Re: iso646.h

<uopcfr$1f17i$6@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31466&group=comp.lang.c#31466

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 21:52:59 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <uopcfr$1f17i$6@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad>
<uop3ml$1d8ao$2@dont-email.me> <uop7p7$1eahb$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:52:59 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181iG4lWFdwlwe/qVqXH10z"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:Qtanq3FMujjCGdGtbjU70WMzbt0=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 21:52 UTC

On Tue, 23 Jan 2024 20:32:39 -0000 (UTC), Kalevi Kolttonen wrote:

> If I write this in bash:
>
> rm foo.txt && rm bar.txt

Then the second is only executed if the first one returns zero.

What does C do in this case?

Re: Python (Re: iso646.h)

<uopclb$1f17i$7@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31467&group=comp.lang.c#31467

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!paganini.bofh.team!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 21:55:56 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <uopclb$1f17i$7@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <uop48a$1dmoe$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 21:55:56 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18WBx86hf/3Eq3duzfDWMRQ"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:wgMy9+Xw9f6iOEKub7zGGtQJk1c=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 21:55 UTC

On Tue, 23 Jan 2024 19:32:26 -0000 (UTC), Kalevi Kolttonen wrote:

> Dennis Ritchie has said that he regretted the spelling of creat(2)
> function. Presumably the abbreviation was supposed to save one byte of
> storage.

Given that, in POSIX, all the functions of creat(2) have been subsumed
under open(2) anyway, we can largely ignore that.

There are other worse problems with C. Like its use of “=” (the
mathematical equality operator) for assignment, instead of using the “:=”
symbol that the Algols had adopted.

> But the Python designers botched at least one thing concerning that
> philosophy: private functions are not defined by "private" keyword like
> in Java but instead the designers violated their own basic principle of
> easy readability: the "privateness" is defined by by prefixing the
> function names with an underscore ("_").

That is merely a convention, a hint that the user might want to stay away
from such a symbol, not a hard requirement, which is why it was designed
that way. As Guido van Rossum has said: “We are all consenting adults
here”.

There are things wrong with Python you can complain about. But that isn’t
one of them.

Re: Python (Re: iso646.h)

<uopcts$1f17i$8@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31469&group=comp.lang.c#31469

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 22:00:28 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uopcts$1f17i$8@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <uop48a$1dmoe$1@dont-email.me>
<87h6j3ak2i.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 22:00:28 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+xHRC8JoZAHnOb5QWpQJ5e"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:0OSvxnofGdVf5VB/WI9ZBnD19NI=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 22:00 UTC

On Tue, 23 Jan 2024 12:09:09 -0800, Keith Thompson wrote:

> C's predecessor language B ...

Let me see if I understand the genealogy:

B was an adaptation of Martin Richards’ BCPL. BCPL was a low-level,
typeless language designed for system programming. It originated before
byte-addressable machines became popular. In fact, Richards looked at
adapting BCPL to the PDP-11, and came away unimpressed with the latter’s
architecture.

So B was BCPL adapted by the Bell Labs crew to work on a byte-addressable
machine. But it still didn’t have types. And types turned out to be rather
important to the implementation of a decent OS and accompanying software.
So the Bell Labs came up with the successor language C, which did have
types.

Re: iso646.h

<20240123135735.466@kylheku.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31470&group=comp.lang.c#31470

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!nntp.comgw.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 433-929-...@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 22:00:43 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 31
Message-ID: <20240123135735.466@kylheku.com>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad>
<uop3ml$1d8ao$2@dont-email.me> <XbWrN.302617$xHn7.29225@fx14.iad>
Injection-Date: Tue, 23 Jan 2024 22:00:43 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="89a24c451ef1c6e54f4783ce54b57f43";
logging-data="1536287"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1892ENS//WwVGNxzEPsWD/k4HfOEagWogQ="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:hWhIZQzytBCCf670k1crSGJZJBs=
 by: Kaz Kylheku - Tue, 23 Jan 2024 22:00 UTC

On 2024-01-23, Scott Lurndal <scott@slp53.sl.home> wrote:
> James Kuyper <jameskuyper@alumni.caltech.edu> writes:
>>On 1/23/24 13:52, Scott Lurndal wrote:
>>> bart <bc@freeuk.com> writes:
>>>> On 23/01/2024 16:32, Malcolm McLean wrote:
>>>
>>>>
>>>> Every explanation for && and || for every language that copied them from
>>>> C, is that && means AND, and || means OR.
>>>
>>> in C, && specifically means 'conditional and'. The programmer can
>>> rely on the fact that the second term will not be evaluated if
>>> the first term evaluates to false.
>>
>>Actually, C uses the term "Logical AND".
>
> The term 'conditional and' has been in common use for decades.

Also, a bitwise and is logical!

ANSI Common Lisp uses symbols like logand, logior, logxor, ...
for bitwise operations.

When you implement this stuff with electronic gates it is digital logic
circuits. You can read live values in it with a logic probe.

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca
NOTE: If you use Google Groups, I don't see you, unless you're whitelisted.

Re: iso646.h

<uopcv5$1f17i$9@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31471&group=comp.lang.c#31471

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 22:01:09 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <uopcv5$1f17i$9@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <87cytrajvc.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 22:01:09 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b483129fb1b43c5ca91b5930e33c4fdf";
logging-data="1541362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/O4e8nf2biRspZ7tT2E3du"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:GVnLU3GezjuxJA08FzxzIdY7WoM=
 by: Lawrence D'Oliv - Tue, 23 Jan 2024 22:01 UTC

On Tue, 23 Jan 2024 12:13:27 -0800, Keith Thompson wrote:

> There's no hard rule that operators must be
> punctuation, just a general trend.

And iso646.h demonstrates that that trend is at an end.

Re: iso646.h

<uopd2m$1f6gp$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31472&group=comp.lang.c#31472

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!news.samoylyk.net!hugayda.aid.in.ua!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (bart)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 22:03:02 +0000
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <uopd2m$1f6gp$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uont40$16rlc$1@dont-email.me>
<20240123131544.17@kylheku.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 23 Jan 2024 22:03:02 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8742e5598e1d813c0e920801ede76464";
logging-data="1546777"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/nwbkzgqDXzWmouaakP3C1gVrnFGIF/GE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:SzcT88erKH6sHGBFgL53Fb8Tp5k=
In-Reply-To: <20240123131544.17@kylheku.com>
Content-Language: en-GB
 by: bart - Tue, 23 Jan 2024 22:03 UTC

On 23/01/2024 21:30, Kaz Kylheku wrote:

> Also note the following inconsistency:
>
> #define and &&
> #define bitand &
> #define and_eq &= // what happened to "bit"?
>
> This looks like and_eq should correspond to &&=, since and is &&,
> and bitand is &. &= wants to be bitand_eq.
>
> Clearly, the purpose of this header is to allow C to be written with the
> ISO 646 character set. The choices of identifiers do not look like
> evidence of readability having been highly prioritized.

It shows this is a poor man's way of extending a language's syntax.

It's forgivable in user-code, as there is no other way of doing it. But
those new operator names are supposed to look like they are built-in.

If they were, you'd be able to do this:

a bitand= b;

Actually, I thought the macros could be used like that. But '&=' needs
to be a single token, not two.

Also, why isn't 'a &&= b' valid? It would just mean 'a = a && b'.

Re: iso646.h

<20240123140604.828@kylheku.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31473&group=comp.lang.c#31473

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!news.bbs.nz!newsfeed.xs3.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 433-929-...@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 22:09:35 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <20240123140604.828@kylheku.com>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad>
<uop3ml$1d8ao$2@dont-email.me> <uop7p7$1eahb$1@dont-email.me>
<uopcfr$1f17i$6@dont-email.me>
Injection-Date: Tue, 23 Jan 2024 22:09:35 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="89a24c451ef1c6e54f4783ce54b57f43";
logging-data="1536287"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ljYm2MN1Syqebo575zfKraFFmIPF+PDQ="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:ymCRa7eWniKMLfxbGeRT6YdGQ4Q=
 by: Kaz Kylheku - Tue, 23 Jan 2024 22:09 UTC

On 2024-01-23, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
> On Tue, 23 Jan 2024 20:32:39 -0000 (UTC), Kalevi Kolttonen wrote:
>
>> If I write this in bash:
>>
>> rm foo.txt && rm bar.txt
>
> Then the second is only executed if the first one returns zero.
>
> What does C do in this case?

C also doesn't evaluate the right operand if the left one is
true.

However in C, the following:

a && b || c && d

is parsed like this:

(a && b) || (c && d)

whereas in the shell:

(((a && b) || c) && d)

where I'm using "virtual parentheses". If you actually stick in real
ones, they denote subshell execution in a separate process. (Bash
allows curly braces for command grouping that doesn't create
processes.)

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca
NOTE: If you use Google Groups, I don't see you, unless you're whitelisted.

Re: iso646.h

<uopesm$1ffi1$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31477&group=comp.lang.c#31477

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (bart)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 22:33:58 +0000
Organization: A noiseless patient Spider
Lines: 41
Message-ID: <uopesm$1ffi1$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me>
<uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me>
<uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad>
<uop3ml$1d8ao$2@dont-email.me> <XbWrN.302617$xHn7.29225@fx14.iad>
<20240123135735.466@kylheku.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 23 Jan 2024 22:33:58 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8742e5598e1d813c0e920801ede76464";
logging-data="1556033"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18CUxoMayX8FrKhf45o05ESFOjWgtSNh0M="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:R2idNZkkItyglVOKqWk6WKWwtSo=
In-Reply-To: <20240123135735.466@kylheku.com>
Content-Language: en-GB
 by: bart - Tue, 23 Jan 2024 22:33 UTC

On 23/01/2024 22:00, Kaz Kylheku wrote:
> On 2024-01-23, Scott Lurndal <scott@slp53.sl.home> wrote:
>> James Kuyper <jameskuyper@alumni.caltech.edu> writes:
>>> On 1/23/24 13:52, Scott Lurndal wrote:
>>>> bart <bc@freeuk.com> writes:
>>>>> On 23/01/2024 16:32, Malcolm McLean wrote:
>>>>
>>>>>
>>>>> Every explanation for && and || for every language that copied them from
>>>>> C, is that && means AND, and || means OR.
>>>>
>>>> in C, && specifically means 'conditional and'. The programmer can
>>>> rely on the fact that the second term will not be evaluated if
>>>> the first term evaluates to false.
>>>
>>> Actually, C uses the term "Logical AND".
>>
>> The term 'conditional and' has been in common use for decades.
>
> Also, a bitwise and is logical!

Only on individual bits. The result of A & B can be any value in the
range of A and B's type, not just true and false.

(My tools internally use ANDL/ORL/NOTL for logical versions, and
IAND/IOR/IXOR/INOT for bitwise. I don't use bare AND/OR/NOT. There is
some confusion however with x64 opcodes which use those for bitwise
instructions.)

> ANSI Common Lisp uses symbols like logand, logior, logxor, ...
> for bitwise operations.

Then it is confusing. What does it use for non-bitwise logical operations?

> When you implement this stuff with electronic gates it is digital logic
> circuits. You can read live values in it with a logic probe.

Yes. You put the probe on one signal line to read true or false on that
line.

Re: iso646.h

<uopf3q$1fgi6$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31478&group=comp.lang.c#31478

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!nntp.comgw.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kal...@kolttonen.fi (Kalevi Kolttonen)
Newsgroups: comp.lang.c
Subject: Re: iso646.h
Date: Tue, 23 Jan 2024 22:37:46 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 36
Sender: <untosten@0.0.0.0>
Message-ID: <uopf3q$1fgi6$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me> <GVTrN.46982$U1cc.26176@fx04.iad> <uop3ml$1d8ao$2@dont-email.me> <uop7p7$1eahb$1@dont-email.me> <uopcfr$1f17i$6@dont-email.me> <20240123140604.828@kylheku.com>
Injection-Date: Tue, 23 Jan 2024 22:37:46 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="28d10614f3f0debe35477cf82de5fa28";
logging-data="1557062"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/UlOfhZcBtsYjCAgLJqWK4fr+ukzUxj4Q="
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.6.11-200.fc39.x86_64 (x86_64))
Cancel-Lock: sha1:QNMyORxSc9qJuG/lJdMayNxfS0Y=
 by: Kalevi Kolttonen - Tue, 23 Jan 2024 22:37 UTC

Kaz Kylheku <433-929-6894@kylheku.com> wrote:
> On 2024-01-23, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
>> On Tue, 23 Jan 2024 20:32:39 -0000 (UTC), Kalevi Kolttonen wrote:
>>
>>> If I write this in bash:
>>>
>>> rm foo.txt && rm bar.txt
>>
>> Then the second is only executed if the first one returns zero.
>>
>> What does C do in this case?
>
> C also doesn't evaluate the right operand if the left one is
> true.

We are speaking about logical AND evaluation here.

If the left one is *false*, then the evaluation stops
because the whole conjunction is known to false.

If we are talking about logical OR, then if the left
operand is true, then the evaluation stops because
the disjunction is known to be true.

So this distinction between "conditional and" and
"logical and" boils down to the short-circuiting
left-to-right evaluation order that is guaranteed
by C language standard.

We could conceivably have "logical and" with
out-of-order or right-to-left evaluation. I am
pretty sure that not all computer languages
provide guarantees about the order of evaluation.

br,
KK

Re: iso646.h

<1kXrN.374899$83n7.255752@fx18.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31479&group=comp.lang.c#31479

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx18.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: sco...@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: iso646.h
Newsgroups: comp.lang.c
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me> <87cytrajvc.fsf@nosuchdomain.example.com> <uopcv5$1f17i$9@dont-email.me>
Lines: 12
Message-ID: <1kXrN.374899$83n7.255752@fx18.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Tue, 23 Jan 2024 22:45:17 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Tue, 23 Jan 2024 22:45:17 GMT
X-Received-Bytes: 1150
 by: Scott Lurndal - Tue, 23 Jan 2024 22:45 UTC

Lawrence D'Oliveiro <ldo@nz.invalid> writes:
>On Tue, 23 Jan 2024 12:13:27 -0800, Keith Thompson wrote:
>
>> There's no hard rule that operators must be
>> punctuation, just a general trend.
>
>And iso646.h demonstrates that that trend is at an end.
>

I don't see you you can draw that conclusion. The header
file has been around for over three decades, yet it's not
in common (or even uncommon) use.

Re: Python (Re: iso646.h)

<uopfm2$1fj5r$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31480&group=comp.lang.c#31480

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!newsfeed.endofthelinebbs.com!news.hispagatos.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kal...@kolttonen.fi (Kalevi Kolttonen)
Newsgroups: comp.lang.c
Subject: Re: Python (Re: iso646.h)
Date: Tue, 23 Jan 2024 22:47:30 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 40
Sender: <untosten@0.0.0.0>
Message-ID: <uopfm2$1fj5r$1@dont-email.me>
References: <uokhnk$eiln$1@dont-email.me> <uol92t$l82b$3@dont-email.me> <uomjfr$sopf$1@dont-email.me> <uoopm9$1blvh$1@dont-email.me> <uop0r1$1d4d4$1@dont-email.me> <uop48a$1dmoe$1@dont-email.me> <uopclb$1f17i$7@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 23 Jan 2024 22:47:30 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="28d10614f3f0debe35477cf82de5fa28";
logging-data="1559739"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+sMP/Xf9edHOTRoKlTqT8Oz9ZQFLy7IUs="
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.6.11-200.fc39.x86_64 (x86_64))
Cancel-Lock: sha1:3teLWt41SVKHXsOdLHixblJJP5g=
 by: Kalevi Kolttonen - Tue, 23 Jan 2024 22:47 UTC

Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
> On Tue, 23 Jan 2024 19:32:26 -0000 (UTC), Kalevi Kolttonen wrote:
>
>> Dennis Ritchie has said that he regretted the spelling of creat(2)
>> function. Presumably the abbreviation was supposed to save one byte of
>> storage.
>
> Given that, in POSIX, all the functions of creat(2) have been subsumed
> under open(2) anyway, we can largely ignore that.

I know. creat() is now completely redundant because
open() suffices. The reason I brought it up was just
so that people would realize that at least sometimes
it was a matter of saving storage space - even one
byte.

> There are other worse problems with C. Like its use of “=” (the
> mathematical equality operator) for assignment, instead of using the “:=”
> symbol that the Algols had adopted.

Well I started with Microsoft BASIC on Commodore 64 39 years ago.
So I am well used to "=" and do not consider it a problem.

>> But the Python designers botched at least one thing concerning that
>> philosophy: private functions are not defined by "private" keyword like
>> in Java but instead the designers violated their own basic principle of
>> easy readability: the "privateness" is defined by by prefixing the
>> function names with an underscore ("_").
>
> That is merely a convention, a hint that the user might want to stay away
> from such a symbol, not a hard requirement, which is why it was designed
> that way. As Guido van Rossum has said: “We are all consenting adults
> here”.

What?! Are you saying that there is no way to label functions as private
in Python? That sounds absolutely horrible. Why would anyone design a
language with object-oriented features without support for encapsulation?

br,
KK


devel / comp.lang.c / Re: iso646.h

Pages:1234567891011121314151617181920212223242526
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor