unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
@ 2021-10-08 22:59 Paul Eggert
  2022-09-12 11:15 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 11+ messages in thread
From: Paul Eggert @ 2021-10-08 22:59 UTC (permalink / raw)
  To: 51104; +Cc: Andrea Corallo

When trying out the emacs-28 branch on both 32- and 64-bit platforms, I 
had test failures that I tracked down to this line:

test/src/comp-tests.el:933:       (integer ,most-negative-fixnum 
,most-positive-fixnum))

My problem was that I'd built test/src/comp-tests.elc on a 32-bit 
platform (using "./configure CC='gcc -m32'" on an x86-64 machine) so 
that .elc file had been built assuming 32-bit values for 
most-negative-fixnum and most-positive fixnum. When I then re-ran 
'configure' for a 64-bit platform the .elc files were not automatically 
rebuilt for it (they're supposed to be machine-independent, right?) and 
so the optimizations were incorrect for a 64-bit platform and the tests 
failed.

What's a good way to fix this problem, while still testing everything 
that comp-tests.el wants to test?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2021-10-08 22:59 bug#51104: comp-tests.elc messes up after reconfiguring for different machine Paul Eggert
@ 2022-09-12 11:15 ` Lars Ingebrigtsen
  2022-09-12 11:43   ` Eli Zaretskii
  2022-09-12 15:30   ` Andrea Corallo
  0 siblings, 2 replies; 11+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-12 11:15 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 51104, Andrea Corallo

Paul Eggert <eggert@cs.ucla.edu> writes:

> When trying out the emacs-28 branch on both 32- and 64-bit platforms,
> I had test failures that I tracked down to this line:
>
> test/src/comp-tests.el:933:       (integer ,most-negative-fixnum
> ,most-positive-fixnum))
>
> My problem was that I'd built test/src/comp-tests.elc on a 32-bit
> platform (using "./configure CC='gcc -m32'" on an x86-64 machine) so
> that .elc file had been built assuming 32-bit values for
> most-negative-fixnum and most-positive fixnum. When I then re-ran
> 'configure' for a 64-bit platform the .elc files were not
> automatically rebuilt for it (they're supposed to be
> machine-independent, right?) and so the optimizations were incorrect
> for a 64-bit platform and the tests failed.
>
> What's a good way to fix this problem, while still testing everything
> that comp-tests.el wants to test?

This was a year ago, but the code in question seems unchanged now on
"master":

      ;; 14
      ((defun comp-tests-ret-type-spec-f (x)
         (comp-hint-fixnum x))
       (integer ,most-negative-fixnum ,most-positive-fixnum))

So I guess the problem is still present?  (I haven't tested myself.)

Andrea, do you see any way to fix this test for this 32-bit/64-bit
scenarion?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 11:15 ` Lars Ingebrigtsen
@ 2022-09-12 11:43   ` Eli Zaretskii
  2022-09-12 15:30   ` Andrea Corallo
  1 sibling, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-09-12 11:43 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51104, eggert, andrea_corallo

> Cc: 51104@debbugs.gnu.org, Andrea Corallo <andrea_corallo@yahoo.it>
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Date: Mon, 12 Sep 2022 13:15:56 +0200
> 
> Paul Eggert <eggert@cs.ucla.edu> writes:
> 
> > When trying out the emacs-28 branch on both 32- and 64-bit platforms,
> > I had test failures that I tracked down to this line:
> >
> > test/src/comp-tests.el:933:       (integer ,most-negative-fixnum
> > ,most-positive-fixnum))
> >
> > My problem was that I'd built test/src/comp-tests.elc on a 32-bit
> > platform (using "./configure CC='gcc -m32'" on an x86-64 machine) so
> > that .elc file had been built assuming 32-bit values for
> > most-negative-fixnum and most-positive fixnum. When I then re-ran
> > 'configure' for a 64-bit platform the .elc files were not
> > automatically rebuilt for it (they're supposed to be
> > machine-independent, right?) and so the optimizations were incorrect
> > for a 64-bit platform and the tests failed.
> >
> > What's a good way to fix this problem, while still testing everything
> > that comp-tests.el wants to test?
> 
> This was a year ago, but the code in question seems unchanged now on
> "master":
> 
>       ;; 14
>       ((defun comp-tests-ret-type-spec-f (x)
>          (comp-hint-fixnum x))
>        (integer ,most-negative-fixnum ,most-positive-fixnum))
> 
> So I guess the problem is still present?  (I haven't tested myself.)
> 
> Andrea, do you see any way to fix this test for this 32-bit/64-bit
> scenarion?

Is comp-tests.el supposed to run when Emacs is built without
native-compilation? if so, what does it test in that case?

And if comp-tests.el is supposed to run only in a native-compilation
build, then I'd expect to see comp-test.eln run, not comp-test.elc,
and *.eln files are architecture-specific to begin with.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 11:15 ` Lars Ingebrigtsen
  2022-09-12 11:43   ` Eli Zaretskii
@ 2022-09-12 15:30   ` Andrea Corallo
  2022-09-12 17:54     ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-12 21:05     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 2 replies; 11+ messages in thread
From: Andrea Corallo @ 2022-09-12 15:30 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51104, Paul Eggert, Andrea Corallo

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Paul Eggert <eggert@cs.ucla.edu> writes:
>
>> When trying out the emacs-28 branch on both 32- and 64-bit platforms,
>> I had test failures that I tracked down to this line:
>>
>> test/src/comp-tests.el:933:       (integer ,most-negative-fixnum
>> ,most-positive-fixnum))
>>
>> My problem was that I'd built test/src/comp-tests.elc on a 32-bit
>> platform (using "./configure CC='gcc -m32'" on an x86-64 machine) so
>> that .elc file had been built assuming 32-bit values for
>> most-negative-fixnum and most-positive fixnum. When I then re-ran
>> 'configure' for a 64-bit platform the .elc files were not
>> automatically rebuilt for it (they're supposed to be
>> machine-independent, right?) and so the optimizations were incorrect
>> for a 64-bit platform and the tests failed.
>>
>> What's a good way to fix this problem, while still testing everything
>> that comp-tests.el wants to test?
>
> This was a year ago, but the code in question seems unchanged now on
> "master":
>
>       ;; 14
>       ((defun comp-tests-ret-type-spec-f (x)
>          (comp-hint-fixnum x))
>        (integer ,most-negative-fixnum ,most-positive-fixnum))
>
> So I guess the problem is still present?  (I haven't tested myself.)
>
> Andrea, do you see any way to fix this test for this 32-bit/64-bit
> scenarion?

Hi Lars,

I think here IIUC we are using a .elc file (comp-tests.elc) compiled an
an arch X to test .eln files for architectures different than X.

`most-negative-fixnum' is replaced at byte-compilation time with a value
that is indeed arch dependent.  This is because we have some macrology
to defines those tests.

I believe in theory should be possible to move this computation in the
compile time to keep "comp-tests.elc" arch indepent if this is
requirement.

Best Regards

  Andrea





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 15:30   ` Andrea Corallo
@ 2022-09-12 17:54     ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-12 19:34       ` Andrea Corallo
  2022-09-12 21:05     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 11+ messages in thread
From: Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-12 17:54 UTC (permalink / raw)
  To: Andrea Corallo, Lars Ingebrigtsen; +Cc: 51104, Andrea Corallo

On 9/12/22 10:30, Andrea Corallo wrote:
> I believe in theory should be possible to move this computation in the
> compile time to keep "comp-tests.elc" arch indepent if this is
> requirement.

As I understand it, .elc files are supposed to be architecture independent.

Is Lars onto something when he says this should be a .eln file instead? 
I don't recall what comp-tests.el does.






^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 17:54     ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-12 19:34       ` Andrea Corallo
  2022-09-12 20:34         ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 11+ messages in thread
From: Andrea Corallo @ 2022-09-12 19:34 UTC (permalink / raw)
  To: 51104; +Cc: larsi, eggert, andrea_corallo

Paul Eggert via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs@gnu.org> writes:

> On 9/12/22 10:30, Andrea Corallo wrote:
>> I believe in theory should be possible to move this computation in the
>> compile time to keep "comp-tests.elc" arch indepent if this is
>> requirement.
>
> As I understand it, .elc files are supposed to be architecture independent.
>
> Is Lars onto something when he says this should be a .eln file
> instead? I don't recall what comp-tests.el does.

comp-tests.el just tests the native compiler (in this case the ret type
prediction it does).

I guess here make check does byte-compile comp-tests.el but being the
tests executed with a non-interactive emacs this is never native compiled
afterward (it would hide the issue).

Probably the quickest and easiest fix is just to add the
`no-byte-compile' into comp-tests.el.

  Andrea





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 19:34       ` Andrea Corallo
@ 2022-09-12 20:34         ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 11+ messages in thread
From: Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-12 20:34 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: 51104-done, Lars Ingebrigtsen, Andrea Corallo

[-- Attachment #1: Type: text/plain, Size: 224 bytes --]

On 9/12/22 14:34, Andrea Corallo wrote:
> Probably the quickest and easiest fix is just to add the
> `no-byte-compile' into comp-tests.el.

Thanks for the suggestion. I installed the attached and am closing the 
bug report.

[-- Attachment #2: 0001-Fix-comp-tests.el-problem-after-reconfiguring.patch --]
[-- Type: text/x-patch, Size: 796 bytes --]

From 357eb8d933f20a9e868d798a3cd4feb8536b1948 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 12 Sep 2022 15:31:36 -0500
Subject: [PATCH] Fix comp-tests.el problem after reconfiguring

* test/src/comp-tests.el: Do not byte-compile, as the .elc
file would be machine-dependent (bug#51104).
---
 test/src/comp-tests.el | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el
index 1b239cec79..a5f33069e0 100644
--- a/test/src/comp-tests.el
+++ b/test/src/comp-tests.el
@@ -1472,4 +1472,8 @@ comp-tests-cond-rw-checker-type
           (equal (comp-mvar-typeset mvar)
                  comp-tests-cond-rw-expected-type))))))))
 
