Subject: 24.5; `cl-values-list' should not be an alias for `identity'

From: Drew Adams <[email-masked]>
Date: Sat, 21 May 2016 17:25:47 -0700 (PDT)

Emacs Lisp does not support multiple values for its Common Lisp
emulation.  OK, fine.

But that is not a reason for this kind of definition.

`cl-values-list' should at least raise an error if its arg is not a
list.  That too is part of the Common Lisp definition of `values-list':
"Should signal type-error if its argument is not a proper list."

(cl-values-list 5) should not return 5.  It should raise a wrong-type
arg error.

A comment in cl-lib.el says this:

;; cl-multiple-value-bind and friends simply expect the target form to
;; return the values as a list.

It is not enough that `cl-multiple-value-bind' and friends expect that.
They are not the only context in which `cl-value-list' can be used.
`cl-values-list' is a general function on a list, and it needs to check
its argument to ensure that it is a list.

In GNU Emacs 24.5.1 (i686-pc-mingw32)
 of 2015-04-11 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/usr --host=i686-pc-mingw32'