all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Po Lu <luangruo@yahoo.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Gregory Heytings <gregory@heytings.org>,
	 stefankangas@gmail.com, emacs-devel@gnu.org
Subject: Re: master 37889523278: Add new `swap` macro and use it
Date: Mon, 15 Jan 2024 21:56:58 +0800	[thread overview]
Message-ID: <87v87uya1h.fsf@yahoo.com> (raw)
In-Reply-To: <83bk9mepkt.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 15 Jan 2024 14:41:38 +0200")

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Mon, 15 Jan 2024 01:32:38 +0000
>> From: Gregory Heytings <gregory@heytings.org>
>> cc: Po Lu <luangruo@yahoo.com>, stefankangas@gmail.com, emacs-devel@gnu.org
>> 
>> 
>> >> Further proving my point, neither variant of typeof compiles with Sun C 
>> >> 5.8, a C99 compiler that does presently produce working Emacs builds.
>> >
>> > Which system configuration uses this compiler?  When was that compiler 
>> > released?  Are there newer versions of that compiler that do support one 
>> > of these keywords?
>> >
>> 
>> Sun C 5.8 is part of Sun Studio 11, which was released in 2005.  Sun 
>> Studio 11 is an (optional) extension package for Solaris 10 / SunOS 
>> 5.10... on which GCC (3.4.3) is installed by default.
>> 
>> Sun C 5.9, part of Sun Studio 12 (which is likewise an optional extension 
>> package for that same operating system), released in 2007, supports the 
>> typeof operator.
>
> Thanks.  Given this information, I don't see why we should be bothered
> with the deficiencies of Sun C 5.8.

For the same reason we bother with the deficiencies of GCC 3.4.3 and
other C compilers and OSes.  It is not enough that Emacs work on some
combination of supported system and compiler, it must work on _all_
combinations of C compiler and supported system, provided that the C
compiler is reasonable, for which we have a definition provided by the
C99 Standard.

No doubt Emacs has failed to fulfill this strict (albeit not extreme)
measure of portability on occasion, but such instances are far and few
between, and their causes we promptly fix after being apprised of them.
Between that and the fact that we have never willfully undermined the
quality of our code in this respect, Emacs has thus far held up to its
side of the bargain remarkably well.  My point being that a `swap'
macro, which is also generally discountenanced by C programmers, is not
sufficiently compelling a reason to depart from doing so.

This practice of ours is so well established as to justify a mention in
the GNU Coding Standards identifying Emacs by name.  (standards)Using
Extensions:

  An exception to this rule are the large, established programs (such as
  Emacs) which run on a great variety of systems.  Using GNU extensions
  in such programs would make many users unhappy, so we don't do that.

Before you is one user who would be unhappy in such an event!

FWIW:

Sun Studio 5.8 and 5.12 were once standard on systems at my workplace,
but we have since moved to a different C compiler that has rendered both
and GCC redundant, and does not implement "__typeof__" in its default
mode of operation, despite being usually configured for compatibility
with Sun C.  I will try to establish if its defaults are capable of
compiling Emacs tomorrow.



  reply	other threads:[~2024-01-15 13:56 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <170452579053.27998.16123231327386305897@vcs2.savannah.gnu.org>
     [not found] ` <20240106072311.28B8FC0034E@vcs2.savannah.gnu.org>