+;; Local Variables:
+;; no-byte-compile: t
+;; End:
+
 ;;; comp-tests.el ends here
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 15:30   ` Andrea Corallo
  2022-09-12 17:54     ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-12 21:05     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-13 11:21       ` Lars Ingebrigtsen
  1 sibling, 1 reply; 11+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-12 21:05 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: 51104, Lars Ingebrigtsen, Paul Eggert, Andrea Corallo

>> Andrea, do you see any way to fix this test for this 32-bit/64-bit
>> scenarion?

Not Andrea, but IIUC the patch below might do the trick.
Can someone confirm?


        Stefan


diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el
index a5f33069e01..a400a1a50a1 100644
--- a/test/src/comp-tests.el
+++ b/test/src/comp-tests.el
@@ -860,21 +860,21 @@ comp-tests-check-ret-type-spec
 
 (cl-eval-when (compile eval load)
   (defconst comp-tests-type-spec-tests
-    `(
+    '(
       ;; 1
       ((defun comp-tests-ret-type-spec-f (x)
          x)
-       t)
+       't)
 
       ;; 2
       ((defun comp-tests-ret-type-spec-f ()
          1)
-       (integer 1 1))
+       '(integer 1 1))
 
       ;; 3
       ((defun comp-tests-ret-type-spec-f (x)
          (if x 1 3))
-       (or (integer 1 1) (integer 3 3)))
+       '(or (integer 1 1) (integer 3 3)))
 
       ;; 4
       ((defun comp-tests-ret-type-spec-f (x)
@@ -883,7 +883,7 @@ comp-tests-check-ret-type-spec
                (setf y 1)
              (setf y 2))
            y))
-       (integer 1 2))
+       '(integer 1 2))
 
       ;; 5
       ((defun comp-tests-ret-type-spec-f (x)
@@ -892,73 +892,73 @@ comp-tests-check-ret-type-spec
                (setf y 1)
              (setf y 3))
            y))
-       (or (integer 1 1) (integer 3 3)))
+       '(or (integer 1 1) (integer 3 3)))
 
       ;; 6
       ((defun comp-tests-ret-type-spec-f (x)
          (if x
              (list x)
            3))
-       (or cons (integer 3 3)))
+       '(or cons (integer 3 3)))
 
       ;; 7
       ((defun comp-tests-ret-type-spec-f (x)
          (if x
              'foo
            3))
-       (or (member foo) (integer 3 3)))
+       '(or (member foo) (integer 3 3)))
 
       ;; 8
       ((defun comp-tests-ret-type-spec-f (x)
          (if (eq x 3)
              x
            'foo))
-       (or (member foo) (integer 3 3)))
+       '(or (member foo) (integer 3 3)))
 
       ;; 9
       ((defun comp-tests-ret-type-spec-f (x)
          (if (eq 3 x)
              x
            'foo))
-       (or (member foo) (integer 3 3)))
+       '(or (member foo) (integer 3 3)))
 
       ;; 10
       ((defun comp-tests-ret-type-spec-f (x)
          (if (eql x 3)
              x
            'foo))
-       (or (member foo) (integer 3 3)))
+       '(or (member foo) (integer 3 3)))
 
       ;; 11
       ((defun comp-tests-ret-type-spec-f (x)
          (if (eql 3 x)
              x
            'foo))
-       (or (member foo) (integer 3 3)))
+       '(or (member foo) (integer 3 3)))
 
       ;; 12
       ((defun comp-tests-ret-type-spec-f (x)
          (if (eql x 3)
              'foo
            x))
-       (not (integer 3 3)))
+       '(not (integer 3 3)))
 
       ;; 13
       ((defun comp-tests-ret-type-spec-f (x y)
          (if (= x y)
              x
            'foo))
-       (or (member foo) marker number))
+       '(or (member foo) marker number))
 
       ;; 14
       ((defun comp-tests-ret-type-spec-f (x)
          (comp-hint-fixnum x))
-       (integer ,most-negative-fixnum ,most-positive-fixnum))
+       `(integer ,most-negative-fixnum ,most-positive-fixnum))
 
       ;; 15
       ((defun comp-tests-ret-type-spec-f (x)
          (comp-hint-cons x))
-       cons)
+       'cons)
 
       ;; 16
       ((defun comp-tests-ret-type-spec-f (x)
@@ -966,7 +966,7 @@ comp-tests-check-ret-type-spec
            (when x
              (setf y 4))
            y))
-       (or null (integer 4 4)))
+       '(or null (integer 4 4)))
 
       ;; 17
       ((defun comp-tests-ret-type-spec-f ()
@@ -974,7 +974,7 @@ comp-tests-check-ret-type-spec
                (y 3))
            (setf x y)
            y))
