unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: ams@gnu.org, rms@gnu.org, emacs-devel@gnu.org
Subject: Re: Creating a git branch for cond*
Date: Thu, 25 Jan 2024 17:57:05 +0000	[thread overview]
Message-ID: <ZbKg8dOVz_Nm86Tu@ACM> (raw)
In-Reply-To: <86zfwtbbdm.fsf@gnu.org>

Hello, Eli.

On Thu, Jan 25, 2024 at 18:56:05 +0200, Eli Zaretskii wrote:
> > Date: Thu, 25 Jan 2024 16:37:44 +0000
> > Cc: rms@gnu.org, eliz@gnu.org, emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>

> > > I hope it goes to master directly, it is a single file that doesn't
> > > affect anything else.  And _if_ existing code is updated to use cond*
> > > that will get much more milage.

> > It does affect other things, in particular, other .el files which are
> > adapted to use cond*.

> Please don't make any changes except installing cond* and fixing it.
> There's no decision yet to start converting any code to use it, nor do
> I envision such a decision any time soon.

> > If that happens on master, then both cond* and
> > the conversion need to be perfect before the file can be committed.

> Once again: we are not converting anything, at least not yet.  We are
> only discussing how best to handle installation of cond*.

> > What I want to do early on in cond* development is convert
> > lisp/emacs-lisp/macroexp.el from pcase to cond*.

> I don't agree with such a change, so please don't do anything like
> that.

You know me.  I wouldn't make any such changes without asking first,
anyway.  But for people asking _why_ we're introducing cond*, that it
opens up such possibilities is a good answer.

> > Currently, pcase.el is dependent upon macroexp.el and macroexp.el is
> > dependent upon pcase.el.  This leads to an unlovely artifice in the
> > bootstrapping file, loadup.el, and this has caused me grief in
> > another branch I'm working on.

> We are not going to make any such changes just because we can, or just
> because you have problems on some branch you'd like to avoid fixing.

The point I was making is that our bootstrap procedure in loadup.el
verges on unmaintainability.  What should be a simple linear list of
..el(c) files being loaded one after the other has turned into a
difficult tree where some files are loaded from loadup, some are loaded
with (require 'foo) inside eval-when-compile, and some may be straight
requires, I can't remember exactly.  Some loaded files get unloaded
again.  (pcase.el is an example.)  macroexp.el is loaded twice (or
four times, if you count the second loadup separately).

All this has hindered me on that other branch (for bug #67455, about
getting position information into doc strings that we discussed
extensively back in November).  It is likely to hinder others, too.

My point was that cond*, once it's established, will give us the
mechanism to sort at least some of this out.

> cond* is a new construct, and once it is in Emacs, and documented as
> it should be, we should collect experience with using it before we
> even think about converting existing code.

> Please don't forget that Emacs is a stable program: we don't make
> changes just because we can.  Changes to code that was with us for
> years are only justified if we have a very good reason.

Understood.

> > No doubt Eli will have something to say about this idea.  ;-)

> He does, see above.  You don't have my okay for making any changes
> except installing cond* and fixing it and its documentation.

> Btw, we should also have tests for it.

Indeed.  They will be needed to get the code working properly anyway.

> > There are advantages to the branch, as well as advantages to having it
> > on master.

> Yes.  But, as you say, let's hear what Richard thinks about this.

Yes.

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2024-01-25 17:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-25 15:48 Creating a git branch for cond* Alan Mackenzie
2024-01-25 15:53 ` Eli Zaretskii
2024-01-25 16:08   ` Alan Mackenzie
2024-01-25 16:14     ` Eli Zaretskii
2024-01-29  3:19   ` Richard Stallman
2024-01-29  3:36     ` Eli Zaretskii
2024-01-29  3:51       ` Jim Porter
2024-02-02  3:40       ` Richard Stallman
2024-02-02  7:17         ` Eli Zaretskii
2024-01-25 16:16 ` Alfred M. Szmidt
2024-01-25 16:37   ` Alan Mackenzie
2024-01-25 16:49     ` Alfred M. Szmidt
2024-01-25 16:56     ` Eli Zaretskii
2024-01-25 17:57       ` Alan Mackenzie [this message]
2024-01-25 19:47     ` Stefan Kangas
2024-01-25 20:08       ` Alan Mackenzie

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=ZbKg8dOVz_Nm86Tu@ACM \
    --to=acm@muc.de \
    --cc=ams@gnu.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).