I routinely rebase before abandoning my patches so it only now caught my
attention that this bug fix was committed with changed comments.
Unfortunately, one of those comments was changed for the worse.
Here is the respective merge conflict:
/* In Guile, `assv' is the same as `assq' for keys of all types except
/* Non-immediate numbers are the only keys we need to check
* other than with eq
>>>>>>> Let assv/assoc shortcircuit to assq where feasible
if (!SCM_NUMP (key))
return scm_sloppy_assq (key, alist);
The first of the comments is the one actually in the repository. Apart
from the difference in formatting (which is fine) it features a
different in content that is extremely misleading. SCM_NUMP indeed
checks for _nonimmediate_ numbers (as opposed to the more inclusive
SCM_NUMBERP). Since this comment concerns a _very_ deliberate and
nontrivial optimization and since the name of the macro SCM_NUMP is
fabulously misleading (which apparently triggered the comment change in
the first place), I'd consider it important to fix the comment.
It might even be an idea to replace the condition with
if (SCM_IMP (key) || !SCM_NUMBERP (key))
(which yields an ugly macro expansion but the compiler might optimize
if (SCM_IMP (key) || !SCM_NUMP (key))
both of which are sort of nonsensical to the compiler (the latter more
so than the former) but might be less confusing to the human reader.
Or find a better name for SCM_NUMP in the first place.
At any rate, the minimally invasive option would be to restore the
original comment albeit with typographic fixes, namely writing `eq?'
instead of just eq.