-       (integer 3 3))
+       '(integer 3 3))
 
       ;; 18
       ((defun comp-tests-ret-type-spec-f (x)
@@ -982,120 +982,120 @@ comp-tests-check-ret-type-spec
            (when x
              (setf y x))
            y))
-       t)
+       't)
 
       ;; 19
       ((defun comp-tests-ret-type-spec-f (x y)
          (eq x y))
-       boolean)
+       'boolean)
 
       ;; 20
       ((defun comp-tests-ret-type-spec-f (x)
          (when x
            'foo))
-       (or (member foo) null))
+       '(or (member foo) null))
 
       ;; 21
       ((defun comp-tests-ret-type-spec-f (x)
          (unless x
            'foo))
-       (or (member foo) null))
+       '(or (member foo) null))
 
       ;; 22
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (> x 3)
 	   x))
-       (or null float (integer 4 *)))
+       '(or null float (integer 4 *)))
 
       ;; 23
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (>= x 3)
 	   x))
-       (or null float (integer 3 *)))
+       '(or null float (integer 3 *)))
 
       ;; 24
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (< x 3)
 	   x))
-       (or null float (integer * 2)))
+       '(or null float (integer * 2)))
 
       ;; 25
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (<= x 3)
 	   x))
-       (or null float (integer * 3)))
+       '(or null float (integer * 3)))
 
       ;; 26
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (> 3 x)
 	   x))
