Subject: Re: bug#73853: 31.0.50; Should and-let* become a synonym for when-let*?

From: Stefan Kangas <[email-masked]>
Date: Wed, 30 Oct 2024 18:10:44 -0500

Jonas Bernoulli <[email-masked]> writes:

> It is very disappointing that you have chosen to deprecate if-let and
> when-let in such a rushed manner.  The same was done and reverted in
> 2018, and many of the same actors are involved this time around.
> I am surprised that you would make the same unforced error again.
>
> Reading through this and past conversations it is clear that there is no
> consensus what the ultimate goal is.  But as far as I can tell, few, if
> any, are fully satisfied with the current (30.0.*) situation.  There
> also seems to be agreement that unfortunate mistakes were made in the
> past, which limits our options now.

The goal is:

- To not have two macros doing the same thing, i.e. the pairs
  `when-let`/`when-let*` and `if-let`/`if-let*`.
- To deprecate the single binding version of `when-let`.

> This could have been prevented if more people (including non-debbugs and
> non-emacs-devel regulars) were given a chance to think about the problem
> and time to articulate their concerns and proposals, before facts were
> created.  Or even if the people who did take part in past conversations
> had spend more time actually talking things through.

I can agree that the timeline might have been on the shorter end here.

That said, I wasn't aware of any large controversy surrounding this.
If I was, I might have suggested that we give this more time.

> The same could have been done every time the dissatisfying state of the
> foo-let forms was brought up again, but instead new facts were rushed at
> every turn.
>
> Without stopping this destructive pattern, you won't be able to fix this
> mess.

I don't know what this is in reference to, sorry.  I feel like I'm
missing some background.  Could you perhaps help fill me in?

I searched the archives, but failed to find anything relevant.

> My short-term proposal is this:

Hmm, the points you raise are interesting but procedural in character.
Besides your concern that people might be unhappy with the decision,
a point that is fully taken, perhaps it would help if we could focus
on technical points instead.

Your proposal seems to be that we should rethink the decision to mark
`when-let`/`if-let` as obsolete.  Is that correct?

If yes, perhaps you could explain this in more detail?  What problem do
you see with marking them as obsolete?

Do you have a suggestion for what we should do instead?