[armedbear-devel] The value :LONG is not of type (MEMBER NIL :BOOLEAN)
Chun Tian (binghe)
binghe.lisp at gmail.com
Mon Mar 21 11:55:03 UTC 2011
Continue narrow down the problem, it's caused by this part in the function:
> (dotimes (i m)
> (push (let (record)
> (dotimes (j r (nreverse record))
> (push (pop real-vbs) record)))
> result-table))
The DOTIMES is the key, my purpose is just loop for m times (m is a positive integer), even I replace it into this form:
(dotimes (j m))
it still fails to load (after compile), but if I use a LOOP instead of DOTIMES, problem solved ...
That's really weird.
Regards,
Chun Tian (binghe)
在 2011-3-21,19:37, Chun Tian (binghe) 写道:
> Hi, Alesio
>
> Oh, sorry, maybe I didn't say it clearly, the "Register 4 contains wrong type" is not produced by the file with THREADS:WITH-MUTEX. It's another issue, not relevant to the first post in this mail thread.
>
> Following function caused the "Register 4 contains wrong type" issue:
>
> (defun generate-table (vars vbs non-repeaters max-repetitions)
> (declare (type fixnum non-repeaters max-repetitions))
> (let* ((var-number (list-length vars))
> (n (min non-repeaters var-number))
> (m max-repetitions)
> (r (max (- var-number n) 0))
> (real-vbs (mapcar #'(lambda (x) (coerce x 'list))
> (coerce vbs 'list)))
> result-table)
> ;; non-repeaters
> (dotimes (i n)
> (push (pop real-vbs) result-table))
> ;; table
> (when (and (plusp m) (plusp r))
> (dotimes (i m)
> (push (let (record)
> (dotimes (j r (nreverse record))
> (push (pop real-vbs) record)))
> result-table)))
> (values (nreverse result-table)
> (mapcar #'oid vars))))
>
> If I temporary disable it by #+ignore or #-abcl, than the whole project compiles with no error any more. I'll try to continue look for which exactly form in this function caused the error.
>
> Regards,
>
> Chun Tian (binghe)
More information about the armedbear-devel
mailing list