-       (or null float (integer * 2)))
+       '(or null float (integer * 2)))
 
       ;; 27
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (>= 3 x)
 	   x))
-       (or null float (integer * 3)))
+       '(or null float (integer * 3)))
 
       ;; 28
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (< 3 x)
 	   x))
-       (or null float (integer 4 *)))
+       '(or null float (integer 4 *)))
 
       ;; 29
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (<= 3 x)
 	   x))
-       (or null float (integer 3 *)))
+       '(or null float (integer 3 *)))
 
       ;; 30
       ((defun comp-tests-ret-type-spec-f (x)
          (let ((y 3))
 	   (when (> x y)
 	     x)))
-       (or null float (integer 4 *)))
+       '(or null float (integer 4 *)))
 
       ;; 31
       ((defun comp-tests-ret-type-spec-f (x)
          (let ((y 3))
 	   (when (> y x)
 	     x)))
-       (or null float (integer * 2)))
+       '(or null float (integer * 2)))
 
       ;; 32
       ((defun comp-tests-ret-type-spec-f (x)
          (when (and (> x 3)
 		    (< x 10))
 	   x))
-       (or null float (integer 4 9)))
+       '(or null float (integer 4 9)))
 
       ;; 33
       ((defun comp-tests-ret-type-spec-f (x)
          (when (or (> x 3)
                    (< x 10))
 	   x))
-       (or null float integer))
+       '(or null float integer))
 
       ;; 34
       ((defun comp-tests-ret-type-spec-f (x)
          (when (or (< x 3)
                    (> x 10))
 	   x))
-       (or null float (integer * 2) (integer 11 *)))
+       '(or null float (integer * 2) (integer 11 *)))
 
       ;; 35 No float range support.
       ((defun comp-tests-ret-type-spec-f (x)
 	 (when (> x 1.0)
 	   x))
-       (or null marker number))
+       '(or null marker number))
 
       ;; 36
       ((defun comp-tests-ret-type-spec-f (x y)
          (when (and (> x 3)
                     (> y 2))
            (+ x y)))
-       (or null float (integer 7 *)))
+       '(or null float (integer 7 *)))
 
       ;; 37
       ;; SBCL: (OR REAL NULL)
