Comment 6 for bug 655203

Revision history for this message
Kilian Sprotte (kilian-sprotte) wrote :

I noted that the change committed in 1.0.43.26 affects (breaks) DIVIDE-AND-CONQUER-FORCE of screamer.

As a test-case:

(in-package #:screamer-user)

(defun pythagorean-triplesv (n)
  (all-values
    (solution
     (let ((a (an-integer-betweenv 1 n))
    (b (an-integer-betweenv 1 n))
    (c (an-integer-betweenv 1 n)))
       (assert! (=v (+v (*v a a) (*v b b)) (*v c c)))
       (list a b c))
     (reorder #'range-size
       #'(lambda (x) (< x 1e-6))
       #'>
       #'divide-and-conquer-force))))

(pythagorean-triplesv 5) should => ((3 4 5) (4 3 5))

but now it errs with:
The value (1 2) is not of type NULL.
   [Condition of type TYPE-ERROR]

Recompiling DIVIDE-AND-CONQUER-FORCE with the PROPAGATE-LOCAL-CALL-ARGS
of 1.0.43.25 fixes it again.