emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master b72f885: Make dlet work like let, not let*


From: Eli Zaretskii
Subject: Re: master b72f885: Make dlet work like let, not let*
Date: Tue, 03 Aug 2021 18:58:48 +0300

> From: Mattias Engdegård <mattiase@acm.org>
> Date: Tue, 3 Aug 2021 17:21:14 +0200
> Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
> 
> 3 aug. 2021 kl. 15.33 skrev Eli Zaretskii <eliz@gnu.org>:
> 
> > People out there use Emacs 28 for a long time, so of course there is a
> > compatibility problem, albeit a smaller one than if we have already
> > had released Emacs with dlet.
> 
> Of course, but that's not really a compatibility promise but merely being 
> nice, which we of course try to be but I'm quite sure that our esteemed Emacs 
> 28 users understand that we didn't give them an iron-clad guarantee.

It isn't iron-clad, but we should try to keep that promise unless
there are very good reasons to break it.  Which is why I asked about
the reasons for the change.

> The change itself is also low-risk

Risk of bugs is not relevant.  Risk of breaking someone's code cannot
be estimated at all.  And again, we just should try not to make such
changes after so many moods without a good reason, no matter what are
the other downsides.

> However you do raise a good point. For incompatible changes in official 
> releases we have etc/NEWS, but nothing really like it for things that we just 
> broke on master. Perhaps it would be useful to have a document tracking these 
> things so that everyone doesn't have to read every git diff to understand 
> what is going on? `etc/NEWS.development`, say?

Sounds like a maintenance burden with very little gains.

> > Could you please tell what were the reasons that led you to make this
> > change?  Because I don't really understand the motivation.  Is it just
> > the name that lacks the '*' part, or is it something else?
> 
> Well sort of: if someones finds out about a construct named `dlet`, it's just 
> natural to assume that it binds like `let`, not like `let*`. (Supporting 
> evidence: two local macros on the pattern `something-dlet*` were in use. One 
> of the has now been renamed.)

If it's just the name, how about adding the "good" name and making the "bad"
name an obsolete alias?  That would at least avoid breaking any code
out there that could be using it.

Stefan, any comments?  Why did you name it "dlet" without the '*'?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]