@@ -1103,14 +1103,14 @@ comp-tests-check-ret-type-spec
          (when (and (<= x 3)
                     (<= y 2))
            (+ x y)))
-       (or null float (integer * 5)))
+       '(or null float (integer * 5)))
 
       ;; 38
       ((defun comp-tests-ret-type-spec-f (x y)
          (when (and (< 1 x 5)
 	            (< 1 y 5))
            (+ x y)))
-       (or null float (integer 4 8)))
+       '(or null float (integer 4 8)))
 
       ;; 39
       ;; SBCL gives: (OR REAL NULL)
@@ -1118,7 +1118,7 @@ comp-tests-check-ret-type-spec
 	 (when (and (<= 1 x 10)
 		    (<= 2 y 3))
 	   (+ x y)))
-       (or null float (integer 3 13)))
+       '(or null float (integer 3 13)))
 
       ;; 40
       ;; SBCL: (OR REAL NULL)
@@ -1126,42 +1126,42 @@ comp-tests-check-ret-type-spec
 	 (when (and (<= 1 x 10)
 		    (<= 2 y 3))
 	   (- x y)))
-       (or null float (integer -2 8)))
+       '(or null float (integer -2 8)))
 
       ;; 41
       ((defun comp-tests-ret-type-spec-f (x y)
          (when (and (<= 1 x)
                     (<= 2 y 3))
            (- x y)))
-       (or null float (integer -2 *)))
+       '(or null float (integer -2 *)))
 
       ;; 42
       ((defun comp-tests-ret-type-spec-f (x y)
          (when (and (<= 1 x 10)
                     (<= 2 y))
            (- x y)))
-       (or null float (integer * 8)))
+       '(or null float (integer * 8)))
 
       ;; 43
       ((defun comp-tests-ret-type-spec-f (x y)
 	 (when (and (<= x 10)
 		    (<= 2 y))
 	   (- x y)))
-       (or null float (integer * 8)))
+       '(or null float (integer * 8)))
 
       ;; 44
       ((defun comp-tests-ret-type-spec-f (x y)
          (when (and (<= x 10)
                     (<= y 3))
            (- x y)))
-       (or null float integer))
+       '(or null float integer))
 
       ;; 45
       ((defun comp-tests-ret-type-spec-f (x y)
          (when (and (<= 2 x)
                     (<= 3 y))
            (- x y)))
-       (or null float integer))
+       '(or null float integer))
 
       ;; 46
       ;; SBCL: (OR (RATIONAL (6) (30)) (SINGLE-FLOAT 6.0 30.0)
@@ -1174,63 +1174,63 @@ comp-tests-check-ret-type-spec
 	            (< 1 j 5)
 	            (< 1 k 5))
            (+ x y z i j k)))
