GNU bug report logs - #23597
24.5; `cl-values-list' should not be an alias for `identity'

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Sun, 22 May 2016 00:27:01 UTC

Severity: wishlist

Tags: fixed

Found in version 24.5

Fixed in version 27.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 23597 in the body.
You can then email your comments to 23597 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#23597; Package emacs. (Sun, 22 May 2016 00:27:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Drew Adams <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 22 May 2016 00:27:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.5; `cl-values-list' should not be an alias for `identity'
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'




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#23597; Package emacs. (Sun, 28 Jul 2019 12:16:02 GMT) Full text and rfc822 format available.

Message #8 received at 23597 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 23597 <at> debbugs.gnu.org
Subject: Re: bug#23597: 24.5; `cl-values-list' should not be an alias for
 `identity'
Date: Sun, 28 Jul 2019 14:15:31 +0200
Drew Adams <drew.adams <at> oracle.com> writes:

> 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.

I agree.

I've gone through the Emacs trunk to see whether tightening up the
definition would lead to any problems, but all the usages are on the
form

  (cl-multiple-value-bind (tree header tree-buffer)
      (cl-values-list (ebrowse-choose-tree))

which would already bug out if what's returned is not a list.

So I've now made this change on the trunk.  In the unlikely case that
this leads to problems with out-of-tree code, we should be open to
reverting it.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) fixed. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 28 Jul 2019 12:16:02 GMT) Full text and rfc822 format available.

bug marked as fixed in version 27.1, send any further explanations to 23597 <at> debbugs.gnu.org and Drew Adams <drew.adams <at> oracle.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 28 Jul 2019 12:16:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 26 Aug 2019 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 244 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.