Re: Word For Today: “Uglification”

Liste des GroupesRevenir à cl c 
Sujet : Re: Word For Today: “Uglification”
De : jameskuyper (at) *nospam* alumni.caltech.edu (James Kuyper)
Groupes : comp.lang.c
Date : 12. Mar 2024, 07:33:00
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <usopec$4eob$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
On 3/11/24 20:14, Lawrence D'Oliveiro wrote:
From /usr/include/«arch»/bits/select.h on my Debian system:
 
    #define __FD_ZERO(s) \
      do {       \
        unsigned int __i;       \
        fd_set *__arr = (s);       \
        for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)       \
          __FDS_BITS (__arr)[__i] = 0;       \
      } while (0)
 
Note how this macro brings the entire expression for “s” into the
scope containing those temporary “__i” and “__arr” variables. You just
better hope they won’t clash.
 
I think there is a clause in the C spec that says names beginning with
underscores (“uglified” names, I think they’re called) are reserved
for library implementors or something. But what happens if one library
implementation depends on another? What keeps the choices of names
from clashing in that situation? Just luck, I guess.

They are called "reserved identifiers", a name which more directly
addresses their purpose. They don't just start with underscores - there
are several different sets of identifiers, reserved for different
purposes. See section 7.1.3 for details. They are provided by *an*
implementation. Note the use of the singular. As far as the standard is
concerned, there is only one implementation that is responsible for
translating and executing a given program. What the implementation
implements is not just the C standard library, but also the C language.
Libraries other than the C standard library do have implementations, but
those implementations are not what the C standard is usually talking
about when it uses that word.

The standard defines an implementation as "particular set of software,
running in a particular translation environment under particular control
options, that performs translation of programs for, and supports
execution of functions in, a particular execution environment" (3.12).

Note that the software must be running before it can be called an
implementation. A program that is just sitting on your computer waiting
to be executed cannot qualify. Also, if the software has options,
choosing different options when you start it up can make it a different
implementation of C.

You can have an implementation of C where different parts are
implemented by different implementors - in fact, it's quite common for
the language, the C standard library, and the linker to be implemented
by different organizations. However, the combination of those parts only
qualifies as a conforming implementation of C if those different parts
work together as required by the standard. Avoiding the conflicts you're
talking about is a pre-requisite for doing so.

Most implementors that implement only part of a C implementation make
sure to test whether their part works together with popular
implementations of the other parts, and to document which ones they do
work with. If you cobble together a complete implementation from parts
implemented by different implementors, you'd better check their
documentation to see if at least one of them has tested compatibility
with all of the others. If none of them has done such testing, you
shouldn't count on them working together as a conforming C implementation.

