Subject: bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function

From: Alan Mackenzie <[email-masked]>
Date: Fri, 4 Aug 2023 11:11:46 +0000

Hello, Mattias.

On Fri, Aug 04, 2023 at 12:14:14 +0200, Mattias Engdegård wrote:
> 3 aug. 2023 kl. 23.46 skrev Stefan Monnier <[email-masked]>:

> > I'd even like it to try and replace uses of `eq/eql` with `equal` in
> > those cases where we want to overlook differences in
> > symbol-positions, so that we can eventually get rid of
> > `symbols-with-pos-enabled` which I consider as a wart.

> I agree it would be wonderful if we could restore `eq` to its former
> simplicity and speed but is that easily achievable at this point? For
> example, what about macros that compare arguments with `eq`?

> Separate data structures for locations might be an option worth
> exploring, keeping the actual s-expressions unadorned. Consider a
> reader mode that also produces a table mapping cons cells read to their
> locations, for example.

Using a hash table, or something similar?  This is all very well, but the
garbage collecter, for every collected object, would have to check
whether that object is in that table, and if so remove it.  This would
slow down garbage collection, possibly by a lot.  The slow down would be
less if there were a variable saying whether or not this table is active.
Something very like symbols-with-pos-enabled.  ;-)

[ .... ]

-- 
Alan Mackenzie (Nuremberg, Germany).