GNU bug report logs - #78162
[PATCH] hash-table-contains-p: Avoid creating a symbol on every call

Previous Next

Package: emacs;

Reported by: Daniel Mendler <mail <at> daniel-mendler.de>

Date: Wed, 30 Apr 2025 10:04:02 UTC

Severity: normal

Tags: patch

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 78162 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: 78162 <at> debbugs.gnu.org, Stefan Kangas <stefankangas <at> gmail.com>
Subject: Re: bug#78162: [PATCH] hash-table-contains-p: Avoid creating a
 symbol on every call
Date: Wed, 30 Apr 2025 16:00:40 +0200
Pip Cet <pipcet <at> protonmail.com> writes:

> "Daniel Mendler via \"Bug reports for GNU Emacs, the Swiss army knife of text editors\"" <bug-gnu-emacs <at> gnu.org> writes:
>
>> Tags: patch
>>
>> For performance reasons avoid creating a symbol on every call to
>> `hash-table-contains-p'.  See also https://github.com/emacs-compat/compat/issues/71.
>
> If the performance of hash-table-contains-p is an issue, we should
> reimplement it in C, which can use magic values which aren't accessible
> from Lisp.

For a proper hash table I expect this function to be efficient and not
allocate. A magic value becomes a problem if it is actually used in
Lisp. Is this likely? This should not happen by accident, only if
`hash-table--missing` is used intentionally. Note that the actual symbol
which is used for the check is uninterned.

> Pip




This bug report was last modified 12 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.