From: <em...@te...> - 2005-06-25 17:27:11
|
The following code raises a warning that I at least dont know how to interpret. Xophe said in #lisp that it looks like a bug. (defun Cuthill-McKee (struct first) (declare (optimize speed)) (let* ((nodes (nodes struct)) (bars (bars struct)) (length (length nodes)) (new (make-array length :fill-pointer 0))) (vector-push first new) (loop with i fixnum = 0 for newl fixnum = (length new) while (< newl length) do (let ((oldl (length new))) (loop for j fixnum from i below newl do (dolist (n (node-neighbours (aref new j) bars)) (unless (find n new) (vector-push n new)))) (setq i oldl))) new)) => -+ Warnings (1) `-- --> NTH-VALUE MULTIPLE-VALUE-BIND LET SB-KERNEL:%FIND-POSITION --> SB-KERNEL:%FIND-POSITION-VECTOR-MACRO LET SB-KERNEL:WITH-ARRAY-DATA --> LET LET LET MULTIPLE-VALUE-BIND MULTIPLE-VALUE-CALL IF ==> (LET ((#:ONCE-ONLY-40 #:ONCE-ONLY-40)) (DECLARE (TYPE (SIMPLE-ARRAY * (*)) #:ONCE-ONLY-40)) (LET ((#:ONCE-ONLY-43 (LENGTH #:ONCE-ONLY-40))) (LET ((#:ONCE-ONLY-44 #)) (IF (<= #:ONCE-ONLY-41 #:ONCE-ONLY-44 #:ONCE-ONLY-43) (VALUES #:ONCE-ONLY-40 #:ONCE-ONLY-41 #:ONCE-ONLY-44 0) (SB-KERNEL:FAILED-%WITH-ARRAY-DATA #:ONCE-ONLY-40 #:ONCE-ONLY-41 #:ONCE-ONLY-42))))) Asserted type (SIMPLE-ARRAY * (*)) conflicts with derived type (VALUES (VECTOR T) &OPTIONAL). See also: SBCL Manual, Handling of Types [node] This is running sbcl with: sbcl --userinit /dev/null --sysinit /dev/null Obviously there are several style-warnings about undefined functions but compiling the function with all those functions defined raise the same warning. -- Eduardo Muñoz | (prog () 10 (print "Hello world!") http://213.97.131.125/ | 20 (go 10)) |