Subject: bug#61962: 30.0.50; New trouble with symbols with positions

From: Mattias Engdegård <[email-masked]>
Date: Tue, 14 Mar 2023 13:31:32 +0100

12 mars 2023 kl. 21.42 skrev Alan Mackenzie <[email-masked]>:

> I'm not at all happy with the changes you've made.

Don't worry, Alan, we're writing software, not carving granite. Anything can be changed, and I'm not out to get you!
There seems to be some misunderstanding on both sides so let's clear that up.

It was far from obvious that your making `safe-copy-tree` a user-visible utility arose from a particular need rather than just being easy to do -- it wouldn't be the first time.

If you really have a good reason to add safe-copy-tree then I'm certainly not against it, but you haven't made much of a case for it. It seems to have made its way in on the slip-stream of a bug fix. I found no justification for it, so please forgive me for assuming there wasn't any.

The status quo is something everybody can agree is an improvement: a bug has been fixed and that's it. Now if you want Emacs to come with a standard circular tree copy function then it needs to go in on its own merits: please argue why and how. Concrete examples would be useful.

If added, your `safe-copy-tree` (wouldn't `copy-graph` be a more accurate name?) should not be forced to share the implementation of what is now `bytecomp--copy-tree`; that would just introduce unnecessary compromises for either use.

> would you please identify exactly what the bugs were.

I only know that some of my (probably insufficient) tests failed for the old implementation, for example ((a . #1=(b)) #1#) -- I didn't dig deeper.