Date Sujet#  Auteur
12 Mar 24 * Word For Today: “Uglification”63Lawrence D'Oliveiro
12 Mar 24 +* Re: Word For Today: “Uglification”3Keith Thompson
12 Mar 24 i`* Re: Word For Today: “Uglification”2Lawrence D'Oliveiro
12 Mar 24 i `- Re: Word For Today: “Uglification”1Keith Thompson
12 Mar 24 +* Re: Word For Today: “Uglification”11Kaz Kylheku
14 Mar 24 i`* Re: Word For Today: “Uglification”10Tim Rentsch
14 Mar 24 i `* Re: Word For Today: “Uglification”9Keith Thompson
15 Mar 24 i  +* Re: Word For Today: “Uglification”2Keith Thompson
15 Mar 24 i  i`- Re: Word For Today: “Uglification”1David Brown
15 Mar 24 i  +* Re: Word For Today: “Uglification”5Keith Thompson
15 Mar 24 i  i`* Re: Word For Today: “Uglification”4Keith Thompson
15 Mar 24 i  i `* Re: Word For Today: “Uglification”3Kaz Kylheku
15 Mar 24 i  i  `* Re: Word For Today: “Uglification”2Keith Thompson
15 Mar 24 i  i   `- Re: Word For Today: “Uglification”1David Brown
15 Mar 24 i  `- Re: Word For Today: “Uglification”1Tim Rentsch
12 Mar 24 +* Re: Word For Today: “Uglification”47James Kuyper
12 Mar 24 i`* Re: Word For Today: “Uglification”46Lawrence D'Oliveiro
12 Mar 24 i +- Re: Word For Today: “Uglification”1Lawrence D'Oliveiro
12 Mar 24 i +* Re: Word For Today: “Uglification”37Kaz Kylheku
12 Mar 24 i i`* Re: Word For Today: “Uglification”36Richard Kettlewell
12 Mar 24 i i +* Re: Word For Today: “Uglification”22David Brown
12 Mar 24 i i i+* Re: Word For Today: “Uglification”20Anton Shepelev
12 Mar 24 i i ii`* Re: Word For Today: “Uglification”19bart
12 Mar 24 i i ii +* Re: Word For Today: “Uglification”17Anton Shepelev
12 Mar 24 i i ii i`* Re: Word For Today: “Uglification”16bart
12 Mar 24 i i ii i `* Re: Word For Today: “Uglification”15Kaz Kylheku
13 Mar 24 i i ii i  `* Re: Word For Today: “Uglification”14bart
13 Mar 24 i i ii i   +* Re: Word For Today: “Uglification”12Keith Thompson
13 Mar 24 i i ii i   i+* Re: Word For Today: “Uglification”10bart
13 Mar 24 i i ii i   ii+* Re: Word For Today: “Uglification”7Michael S
13 Mar 24 i i ii i   iii+* Re: Word For Today: “Uglification”4Keith Thompson
13 Mar 24 i i ii i   iiii`* Re: Word For Today: “Uglification”3David Brown
13 Mar 24 i i ii i   iiii `* Re: Word For Today: “Uglification”2Keith Thompson
13 Mar 24 i i ii i   iiii  `- Re: Word For Today: “Uglification”1David Brown
13 Mar 24 i i ii i   iii+- Re: Word For Today: “Uglification”1David Brown
13 Mar 24 i i ii i   iii`- Re: Word For Today: “Uglification”1Kaz Kylheku
13 Mar 24 i i ii i   ii`* Re: Word For Today: “Uglification”2Keith Thompson
13 Mar 24 i i ii i   ii `- Re: Word For Today: “Uglification”1bart
13 Mar 24 i i ii i   i`- Re: Word For Today: “Uglification”1Nick Bowler
13 Mar 24 i i ii i   `- Re: Word For Today: “Uglification”1Kaz Kylheku
12 Mar 24 i i ii `- Re: Word For Today: “Uglification”1Kaz Kylheku
13 Mar 24 i i i`- Re: Word For Today: “Uglification”1Blue-Maned_Hawk
13 Mar 24 i i `* Re: Word For Today: “Uglification”13Lawrence D'Oliveiro
13 Mar 24 i i  +* Re: Word For Today: “Uglification”11Keith Thompson
13 Mar 24 i i  i`* Re: Word For Today: “Uglification”10Richard Kettlewell
13 Mar 24 i i  i `* Re: Word For Today: “Uglification”9Keith Thompson
13 Mar 24 i i  i  +* Re: Word For Today: “Uglification”7Lawrence D'Oliveiro
14 Mar 24 i i  i  i+- Re: Word For Today: “Uglification”1Kaz Kylheku
14 Mar 24 i i  i  i+- Re: Word For Today: “Uglification”1Keith Thompson
14 Mar 24 i i  i  i`* Re: Word For Today: “Uglification”4Lawrence D'Oliveiro
14 Mar 24 i i  i  i `* Re: Word For Today: “Uglification”3Keith Thompson
14 Mar 24 i i  i  i  +- Re: Word For Today: “Uglification”1Richard Kettlewell
14 Mar 24 i i  i  i  `- Re: Word For Today: “Uglification”1Kaz Kylheku
19 Jun 24 i i  i  `- Re: Word For Today: “Uglification”1Tim Rentsch
13 Mar 24 i i  `- Re: Word For Today: “Uglification”1Kaz Kylheku
12 Mar 24 i `* Re: Word For Today: “Uglification”7James Kuyper
12 Mar 24 i  `* Re: Word For Today: “Uglification”6Lawrence D'Oliveiro
13 Mar 24 i   +- Re: Word For Today: “Uglification”1Keith Thompson
13 Mar 24 i   `* Re: Word For Today: “Uglification”4James Kuyper
13 Mar 24 i    `* Re: Word For Today: “Uglification”3Lawrence D'Oliveiro
14 Mar 24 i     +- Re: Word For Today: “Uglification”1Kaz Kylheku
14 Mar 24 i     `- Re: Word For Today: “Uglification”1James Kuyper
12 Mar 24 `- Re: Word For Today: “Uglification”1Kaz Kylheku

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal