[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] (random tester) Another compiler side effects bug
From: |
Paul F. Dietz |
Subject: |
[Gcl-devel] (random tester) Another compiler side effects bug |
Date: |
Thu, 30 Oct 2003 07:24:20 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 |
Here's another order-of-evaluation problem related to side
effects in local functions, found by the random tester. The tests
are from ansi-tests/misc.lsp. Both fail in gcl (current cvs,
configured with --enable-ansi).
(deftest misc.123
(let* ((fn1 '(lambda (b)
(declare (optimize (safety 1)))
(labels ((%f7 (f7-1 f7-2)
(let ((v2 (setq b 723149855)))
25620)))
(max b
(multiple-value-call #'%f7 (values b 2))))))
(fn2 '(lambda (b)
(labels ((%f7 (f7-1 f7-2)
(let ((v2 (setq b 723149855)))
25620)))
(max b
(multiple-value-call #'%f7 (values b 2))))))
(vals '(1439719153))
(v1 (apply (compile nil fn1) vals))
(v2 (apply (compile nil fn2) vals)))
(if (eql v1 v2) :good (list v1 v2)))
:good)
(deftest misc.124
(let* ((fn1 '(lambda (b)
(declare (optimize (safety 1)))
(labels ((%f7 (f7-1 f7-2)
(let ((v2 (setq b 723149855)))
25620)))
(max b
(funcall #'%f7 b 2)))))
(fn2 '(lambda (b)
(labels ((%f7 (f7-1 f7-2)
(let ((v2 (setq b 723149855)))
25620)))
(max b
(funcall #'%f7 b 2)))))
(vals '(1439719153))
(v1 (apply (compile nil fn1) vals))
(v2 (apply (compile nil fn2) vals)))
(if (eql v1 v2) :good (list v1 v2)))
:good)
The same test with just a straight call of %f7 doesn't fail.
Paul