-       (or null float (integer 12 24)))
+       '(or null float (integer 12 24)))
 
       ;; 47
       ((defun comp-tests-ret-type-spec-f (x)
          (when (<= 1 x 5)
            (1+ x)))
-       (or null float (integer 2 6)))
+       '(or null float (integer 2 6)))
 
       ;;48
       ((defun comp-tests-ret-type-spec-f (x)
          (when (<= 1 x 5)
            (1- x)))
-       (or null float (integer 0 4)))
+       '(or null float (integer 0 4)))
 
       ;; 49
       ((defun comp-tests-ret-type-spec-f ()
          (error "Foo"))
-       nil)
+       'nil)
 
       ;; 50
       ((defun comp-tests-ret-type-spec-f (x)
          (if (stringp x)
 	     x
            'bar))
-       (or (member bar) string))
+       '(or (member bar) string))
 
       ;; 51
       ((defun comp-tests-ret-type-spec-f (x)
          (if (stringp x)
              'bar
            x))
-       (not string))
+       '(not string))
 
       ;; 52
       ((defun comp-tests-ret-type-spec-f (x)
          (if (integerp x)
              x
            'bar))
-       (or (member bar) integer))
+       '(or (member bar) integer))
 
       ;; 53
       ((defun comp-tests-ret-type-spec-f (x)
          (when (integerp x)
            x))
-       (or null integer))
+       '(or null integer))
 
       ;; 54
       ((defun comp-tests-ret-type-spec-f (x)
          (unless (symbolp x)
            x))
-       t)
+       't)
 
       ;; 55
       ((defun comp-tests-ret-type-spec-f (x)
          (unless (integerp x)
            x))
-       (not integer))
+       '(not integer))
 
       ;; 56
       ((defun comp-tests-ret-type-spec-f (x)
@@ -1238,7 +1238,7 @@ comp-tests-check-ret-type-spec
            (1 (message "one"))
            (5 (message "five")))
          x)
-       t
+       't
        ;; FIXME improve `comp-cond-cstrs-target-mvar' to cross block
        ;; boundary if necessary as this should return:
        ;; (or (integer 1 1) (integer 5 5))
@@ -1250,7 +1250,7 @@ comp-tests-check-ret-type-spec
 	             (eql x 3))
            (error "Not foo or 3"))
          x)
-       (or (member foo) (integer 3 3)))
+       '(or (member foo) (integer 3 3)))
 
       ;;58
       ((defun comp-tests-ret-type-spec-f (x y)
@@ -1259,7 +1259,7 @@ comp-tests-check-ret-type-spec
                   (<= x y))
              x
            (error "")))
-       (integer 0 *))
+       '(integer 0 *))
 
       ;; 59
       ((defun comp-tests-ret-type-spec-f (x y)
@@ -1268,7 +1268,7 @@ comp-tests-check-ret-type-spec
                   (<= x y))
              x
            (error "")))
-       (or float (integer 3 10)))
+       '(or float (integer 3 10)))
 
       ;; 60
       ((defun comp-tests-ret-type-spec-f (x y)
@@ -1277,56 +1277,56 @@ comp-tests-check-ret-type-spec
 			     (>= x y))
              x
            (error "")))
-       (or float (integer 3 10)))
+       '(or float (integer 3 10)))
 
       ;; 61
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (= x 1.0)
              x
            (error "")))
-       (or (member 1.0) (integer 1 1)))
+       '(or (member 1.0) (integer 1 1)))
 
       ;; 62
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (= x 1.0)
              x
            (error "")))
-       (or (member 1.0) (integer 1 1)))
+       '(or (member 1.0) (integer 1 1)))
 
       ;; 63
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (= x 1.1)
              x
            (error "")))
-       (member 1.1))
+       '(member 1.1))
 
       ;; 64
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (= x 1)
              x
            (error "")))
-       (or (member 1.0) (integer 1 1)))
+       '(or (member 1.0) (integer 1 1)))
 
       ;; 65
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (= x 1)
              x
            (error "")))
-       (or (member 1.0) (integer 1 1)))
+       '(or (member 1.0) (integer 1 1)))
 
       ;; 66
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (eql x 0.0)
 	     x
 	   (error "")))
-       float)
+       'float)
 
       ;; 67
       ((defun comp-tests-ret-type-spec-f (x)
 	 (if (equal x '(1 2 3))
 	     x
 	   (error "")))
-       cons)
+       'cons)
 
       ;; 68
       ((defun comp-tests-ret-type-spec-f (x)
@@ -1335,7 +1335,7 @@ comp-tests-check-ret-type-spec
              x
            (error "")))
        ;; Conservative (see cstr relax in `comp-cstr-=').
-       (or (member 1.0) (integer 1 1)))
+       '(or (member 1.0) (integer 1 1)))
 
       ;; 69
       ((defun comp-tests-ret-type-spec-f (x)
@@ -1344,7 +1344,7 @@ comp-tests-check-ret-type-spec
              x
            (error "")))
        ;; Conservative (see cstr relax in `comp-cstr-=').
-       (or (member 1.0) (integer 1 1)))
+       '(or (member 1.0) (integer 1 1)))
 
       ;; 70
       ((defun comp-tests-ret-type-spec-f (x y)
@@ -1353,14 +1353,14 @@ comp-tests-check-ret-type-spec
 	          (= x y))
              x
            (error "")))
-       (or float integer))
+       '(or float integer))
 
       ;; 71
       ((defun comp-tests-ret-type-spec-f (x)
          (if (= x 0.0)
              x
            (error "")))
-       (or (member -0.0 0.0) (integer 0 0)))
+       '(or (member -0.0 0.0) (integer 0 0)))
 
       ;; 72
       ((defun comp-tests-ret-type-spec-f (x)
@@ -1369,27 +1369,27 @@ comp-tests-check-ret-type-spec
          (unless (eql x -0.0)
            (error ""))
          x)
-       float)
+       'float)
 
       ;; 73
       ((defun comp-tests-ret-type-spec-f (x)
          (when (eql x 1.0)
 	   (error ""))
          x)
-       t)
+       't)
 
       ;; 74
       ((defun comp-tests-ret-type-spec-f (x)
          (if (eq x 0)
 	     (error "")
 	   (1+ x)))
-       number)))
+       'number)))
 
   (defun comp-tests-define-type-spec-test (number x)
     `(comp-deftest ,(intern (format "ret-type-spec-%d" number)) ()
                    ,(format "Type specifier test number %d." number)
                    (let ((comp-ctxt (make-comp-cstr-ctxt)))
-                     (comp-tests-check-ret-type-spec ',(car x) ',(cadr x))))))
+                     (comp-tests-check-ret-type-spec ',(car x) ,(cadr x))))))
 
 (defmacro comp-tests-define-type-spec-tests ()
   "Define all type specifier tests."
@@ -1472,8 +1472,4 @@ comp-tests-cond-rw-checker-type
           (equal (comp-mvar-typeset mvar)
                  comp-tests-cond-rw-expected-type))))))))
 
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
 ;;; comp-tests.el ends here






