GNU bug report logs -
#32485
27.0.50; Problem with zerop on 32-bit platforms
Previous Next
Reported by: Ken Brown <kbrown <at> cornell.edu>
Date: Mon, 20 Aug 2018 18:14:01 UTC
Severity: normal
Found in version 27.0.50
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 21 Aug 2018 13:54:11 -0700
with message-id <ac8b04ca-f2f8-db91-db97-993ff2d71f7e <at> cs.ucla.edu>
and subject line Re: bug#32485: 27.0.50; Problem with zerop on 32-bit platforms
has caused the debbugs.gnu.org bug report #32485,
regarding 27.0.50; Problem with zerop on 32-bit platforms
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
32485: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32485
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Evaluating (zerop (lsh -1 32)) on 32-bit Cygwin yields
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p
-4294967296)
I realize that the fate of lsh is still being debated, but I think
there's a problem with zerop anyway, because directly evaluating (zerop
-4294967296) leads to the same error.
I encountered this problem because vc-hg-state-fast contains the
following:
;; We want to store 32-bit unsigned values in fixnums.
(zerop (lsh -1 32))
Aside from the fact that this leads to an error, it may need to be
changed once a decision is made about lsh.
In GNU Emacs 27.0.50 (build 10, i686-pc-cygwin)
of 2018-08-20 built on moufang
Repository revision: ecd7a9407711ebe24d7e07d4402a2d66754ee693
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
> vc-hg-state-fast might still need
> attention. Currently (zerop (lsh -1 32)) returns nil on all platforms,
> so it's useless; but that might change
This prompted me to audit the uses of lsh in the Emacs source code. I found and
fixed a few glitches by installing the attached patch; in particular it fixes
vg-hg-state-fast by using ash instead, as ash's semantics are clear and not
subject to change. This patch goes further in this direction by replacing lsh
with ash when either will do.
As this fixes the remaining problems mentioned in this bug report, I'm boldly
closing the report.
[0001-Audit-use-of-lsh-and-fix-glitches.patch (text/x-patch, attachment)]
This bug report was last modified 6 years and 357 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.