[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bignum branch
From: |
Andy Moreton |
Subject: |
Re: bignum branch |
Date: |
Mon, 16 Jul 2018 23:28:30 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (windows-nt) |
On Mon 16 Jul 2018, Tom Tromey wrote:
>>>>>> "Tom" == Tom Tromey <address@hidden> writes:
>
> Tom> I was thinking this is what I' have emacs do when
> Tom> sizeof(EMACS_INT) > sizeof(long).
>
> Please try this patch.
>
> Unfortunately I don't know how I can test it locally
This builds ok on Windows with 64bit mingw64 (MSYS2), but still has a
few issues and some odd behaviour:
- Some GCC warnings
- A selection of marker related issues
- A problem with the ccl.el compiler for CCL programs
- Some test failures
- eassert() failures in make_bignum_str() during tests.
Possible issues are that its caller, string_to_number() does not
appear to handle the S2N_IGNORE_TRAILING flag for arguments that
end up as bignums.
It is also possible that string_to_number() has slightly different
semantics for its `base' argument from mpz_set_str().
1) Some GCC warnings:
C:/emacs/git/emacs/bignum/src/search.c: In function 'Freplace_match':
C:/emacs/git/emacs/bignum/src/search.c:2651:15: warning: argument 1 value
'2305843009213693951' exceeds maximum object size 2147483647
[-Walloc-size-larger-than=]
substed = xmalloc (substed_alloc_size);
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/emacs/git/emacs/bignum/src/search.c:24:0:
C:/emacs/git/emacs/bignum/src/lisp.h:4548:14: note: in a call to allocation
function 'xmalloc' declared here
extern void *xmalloc (size_t) ATTRIBUTE_MALLOC_SIZE ((1));
^~~~~~~
2) A selection of marker related issues:
In toplevel form:
../../../lisp/cedet/semantic/wisent/javat-wy.el:265:17:Error: Wrong type
argument: number-or-marker-p, 1152921504606846975
In toplevel form:
../../../lisp/cedet/semantic/wisent/js-wy.el:185:17:Error: Wrong type argument:
number-or-marker-p, 1152921504606846975
In toplevel form:
../../../lisp/cedet/semantic/wisent/python-wy.el:237:17:Error: Wrong type
argument: number-or-marker-p, 1152921504606846975
Eager macro-expansion failure: (wrong-type-argument number-or-marker-p
1152921504606846975)
In toplevel form:
../../../lisp/cedet/semantic/wisent/python.el:38:1:Error: Wrong type argument:
number-or-marker-p, 1152921504606846975
3) A problem with the ccl.el compiler for CCL programs. I think that
this can be fixed by truncating the CCL code words output by the
compiler in ccl.el to ensure that they doe not extend beyond the
expected 28bit code word. The interpreter in ccl.c appears to range
check the code words properly.
In toplevel form:
../../../lisp/obsolete/pgg.el:29:1:Error: Error in CCL program
In toplevel form:
../../../lisp/obsolete/pgg-gpg.el:32:1:Error: Error in CCL program
In toplevel form:
../../../lisp/obsolete/pgg-pgp.el:30:1:Error: Error in CCL program
In toplevel form:
../../../lisp/obsolete/pgg-pgp5.el:30:1:Error: Error in CCL program
4) Some test failures. I have omitted conditions for tests with similar
complaints about number-or-markerp.
Test test-calc-23889 condition:
(wrong-type-argument number-or-marker-p 3568982627)
FAILED 1/5 test-calc-23889 (0.084549 sec)
Test test-calc-convert-units condition:
(ert-test-failed
((should
(calc-tests-equal
(calc-tests-simple ... "-1 m" nil "cm")
'...))
:form
(calc-tests-equal nil
(* -100
(var cm var-cm)))
:value nil))
FAILED 2/5 test-calc-convert-units (0.018381 sec)
Test test-calc-extract-units condition:
(ert-test-failed
((should
(calc-tests-equal
(calc-tests-simple ... "-1 m")
'...))
:form
(calc-tests-equal nil
(var m var-m))
:value nil))
FAILED 3/5 test-calc-extract-units (0.001062 sec)
Test test-calc-remove-units condition:
(ert-test-failed
((should
(calc-tests-equal
(calc-tests-simple ... "-1 m")
-1))
:form
(calc-tests-equal nil -1)
:value nil))
FAILED 4/5 test-calc-remove-units (0.023494 sec)
Test test-math-bignum condition:
(wrong-type-argument number-or-marker-p 2305843009)
FAILED 5/5 test-math-bignum (0.000160 sec)
Test dired-test-bug25609 condition:
(wrong-type-argument numberp #<marker in no buffer>)
FAILED 3/11 dired-test-bug25609 (0.028504 sec)
Test viper-test-undo-2 condition:
(error "Wrong type argument: numberp, #<marker at 3 in
*viper-test-buffer*>")
FAILED 4/6 viper-test-undo-2 (0.053162 sec)
Test eshell-test/command-running-p condition:
(wrong-type-argument numberp #<marker at 29 in *eshell*>)
FAILED 1/29 eshell-test/command-running-p (0.124705 sec)
Test number-sequence-test condition:
(ert-test-failed
((should
(=
(length ...)
2))
:form
(= 1 2)
:value nil))
FAILED 2/15 number-sequence-test (0.000085 sec)
Test simple-transpose-subr condition:
(wrong-type-argument numberp #<marker in no buffer>)
Test bignum-abs condition:
(ert-test-failed
((should
(= most-positive-fixnum
(- ... 1)))
:form
(= 2305843009213693951 2305843009213693951)
:value nil))
Test data-tests-/ condition:
(ert-test-failed
((should
(= most-positive-fixnum
(/ x 8)))
:form
(= 2305843009213693951 -1)
:value nil))
FAILED 22/41 data-tests-/ (0.000130 sec)
Test data-tests-1+ condition:
(ert-test-failed
((should
(fixnump
(1+ ...)))
:form
(fixnump -2305843009213693952)
:value nil))
FAILED 23/41 data-tests-1+ (0.000151 sec)
Test data-tests-1- condition:
(ert-test-failed
((should
(fixnump
(1- ...)))
:form
(fixnump 2305843009213693951)
:value nil))
FAILED 24/41 data-tests-1- (0.000166 sec)
Test data-tests-ash-lsh condition:
(ert-test-failed
((should
(=
(ash most-negative-fixnum 1)
(* most-negative-fixnum 2)))
:form
(= -4611686018427387904 0)
:value nil))
FAILED 30/41 data-tests-ash-lsh (0.000129 sec)
5) Assertion failures in tests. I've omitted the backtrace as it isn;t
much use without decoding it, and this post is long enough already. I
assume that the failing test is the next test after the previously
reported passing test.
passed 33/41 data-tests-local-variable-watchers (0.000995 sec)
Backtrace:
...
make[2]: *** [Makefile:182: src/data-tests.log] Error 3
passed 13/20 format-with-field (0.000145 sec)
Backtrace:
...
C:/emacs/git/emacs/bignum/src/alloc.c:3795: Emacs fatal error: assertion
failed: check == 0
make[2]: *** [Makefile:182: src/editfns-tests.log] Error 3
- Re: bignum branch, (continued)
- Re: bignum branch, Andy Moreton, 2018/07/14
- Re: bignum branch, Tom Tromey, 2018/07/15
- Re: bignum branch, Eli Zaretskii, 2018/07/15
- Re: bignum branch, Stefan Monnier, 2018/07/16
- Re: bignum branch, Eli Zaretskii, 2018/07/16
- Re: bignum branch, Stefan Monnier, 2018/07/16
- Re: bignum branch, Eli Zaretskii, 2018/07/16
- Re: bignum branch, Stefan Monnier, 2018/07/16
- Re: bignum branch, Eli Zaretskii, 2018/07/16
- Re: bignum branch, Tom Tromey, 2018/07/16
- Re: bignum branch,
Andy Moreton <=
- Re: bignum branch, Andy Moreton, 2018/07/21
- Re: bignum branch, Tom Tromey, 2018/07/22
- Re: bignum branch, Andy Moreton, 2018/07/22
- Re: bignum branch, Eli Zaretskii, 2018/07/15
- Re: bignum branch, Paul Eggert, 2018/07/15
- Re: bignum branch, Eli Zaretskii, 2018/07/15
- Re: bignum branch, Paul Eggert, 2018/07/16
- Re: bignum branch, Eli Zaretskii, 2018/07/16
- Re: bignum branch, Paul Eggert, 2018/07/17
- Re: bignum branch, Eli Zaretskii, 2018/07/17