^ permalink raw reply related	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-12 21:05     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-13 11:21       ` Lars Ingebrigtsen
  2022-09-13 13:39         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-13 14:09         ` Andrea Corallo
  0 siblings, 2 replies; 11+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-13 11:21 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 51104, Paul Eggert, Andrea Corallo, Andrea Corallo

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>> Andrea, do you see any way to fix this test for this 32-bit/64-bit
>>> scenarion?
>
> Not Andrea, but IIUC the patch below might do the trick.
> Can someone confirm?

I think that looks better than disabling byte-compilation (because the
comp tests are already slow enough 😀).





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-13 11:21       ` Lars Ingebrigtsen
@ 2022-09-13 13:39         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-13 14:09         ` Andrea Corallo
  1 sibling, 0 replies; 11+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-13 13:39 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51104, Paul Eggert, Andrea Corallo, Andrea Corallo

Lars Ingebrigtsen [2022-09-13 13:21:53] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>>> Andrea, do you see any way to fix this test for this 32-bit/64-bit
>>>> scenarion?
>> Not Andrea, but IIUC the patch below might do the trick.
>> Can someone confirm?
> I think that looks better than disabling byte-compilation (because the
> comp tests are already slow enough 😀).

Pushed,


        Stefan






^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#51104: comp-tests.elc messes up after reconfiguring for different machine
  2022-09-13 11:21       ` Lars Ingebrigtsen
  2022-09-13 13:39         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-13 14:09         ` Andrea Corallo
  1 sibling, 0 replies; 11+ messages in thread
From: Andrea Corallo @ 2022-09-13 14:09 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51104, Paul Eggert, Stefan Monnier, Andrea Corallo

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>>> Andrea, do you see any way to fix this test for this 32-bit/64-bit
>>>> scenarion?
>>
>> Not Andrea, but IIUC the patch below might do the trick.
>> Can someone confirm?
>
> I think that looks better than disabling byte-compilation (because the
> comp tests are already slow enough 😀).

Comp tests are unfortunatelly slow not because comp-tests.el is slow but
because of the compiler itself is not fast :/

Anyway Stefan fix is certanly nicer, I feel sorry for not having had the
time to look into it myself.

Thanks!

  Andrea





^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2022-09-13 14:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-08 22:59 bug#51104: comp-tests.elc messes up after reconfiguring for different machine Paul Eggert
2022-09-12 11:15 ` Lars Ingebrigtsen
2022-09-12 11:43   ` Eli Zaretskii
2022-09-12 15:30   ` Andrea Corallo
2022-09-12 17:54     ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-12 19:34       ` Andrea Corallo
2022-09-12 20:34         ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-12 21:05     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-13 11:21       ` Lars Ingebrigtsen
2022-09-13 13:39         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-13 14:09         ` Andrea Corallo

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).