2024-01-06  7:39   ` master 37889523278: Add new `swap` macro and use it Po Lu
2024-01-06  8:44     ` Eli Zaretskii
2024-01-06  8:45       ` Po Lu
2024-01-06  9:18         ` Stefan Kangas
2024-01-06 10:33           ` Po Lu
2024-01-06 11:30             ` Stefan Kangas
2024-01-06 13:13               ` Po Lu
2024-01-06 13:59                 ` Eli Zaretskii
2024-01-06 14:41                   ` Po Lu
2024-01-06 15:34                     ` Eli Zaretskii
2024-01-07  1:39                       ` Po Lu
2024-01-07  6:34                         ` Stefan Kangas
2024-01-07  7:50                           ` Po Lu
2024-01-07  8:33                             ` Eli Zaretskii
2024-01-07  9:45                             ` Stefan Kangas
2024-01-07 10:36                               ` Po Lu
2024-01-07 11:34                                 ` Eli Zaretskii
2024-01-07 11:53                                   ` Po Lu
2024-01-07 14:37                                     ` Eli Zaretskii
2024-01-07 17:32                                 ` Stefan Kangas
2024-01-08  2:15                                   ` Po Lu
2024-01-07  7:09                         ` Eli Zaretskii
2024-01-12  0:50                   ` Gregory Heytings
2024-01-13 10:16                     ` Stefan Kangas
2024-01-14  3:03                     ` Richard Stallman
2024-01-14  5:14                     ` Po Lu
2024-01-14  7:07                       ` Eli Zaretskii
2024-01-14  8:05                         ` Po Lu
2024-01-14  9:31                           ` Eli Zaretskii
2024-01-15  1:32                             ` Gregory Heytings
2024-01-15 12:41                               ` Eli Zaretskii
2024-01-15 13:56                                 ` Po Lu [this message]
2024-01-15 14:13                                   ` Eli Zaretskii
2024-01-18  1:01                                 ` Gregory Heytings
2024-01-18  2:11                                   ` Po Lu
2024-01-27  1:26                                     ` Gregory Heytings
2024-01-27  2:58                                       ` Po Lu
2024-01-27 23:44                                         ` Stefan Kangas
2024-01-28  1:51                                           ` Po Lu
2024-01-28  2:35                                             ` Stefan Kangas
2024-01-28  4:17                                               ` Po Lu
2024-01-28  6:28                                             ` Eli Zaretskii
2024-01-28  2:22                                         ` Gregory Heytings
2024-01-28  4:03                                           ` Po Lu
2024-01-30  2:00                                             ` Gregory Heytings
2024-01-30  2:41                                               ` Po Lu
2024-01-28  6:40                                           ` Eli Zaretskii
2024-01-30  1:59                                             ` Gregory Heytings
2024-01-30 12:41                                               ` Eli Zaretskii
2024-01-18  6:22                                   ` Eli Zaretskii
2024-01-27  1:25                                     ` Gregory Heytings
2024-01-27  3:08                                       ` Po Lu
2024-01-27  7:19                                       ` Eli Zaretskii
2024-01-17  3:29                           ` Richard Stallman
2024-01-17 10:16                       ` Stefan Kangas
2024-01-17 11:15                         ` Po Lu
2024-01-17 21:15                           ` Stefan Kangas
2024-01-18  0:39                             ` Po Lu
2024-01-18 19:17                               ` Stefan Kangas
2024-01-19  1:10                                 ` Po Lu
2024-01-20 20:31                                   ` Stefan Kangas
2024-01-22  3:35                                     ` Richard Stallman
2024-01-22  4:48                                       ` Po Lu
2024-01-22 18:21                                         ` Dmitry Gutov
2024-01-23  0:50                                           ` Po Lu
2024-01-25 23:38                                           ` Stefan Kangas
2024-01-26  2:02                                             ` Po Lu
2024-01-26  7:53                                               ` Eli Zaretskii
2024-01-26  7:38                                             ` Eli Zaretskii
2024-01-19  3:32                               ` Richard Stallman
2024-01-19  4:12                                 ` Po Lu
2024-01-27  1:27                               ` Gregory Heytings
2024-01-27 23:56                                 ` Stefan Kangas
2024-01-28  2:23                                   ` Gregory Heytings
2024-01-13  8:02       ` Stefan Kangas
2024-01-13  9:14         ` Eli Zaretskii
2024-01-13  9:50           ` Mattias Engdegård
2024-01-06  8:50     ` Stefan Kangas
2024-01-06  9:09       ` Po Lu
2024-01-06  9:52       ` Andreas Schwab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v87uya1h.fsf@yahoo.com \
    --to=luangruo@yahoo.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=gregory@heytings.org \
    --cc=stefankangas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.