This might help:

The problem occurs when the (list-length foobar) expression appears as the right hand side of a variable binding in a let* list.

A perhaps related spurious diagnostic also appears in the same let* context (but in different lets):

;   (WHEN INLINE-FLAG
;     (FETCH-DIR PAS-KING-SQ FR-SQ))
; --> COND IF
; ==>
;   (COND)
; Warning: This is not a (VALUES &OPTIONAL (MOD 536870911) &REST T):
;   NIL
; ; [Last message occurs 2 times]

The above COND IF NIL stuff must be from a cmucl macro expansion as it's not in the user source.

I note that the resulting compiled object code for all of the spurious warning cases runs fine as does the interpreted code version. Same for the clisp and gcl processors.

== Steven


On Sep 22, 2008, at 7:58 PM, Raymond Toy wrote:

Steven Edwards wrote:
Greetings again, list readers:

It seems that every time I compile something like:

 (list-length some-random-list)

I get a compiler warning:

;   (LIST-LENGTH SOME-RANDOM-LIST)
; --> BLOCK DO BLOCK LET TAGBODY WHEN COND IF PROGN RETURN
; ==>
;   (RETURN-FROM NIL NIL)
; Warning: This is not a (VALUES &OPTIONAL REAL &REST T):
;   NIL
; ; [Last message occurs 2 times]

Any ideas?

I can't reproduce this.  What version of cmucl?  Can you provide a
complete example that shows this?

Thanks,

Ray


Reply via email to