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