New ECL with better type propagator finds bug in maxima



Hi David,

>>>>> "David" == David Kirkby <david.kirkby at onetel.net> writes:

    David> The comments of Juanjo are:
    David> -------------------------------------------
    David> Ooops, ECL now implements a better type propagator, which has detected
    David> an error in the following function

    David> (defun queue+p (nd lab)
    David>    (cond ((null (setq *db* (+labs nd)))
    David> [...]        (t
    David>           (iorm *db* (logior +lab-high-bit+ (unlab lab))))))

    David> Based on this definition

    David> (defmacro iorm (cell n)
    David>    `(rplaca ,cell (logior (car ,cell) (car ,n))))

    David> the second argument to (IORM *db* ...) should be a cons, not an
    David> integer.

this is a known problem, that manifests itself also with SBCL,
though  doesn't hinder generating a compiled files.
The problem is that db.lisp is not well documented and nobody
seems to know what queue+p should really be doing. I can make a
guess what it should look like, but that's it. :-(

'Andreas
-- 
ceterum censeo redmondinem esse delendam.