From: Eli Zaretskii <eliz@gnu.org>
To: Alan Mackenzie <acm@muc.de>
Cc: 65051@debbugs.gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>
Subject: bug#65051: internal_equal manipulates symbols with position without checking symbols-with-pos-enabled.
Date: Sat, 05 Aug 2023 13:57:50 +0300 [thread overview]
Message-ID: <83r0ohsqmp.fsf@gnu.org> (raw)
In-Reply-To: <ZM4oUTBjVXM3-NC6@ACM> (message from Alan Mackenzie on Sat, 5 Aug 2023 10:45:37 +0000)
> Date: Sat, 5 Aug 2023 10:45:37 +0000
> Cc: 65051@debbugs.gnu.org, acm@muc.de
> From: Alan Mackenzie <acm@muc.de>
>
> > > With symbols-with-pos-enabled nil, #<symbol foo at 42> is not EQ to
> > > #<symbol foo at 666>. Neither are these two objects `equal'. This is
> > > because the special, time consuming processing which makes them EQ or
> > > `equal' is enabled by that variable being bound to non-nil.
>
> > But I thought that with symbols-with-pos-enabled OFF, we just ignore
> > the positions? Truth is, neither the ELisp manual nor the doc string
> > tell us what happens when this variable is nil, they only tell what
> > happens when it's non-nil. So how about documenting that somewhere?
>
> OK, please see the patch below.
Thanks.
> > > By "base symbol" I mean 'foo in #<symbol foo at 42>. By "identical" I
> > > meant that the two Lisp_Objects would have the same hex value (i.e. be
> > > EQ without symbols-with-pos-enabled), as contrasted to two distinct
> > > Lisp_Objects with the same base symbol, and the same position, i.e.
> > > should be `equal'.
>
> > So we can have two different copies of #<symbol foo at 42>, such that
> > their hex values are different? Isn't that a bug? why don't we
> > conflate such identical symbols?
>
> No, it's not a bug, anymore than having two `equal' copies of '(a b c)
> would be a bug.
But with symbols we store them in obarray, and obarray ought to find
the existing slot for #<symbol foo at 42> and reuse it, rather than
create a new slot?
> Anyway, I've added code (in that patch below) to check two SWPs properly
> in the event of symbols-with-pos-enabled being nil.
>
> As already discussed, this is intended for master, not the release
> branch.
Thanks. I added Stefan to the discussion, since I'd like another pair
of eyes (with more knowledge about this than mine) to eyeball the
changes before we install them.
next prev parent reply other threads:[~2023-08-05 10:57 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-04 14:00 bug#65051: internal_equal manipulates symbols with position without checking symbols-with-pos-enabled Alan Mackenzie
2023-08-04 14:32 ` Eli Zaretskii
2023-08-04 14:59 ` Alan Mackenzie
2023-08-04 15:27 ` Eli Zaretskii
2023-08-04 17:06 ` Alan Mackenzie
2023-08-04 18:01 ` Eli Zaretskii
2023-08-05 10:45 ` Alan Mackenzie
2023-08-05 10:57 ` Eli Zaretskii [this message]
2023-08-05 11:52 ` Alan Mackenzie
2023-08-05 12:13 ` Eli Zaretskii
2023-08-05 13:04 ` Alan Mackenzie
2023-08-05 13:13 ` Eli Zaretskii
2023-08-13 16:14 ` Alan Mackenzie
2023-08-05 14:40 ` Mattias Engdegård
2023-08-05 16:59 ` Alan Mackenzie
2023-08-05 17:02 ` Mattias Engdegård
2023-08-05 21:07 ` Alan Mackenzie
2023-08-06 13:37 ` Mattias Engdegård
2023-08-06 15:02 ` Alan Mackenzie
2023-08-07 8:58 ` Mattias Engdegård
2023-08-07 9:44 ` Alan Mackenzie
2023-08-09 18:45 ` Mattias Engdegård
2023-08-07 3:30 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-07 9:20 ` Alan Mackenzie
2023-08-08 2:56 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-08 15:33 ` Alan Mackenzie
2023-08-10 3:28 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-10 9:14 ` Alan Mackenzie
2023-08-10 14:28 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-10 18:35 ` Alan Mackenzie
2023-08-12 5:36 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-12 6:10 ` Eli Zaretskii
2023-08-12 18:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-12 19:10 ` Eli Zaretskii
2023-08-13 15:27 ` Alan Mackenzie
2023-08-12 10:41 ` Alan Mackenzie
2023-08-12 18:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-13 13:52 ` Alan Mackenzie
2023-08-12 21:59 ` Alan Mackenzie
2023-08-11 0:51 ` Dmitry Gutov
2023-08-11 10:42 ` Alan Mackenzie
2023-08-11 11:18 ` Dmitry Gutov
2023-08-11 12:05 ` Alan Mackenzie
2023-08-11 13:19 ` Dmitry Gutov
2023-08-11 14:04 ` Alan Mackenzie
2023-08-11 18:15 ` Dmitry Gutov
[not found] ` <handler.65051.B.169115764532326.ack@debbugs.gnu.org>
2023-09-04 12:57 ` bug#65051: Acknowledgement (internal_equal manipulates symbols with position without checking symbols-with-pos-enabled.) 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=83r0ohsqmp.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=65051@debbugs.gnu.org \
--cc=acm@muc.de \
--cc=monnier@iro.umontreal.ca \
/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).