[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#41354: equal? has no sensible code path for symbols
From: |
Ludovic Courtès |
Subject: |
bug#41354: equal? has no sensible code path for symbols |
Date: |
Wed, 27 May 2020 22:39:59 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hi David,
David Kastrup <dak@gnu.org> skribis:
> In Scheme, symbols can be compared using eq? for equality. However,
> since they have garbage-collected content attached, they do not meet the
> predicate SCM_IMP in the short-circuit evaluation at the start of equal?
> This means that unequal symbols compared using equal? fall through a
> whole bunch of tests and end up in a general structural comparison
> comparing their underlying string names.
‘equal?’ starts by checking for eq-ness, which LGTM:
SCM
scm_equal_p (SCM x, SCM y)
#define FUNC_NAME s_scm_i_equal_p
{
SCM_CHECK_STACK;
tailrecurse:
SCM_TICK;
if (scm_is_eq (x, y))
return SCM_BOOL_T;
Or were you referring to something else?
Thanks,
Ludo’.