GNU bug report logs - #80598
31.0.50; Should 'ensure-list' return a proper list?

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Philip Kaludercic <philipk@HIDDEN>; dated Thu, 12 Mar 2026 07:48:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 11:15:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 07:15:00 2026
Received: from localhost ([127.0.0.1]:53537 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1MxP-00080j-ME
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 07:15:00 -0400
Received: from mout01.posteo.de ([185.67.36.65]:45689)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <thievol@HIDDEN>)
 id 1w1MxN-0007ze-8Y
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 07:14:58 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 9A5D0240027
 for <80598 <at> debbugs.gnu.org>; Sat, 14 Mar 2026 12:14:50 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773486890; bh=Yf1kLxNuAFy68EBSAPztpxf+6icAJm4ekfQUmbelr/8=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Autocrypt:OpenPGP:From;
 b=pl4hAf79F0sq8eiaO+wTIe55k07GqhmzselIzPfmL2FXAgj0ZIadbxStZXEKXwPjd
 agSihSG5tLWawUbRMEDlh6RCtQpq5qeiLUSozSpFce5vb7rw4ULLsIUNRsTDbG0Iz3
 nS/DeOgY4wm/NisEQHyUmqiDSNDiZQCNaJzNv+KeJESThpokit2fPtFDgwTDLiyiHu
 zJb3e9twyzkuBfzrERMBRPC0vp86bjV7ML6SmxbjlNkhHuwJYGtMcLV/P48h6rP/mg
 KOftRP4jsPSlTiFkHApYb2ILK4T5lJ4xWmVBGqJq7Td6mW22/mPwPlKModeTzsybHq
 71RW07MWvJLXg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXzK51x1dz6trs;
 Sat, 14 Mar 2026 12:14:49 +0100 (CET)
From: Thierry Volpiatto <thievol@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <87fr62itwb.fsf@HIDDEN> (Philip Kaludercic's message of "Sat, 
 14 Mar 2026 10:32:05 +0000")
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
 <877brekcna.fsf@HIDDEN> <87sea2yci7.fsf@HIDDEN>
 <87wlzeivvr.fsf@HIDDEN> <87o6kqyb9e.fsf@HIDDEN>
 <87fr62itwb.fsf@HIDDEN>
Date: Sat, 14 Mar 2026 11:14:50 +0000
Message-ID: <87jyvey861.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Autocrypt: addr=thievol@HIDDEN; prefer-encrypt=mutual;
 keydata=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
 TgUq5UmBc7YZ0JYWQgPTbQ==
OpenPGP: url=https://posteo.de/keys/thievol@HIDDEN; preference=encrypt
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: Thierry Volpiatto <thievol@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Philip Kaludercic <philipk@HIDDEN> writes:

> Thierry Volpiatto <thievol@HIDDEN> writes:
>
>> Philip Kaludercic <philipk@HIDDEN> writes:
>>
>>> Thierry Volpiatto <thievol@HIDDEN> writes:
>>>
>>>> Philip Kaludercic <philipk@HIDDEN> writes:
>>>>
>>>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>>>
>>>>>>> From: Philip Kaludercic <philipk@HIDDEN>
>>>>>>> Cc: 80598 <at> debbugs.gnu.org
>>>>>>> Date: Fri, 13 Mar 2026 18:38:44 +0000
>>>>>>> 
>>>>>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>>>>> 
>>>>>>> > Well, mistakes are an opportunity to learn something, not necessarily
>>>>>>> > a reason to fix existing APIs.  And yes, the fact that listp returns
>>>>>>> > non-nil for cons cells is something people sometimes forget or maybe
>>>>>>> > don't expect, for reasons I personally find surprising.  It seems some
>>>>>>> > people think that a cons cell and a list are two different data types,
>>>>>>> > which they aren't.
>>>>>>> 
>>>>>>> The reason is that most people will think of lists as inductivly defined
>>>>>>> datastructures: A list is either nil, or a cons-cell where the cdr is a
>>>>>>> list.
>>>>>>
>>>>>> That's not how this works in Emacs, and the manuals go to great
>>>>>> lengths in explaining that.
>>>>>>
>>>>>> I think these expectations come from other Lispy environments.
>>>>>
>>>>> I know that isn't the case with Emacs or other Lisps, this is more the
>>>>> expectation of a functional programmer in a statically typed setting.
>>>>> But I actually just looked it up, and "list?" in Scheme does actually
>>>>> check if a list is well formed, but nevermind.
>>>>>
>>>>> Before I implement and document anything, are you OK with adding an
>>>>> optional argument to `ensure-list'?
>>>>
>>>> While you are at it, you would want to check as well if OBJECT is a
>>>> function?
>>>
>>> I am not sure what you mean, this behavior seems right to me:
>>>
>>>   (ensure-list #'foo) ;=> (foo)
>>>
>>> What might be confusing to the uninitiated is that double-quoting does
>>> nothing:
>>>
>>>   (ensure-list ''foo) ;=> 'foo
>>
>> I meant with quoted lambdas.
>
> My understanding is that quoting lambda expressions is not recommended
> anyway,

They are not recommended indeed but you will have some anyway in some
conditions. 

> so handling that as a special case doesn't sound like something we
> should do.  But I am open hear different opinions.

So I will still use what I use since years (helm-mklist) instead of ensure-list which
is unuseful as it is.

Thanks, sorry for the noise.

-- 
Thierry




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 10:32:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 06:32:16 2026
Received: from localhost ([127.0.0.1]:53096 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1MI3-0001NI-L7
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 06:32:16 -0400
Received: from mout02.posteo.de ([185.67.36.66]:48201)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <philipk@HIDDEN>)
 id 1w1MI0-0001MO-LF
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 06:32:13 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id D5631240101
 for <80598 <at> debbugs.gnu.org>; Sat, 14 Mar 2026 11:32:05 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773484325; bh=Dj27WoDLGN4BBhxILEfKJEu7qcDODgLTshqFAXda1jQ=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=U+gmh5YEuURnZPBM59cS+4HDfi7zCoZt2PKnGj0obe/fLva1e0twCKJs4Hl6CpOgr
 xIWJ1vhU0Wi9Worl1ndKbjGRVRiW6vAn0yNQ6i4hiANI8OtEbSTmZ+Dj+dRoBwoZWH
 wbkxJRhlaY/aVfTrohz4kWzbWttBhvrsEHlHAxY2DoLbLXrg5obj56f53XCYuIHRwj
 hb0SNjj3ssAFhAFi7cKVHA4oX+hhKLzCokdrknKKMyxv2sNCrahUbIAckEwuuPfcYE
 UWF8PiV6L+Vwb1m7q4Gcb08KcQwk8Tawedq2b/5vw670Ipar7LSwqnABvqN0AOrk12
 XKxkbXbg5/kZQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXyMn0x7Qz6twj;
 Sat, 14 Mar 2026 11:32:04 +0100 (CET)
From: Philip Kaludercic <philipk@HIDDEN>
To: Thierry Volpiatto <thievol@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <87o6kqyb9e.fsf@HIDDEN>
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
 <877brekcna.fsf@HIDDEN> <87sea2yci7.fsf@HIDDEN>
 <87wlzeivvr.fsf@HIDDEN> <87o6kqyb9e.fsf@HIDDEN>
OpenPGP: id=philipk@HIDDEN;
 url="https://keys.openpgp.org/vks/v1/by-email/philipk@HIDDEN";
 preference=signencrypt
Date: Sat, 14 Mar 2026 10:32:05 +0000
Message-ID: <87fr62itwb.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: Eli Zaretskii <eliz@HIDDEN>, 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Thierry Volpiatto <thievol@HIDDEN> writes:

> Philip Kaludercic <philipk@HIDDEN> writes:
>
>> Thierry Volpiatto <thievol@HIDDEN> writes:
>>
>>> Philip Kaludercic <philipk@HIDDEN> writes:
>>>
>>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>>
>>>>>> From: Philip Kaludercic <philipk@HIDDEN>
>>>>>> Cc: 80598 <at> debbugs.gnu.org
>>>>>> Date: Fri, 13 Mar 2026 18:38:44 +0000
>>>>>> 
>>>>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>>>> 
>>>>>> > Well, mistakes are an opportunity to learn something, not necessarily
>>>>>> > a reason to fix existing APIs.  And yes, the fact that listp returns
>>>>>> > non-nil for cons cells is something people sometimes forget or maybe
>>>>>> > don't expect, for reasons I personally find surprising.  It seems some
>>>>>> > people think that a cons cell and a list are two different data types,
>>>>>> > which they aren't.
>>>>>> 
>>>>>> The reason is that most people will think of lists as inductivly defined
>>>>>> datastructures: A list is either nil, or a cons-cell where the cdr is a
>>>>>> list.
>>>>>
>>>>> That's not how this works in Emacs, and the manuals go to great
>>>>> lengths in explaining that.
>>>>>
>>>>> I think these expectations come from other Lispy environments.
>>>>
>>>> I know that isn't the case with Emacs or other Lisps, this is more the
>>>> expectation of a functional programmer in a statically typed setting.
>>>> But I actually just looked it up, and "list?" in Scheme does actually
>>>> check if a list is well formed, but nevermind.
>>>>
>>>> Before I implement and document anything, are you OK with adding an
>>>> optional argument to `ensure-list'?
>>>
>>> While you are at it, you would want to check as well if OBJECT is a
>>> function?
>>
>> I am not sure what you mean, this behavior seems right to me:
>>
>>   (ensure-list #'foo) ;=> (foo)
>>
>> What might be confusing to the uninitiated is that double-quoting does
>> nothing:
>>
>>   (ensure-list ''foo) ;=> 'foo
>
> I meant with quoted lambdas.

My understanding is that quoting lambda expressions is not recommended
anyway, so handling that as a special case doesn't sound like something
we should do.  But I am open hear different opinions.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 10:08:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 06:08:17 2026
Received: from localhost ([127.0.0.1]:52807 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1Lup-0005w8-3W
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 06:08:17 -0400
Received: from mout01.posteo.de ([185.67.36.65]:53673)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <thievol@HIDDEN>)
 id 1w1Lui-0005tj-Tu
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 06:08:11 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 0321D240028
 for <80598 <at> debbugs.gnu.org>; Sat, 14 Mar 2026 11:08:03 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773482883; bh=qAXlmr6Pt9ChyJKPV9MInPCBb4vF3NF3LwiGJeI/qxw=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Autocrypt:OpenPGP:From;
 b=IOHOViUskfpZzPptTwFUg9g0L4L72LHVUMs+E/WI40QbM6thea/4IyJzZluV9pouy
 i4j5zZ447u2kEEedHKYxzWvGHuNvA6h6qDwGPm5fFWAq7KeDNA7/LO6pAI3IKNQy5g
 mcw3fPxhxyqIocVQPvVTLIT0j0hu6TbLv9AxiKRzEvlp2cZ/yxtbVv5AJd7sI2KC1z
 jSMEWX0IfS+RuwCC20O6K3eoGHTkGucgvVlUqlVYWj4KQU81oQ5wEyTEry5WFPb8Me
 ZhDPN6Ta3pfLfbLVJIY+eB9PDMEOTsg2L4bAlVbShUM7+EWszKBMkeRRpVsN6wgQ1v
 iRqMWxt+/QcEA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXxr11zFHz9rxL;
 Sat, 14 Mar 2026 11:08:01 +0100 (CET)
From: Thierry Volpiatto <thievol@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <87wlzeivvr.fsf@HIDDEN> (Philip Kaludercic's message of "Sat, 
 14 Mar 2026 09:49:13 +0000")
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
 <877brekcna.fsf@HIDDEN> <87sea2yci7.fsf@HIDDEN>
 <87wlzeivvr.fsf@HIDDEN>
Date: Sat, 14 Mar 2026 10:08:02 +0000
Message-ID: <87o6kqyb9e.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Autocrypt: addr=thievol@HIDDEN; prefer-encrypt=mutual;
 keydata=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
 TgUq5UmBc7YZ0JYWQgPTbQ==
OpenPGP: url=https://posteo.de/keys/thievol@HIDDEN; preference=encrypt
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: Thierry Volpiatto <thievol@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Philip Kaludercic <philipk@HIDDEN> writes:

> Thierry Volpiatto <thievol@HIDDEN> writes:
>
>> Philip Kaludercic <philipk@HIDDEN> writes:
>>
>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>
>>>>> From: Philip Kaludercic <philipk@HIDDEN>
>>>>> Cc: 80598 <at> debbugs.gnu.org
>>>>> Date: Fri, 13 Mar 2026 18:38:44 +0000
>>>>> 
>>>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>>> 
>>>>> > Well, mistakes are an opportunity to learn something, not necessarily
>>>>> > a reason to fix existing APIs.  And yes, the fact that listp returns
>>>>> > non-nil for cons cells is something people sometimes forget or maybe
>>>>> > don't expect, for reasons I personally find surprising.  It seems some
>>>>> > people think that a cons cell and a list are two different data types,
>>>>> > which they aren't.
>>>>> 
>>>>> The reason is that most people will think of lists as inductivly defined
>>>>> datastructures: A list is either nil, or a cons-cell where the cdr is a
>>>>> list.
>>>>
>>>> That's not how this works in Emacs, and the manuals go to great
>>>> lengths in explaining that.
>>>>
>>>> I think these expectations come from other Lispy environments.
>>>
>>> I know that isn't the case with Emacs or other Lisps, this is more the
>>> expectation of a functional programmer in a statically typed setting.
>>> But I actually just looked it up, and "list?" in Scheme does actually
>>> check if a list is well formed, but nevermind.
>>>
>>> Before I implement and document anything, are you OK with adding an
>>> optional argument to `ensure-list'?
>>
>> While you are at it, you would want to check as well if OBJECT is a
>> function?
>
> I am not sure what you mean, this behavior seems right to me:
>
>   (ensure-list #'foo) ;=> (foo)
>
> What might be confusing to the uninitiated is that double-quoting does
> nothing:
>
>   (ensure-list ''foo) ;=> 'foo
>
>

I meant with quoted lambdas.

-- 
Thierry




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 09:49:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 05:49:58 2026
Received: from localhost ([127.0.0.1]:52574 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1Ld7-0002vL-IA
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:49:58 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:37326)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w1Ld5-0002uG-IP
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:49:56 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1w1Ld0-0004X7-3a; Sat, 14 Mar 2026 05:49:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=E16eY1A17KWfdrZILPwn7+0hXz8D1BT8wCZGT3ZzXuo=; b=lOQl3aR5YJ4t
 v72i2Rn3+UwbrWGe1PwsVAKGZ0VIAwZeob0LvPzjl9g4Vl1dYkj+y2unbUrNIByPnyKMBsKi8k6uG
 /gsNjNPPNgxKzW3gfOh00IvV79tzWHPRW7DtgmYryXu/CC15bAZmjzFLHDBlOmKwymU5sr0gI+sqP
 sjcSCeeC4IeJJ3RVkOG6vZuVn011PUjRmxkO4yD879DDlN3AorsZG14OlKLADjmGalqsmPmA3/v8H
 WaEtN8Q71hraHhVOO1yy53VGm7AhldnavsYTKC/VptAXnCaXKiUtU6IJ1WNAJA2yRM5bsxpmroJKR
 EH3P6PFhHmPCu+kb1fjmJw==;
Date: Sat, 14 Mar 2026 11:49:47 +0200
Message-Id: <86bjgqbv0k.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>,
 Stefan Monnier <monnier@HIDDEN>,
 Sean Whitton <spwhitton@HIDDEN>
In-Reply-To: <877brekcna.fsf@HIDDEN> (message from Philip Kaludercic on
 Sat, 14 Mar 2026 09:01:51 +0000)
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
 <877brekcna.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Philip Kaludercic <philipk@HIDDEN>
> Cc: 80598 <at> debbugs.gnu.org
> Date: Sat, 14 Mar 2026 09:01:51 +0000
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >> From: Philip Kaludercic <philipk@HIDDEN>
> >> Cc: 80598 <at> debbugs.gnu.org
> >> Date: Fri, 13 Mar 2026 18:38:44 +0000
> >> 
> >> Eli Zaretskii <eliz@HIDDEN> writes:
> >> 
> >> > Well, mistakes are an opportunity to learn something, not necessarily
> >> > a reason to fix existing APIs.  And yes, the fact that listp returns
> >> > non-nil for cons cells is something people sometimes forget or maybe
> >> > don't expect, for reasons I personally find surprising.  It seems some
> >> > people think that a cons cell and a list are two different data types,
> >> > which they aren't.
> >> 
> >> The reason is that most people will think of lists as inductivly defined
> >> datastructures: A list is either nil, or a cons-cell where the cdr is a
> >> list.
> >
> > That's not how this works in Emacs, and the manuals go to great
> > lengths in explaining that.
> >
> > I think these expectations come from other Lispy environments.
> 
> I know that isn't the case with Emacs or other Lisps, this is more the
> expectation of a functional programmer in a statically typed setting.
> But I actually just looked it up, and "list?" in Scheme does actually
> check if a list is well formed, but nevermind.
> 
> Before I implement and document anything, are you OK with adding an
> optional argument to `ensure-list'?

I'm okay with that, but let's hear from others as well (CC'ed).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 09:49:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 05:49:24 2026
Received: from localhost ([127.0.0.1]:52564 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1LcZ-0002qC-Mf
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:49:24 -0400
Received: from mout01.posteo.de ([185.67.36.65]:35943)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <philipk@HIDDEN>)
 id 1w1LcV-0002oE-9z
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:49:21 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 775A6240029
 for <80598 <at> debbugs.gnu.org>; Sat, 14 Mar 2026 10:49:13 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773481753; bh=hXZ8HCYOZnYW6O8qdXRXvjXyetpW5zA1CI90qYw98no=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=SXYIAa+k9YIKI9Z6oeJuq+Ei6nPri0NMIukiSgAxQVCpC+J+5gyO8G4AFdIXfwzQr
 DwtWG6ehxnk6mmww/FHThcaA6jSNzwB73v7FD1hNLFRuQ9zR3HKoiL+AtkTiFcibjK
 wlXakp4Pr0je9+fegxSHXF56z2+VXFLPAae3TBW6ae08GJZJXT3BLCzM02HTlAxBj8
 E3p74cWD2DyHCMVW39VsRHfr15CQv/20IK27KzNHta5Wuuby8DS1P2AKDdNscKVjyd
 tJbFcJJ7DArexjcukqrKcSAbpuTi8QqCJ6182pivY4yaEZRXppVCC5fJtNvFlbT8BB
 mQvyQPTNeNmmA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXxQJ69b7z6trs;
 Sat, 14 Mar 2026 10:49:12 +0100 (CET)
From: Philip Kaludercic <philipk@HIDDEN>
To: Thierry Volpiatto <thievol@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <87sea2yci7.fsf@HIDDEN>
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
 <877brekcna.fsf@HIDDEN> <87sea2yci7.fsf@HIDDEN>
OpenPGP: id=philipk@HIDDEN;
 url="https://keys.openpgp.org/vks/v1/by-email/philipk@HIDDEN";
 preference=signencrypt
Date: Sat, 14 Mar 2026 09:49:13 +0000
Message-ID: <87wlzeivvr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: Eli Zaretskii <eliz@HIDDEN>, 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Thierry Volpiatto <thievol@HIDDEN> writes:

> Philip Kaludercic <philipk@HIDDEN> writes:
>
>> Eli Zaretskii <eliz@HIDDEN> writes:
>>
>>>> From: Philip Kaludercic <philipk@HIDDEN>
>>>> Cc: 80598 <at> debbugs.gnu.org
>>>> Date: Fri, 13 Mar 2026 18:38:44 +0000
>>>> 
>>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>> 
>>>> > Well, mistakes are an opportunity to learn something, not necessarily
>>>> > a reason to fix existing APIs.  And yes, the fact that listp returns
>>>> > non-nil for cons cells is something people sometimes forget or maybe
>>>> > don't expect, for reasons I personally find surprising.  It seems some
>>>> > people think that a cons cell and a list are two different data types,
>>>> > which they aren't.
>>>> 
>>>> The reason is that most people will think of lists as inductivly defined
>>>> datastructures: A list is either nil, or a cons-cell where the cdr is a
>>>> list.
>>>
>>> That's not how this works in Emacs, and the manuals go to great
>>> lengths in explaining that.
>>>
>>> I think these expectations come from other Lispy environments.
>>
>> I know that isn't the case with Emacs or other Lisps, this is more the
>> expectation of a functional programmer in a statically typed setting.
>> But I actually just looked it up, and "list?" in Scheme does actually
>> check if a list is well formed, but nevermind.
>>
>> Before I implement and document anything, are you OK with adding an
>> optional argument to `ensure-list'?
>
> While you are at it, you would want to check as well if OBJECT is a
> function?

I am not sure what you mean, this behavior seems right to me:

  (ensure-list #'foo) ;=> (foo)

What might be confusing to the uninitiated is that double-quoting does
nothing:

  (ensure-list ''foo) ;=> 'foo




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 09:41:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 05:41:20 2026
Received: from localhost ([127.0.0.1]:52533 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1LUk-0007AR-JG
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:41:20 -0400
Received: from mout01.posteo.de ([185.67.36.65]:42113)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <thievol@HIDDEN>)
 id 1w1LUh-00078g-9t
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:41:16 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 5CEF5240028
 for <80598 <at> debbugs.gnu.org>; Sat, 14 Mar 2026 10:41:08 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773481268; bh=yaHmmOD87Bn08SYZ9mGDhpSvrM1AlUM7thQhs0GhPEc=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Autocrypt:OpenPGP:From;
 b=OlYUPv2u0BUGhrW1M9pDf+nTsbw3DAGv3vtbJMbygFS3MEndEny+oBpOG/3/Ojwea
 1OO4An6lEu5MG41ITqIlPrK0Kq8H8gadF2reieZ0xPRmdPQ+PB1WWKqJuQ5S8Cevg1
 wwLP6+aPcqyjtsBGkH9f54VA+f3HTRj5r/Og8HXXuHHeG48uxxpQ1mDNcb1KIjvT8n
 EPZPz84ZsdPk+2aP+DbN/pBDZ+HB12vzXkT1tNa+ZJdvVxuqj75KV1Lkjig1ZnCq8Q
 jnUp8oJ/jR1pCaPOKlhV08CK1Prz4c3YPsRt/VXUex0WmzF+nFGsDfj9ebS5QsaOj6
 bUWN4j6J1c/wg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXxDz1wjkz6tvq;
 Sat, 14 Mar 2026 10:41:07 +0100 (CET)
From: Thierry Volpiatto <thievol@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <877brekcna.fsf@HIDDEN> (Philip Kaludercic's message of "Sat, 
 14 Mar 2026 09:01:51 +0000")
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
 <877brekcna.fsf@HIDDEN>
Date: Sat, 14 Mar 2026 09:41:08 +0000
Message-ID: <87sea2yci7.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Autocrypt: addr=thievol@HIDDEN; prefer-encrypt=mutual;
 keydata=xsDNBF8ylcIBDADG+hy+zR6L4/vbdDDZuSaMmSrU3A5QZJpeBCvxTr7MpzzruZbhLPW1K3R6N2MA
 edi8Y+C8o27FVRIjpdbaKMGu9je7JV/TbUQYo3SOwCK1vM4LUn4V6ZLzSYkuiEt4eyMoiDdyvN0p
 kcK6P9x9DCetcEVszXzQg+yzCVrQ2hXWDXWT4M18EC3wtO7RHPouMqGiwBFhBAYErCqFWFxQHkfb
 tG/4yGyJ58rglb65O3qijjMWvYwcWZun9/7qm8Z4/4mHopmo2zgU+OrptnLSZfkZGz3Y7Uf452xQ
 GVq0Fv75NPvQru7y+DYVhuVXXyAmGxt+vf4rIiixMBbhKEPjcxEPAa2LTzex2IsTZR+QVG9uDnqC
 WcgaOEQ58fzXNvNhtwwF/Rgio2XWAJVdmFWS59/k9W58CIUSNKBMZh2XeGdEmtHvDtCxW3z6FJha
 36RzOM3fMNNiAGdFZJA84gcdloJR+sHCDTTPT3784fjr+V8An7sI581NGFzkRQqPvEQCZbUAEQEA
 Ac0SdGhpZXZvbEBwb3N0ZW8ubmV0wsEOBBMBCgA4AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheA
 FiEEI9twfRN7r3nig/xwDsVtFB0W75MFAmL3HCoACgkQDsVtFB0W75OVEAv/f6XxmtIFz08fUb8h
 Bp/zJP6IC4/rhhh+0GMRIRzLN8DK0jV8JCzYdFHiRJOy2lNIOpmrrCmjRRxferc2G42+ePFIsslx
 hU46VSz1Z83NwIG3mpdYNV5WUTUdgzxExHTNTFCd7NKv0nlHKQaAtdXm5bYnSHsnL7cx8z7lukA/
 EsJocE+GD7QXnsrdlicvdobI0TEN4l73221a72oCvHfYLCVsB6YsNJ5ZGkA1zSjzln5uLAgZ/2r/
 aqlao/AlSZkAk6+hvK0RyAZ/YR4YRZxO8Fsd0gWgFkanRfKfufJ1V0OHZg7yszi3q/hRzS+rZtJ0
 OuzDlh/dyQkxVkZb9vis/+HnGDJrBE5MsmJLcy2Sy3uUnio0fq8q9CrZbudvd1DajlZxPzTm0csP
 eUk45QEgbhEU7MfyAX/mkKxjHajz2cMcHKIap1BqEgJl4BKFeLMcBZ4O1p9ivwtf1Ht2JTp5lOi0
 ItPfhQ4DP8LZ1ZIkN5Kg9v0cyw9meRzAuuR0V2GtzsDNBF8ylcIBDADnIDHEkmk4lUwTlOhwb2yj
 UfmGPnpH3MCCHkjM9H/P1gTHxFWtwFVPcNMCwXWvKSBTF2dZXKERD0yzG06zT53ZMN7EIIeuY6m4
 R8IcMvpohciisWxbFoB4ZY117tVSeqjo946itgbpdeESKl9a8dpn7ytZMyYxPdojlQAqxeAJ8444
 raESh1oTKXb64hlk4l2pSRlrLgjpJBo8asAfZndaxIUKhw68tV8sqeZh9P6cGtHbUELKVJqefNV7
 V7jF5wf3xvRG6Ces3kSKXalLfs+vrVaoOjQeWrc0AtwFWHmt9JLfKrqF+Q2Q7jUidboWmazQM56E
 SJFPpPHmWq8k6DHspsFHOforLouTHJL1556IPne7IV2BGfWc0+xLxalZ8F5F+vnPF/OkrC1CD5iC
 KTjXKa2iZbcYdYQAiL6P8Ac8CgN6EkhpbxRtzrEgChuNGevdi/G/GHG4Zqrh6YFwIa/NHq2aVaFq
 5C1yNTMJd1FRjRzs5JPPlJKpYDnNx+MSp7UAEQEAAcLA9gQYAQoAIAIbDBYhBCPbcH0Te6954oP8
 cA7FbRQdFu+TBQJi9x1ZAAoJEA7FbRQdFu+To6QMAIcvUSiFwCIggxkmYy3ZY0QAMLmIPga8DNPM
 XbfSOBDb2KLGBd+FAA8p2GExpul4r6kOYnGogtojByHmVgrd30/3ZURTM8Vj51wwD05viMZccQHl
 Wd9J/qZIvhBJlJWYnwVxh+2Kg4/hkx7SGc7JJS5GS37+PFQOJHPGMxc+fe4Ty2FdjIOVf3P1Hov9
 K6yBI7Af66qqcL3aKJ4jJidRYN8sMaKOqEu4rcSpTxp8/3Ddbs9HezUgXeUzOLJMcEYFlvCyC8ZS
 l/QDZmpobKbxZ1JAqZM8lnmcZYSV7OsWnxJIYDV1gH5LTLj7bGswXaB4B+qkckihWkRZixu8q1IK
 0c/xwUzyF092uFRM/sQKrSmnwA1+hQiiIuEl4XVz5li0/TmMta3ijUM7GNbl2IjioTRxWWecwad1
 mNHvKTcXPsKDAbHFdLvQzurnroBHQV0jSPNLTP5Suo7RnLbehfg5INpGjToCUlrd2qQqgXW7h5qZ
 TgUq5UmBc7YZ0JYWQgPTbQ==
OpenPGP: url=https://posteo.de/keys/thievol@HIDDEN; preference=encrypt
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: Eli Zaretskii <eliz@HIDDEN>, 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Philip Kaludercic <philipk@HIDDEN> writes:

> Eli Zaretskii <eliz@HIDDEN> writes:
>
>>> From: Philip Kaludercic <philipk@HIDDEN>
>>> Cc: 80598 <at> debbugs.gnu.org
>>> Date: Fri, 13 Mar 2026 18:38:44 +0000
>>> 
>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>> 
>>> > Well, mistakes are an opportunity to learn something, not necessarily
>>> > a reason to fix existing APIs.  And yes, the fact that listp returns
>>> > non-nil for cons cells is something people sometimes forget or maybe
>>> > don't expect, for reasons I personally find surprising.  It seems some
>>> > people think that a cons cell and a list are two different data types,
>>> > which they aren't.
>>> 
>>> The reason is that most people will think of lists as inductivly defined
>>> datastructures: A list is either nil, or a cons-cell where the cdr is a
>>> list.
>>
>> That's not how this works in Emacs, and the manuals go to great
>> lengths in explaining that.
>>
>> I think these expectations come from other Lispy environments.
>
> I know that isn't the case with Emacs or other Lisps, this is more the
> expectation of a functional programmer in a statically typed setting.
> But I actually just looked it up, and "list?" in Scheme does actually
> check if a list is well formed, but nevermind.
>
> Before I implement and document anything, are you OK with adding an
> optional argument to `ensure-list'?

While you are at it, you would want to check as well if OBJECT is a
function?

-- 
Thierry




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 09:02:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 05:02:00 2026
Received: from localhost ([127.0.0.1]:52198 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1Ksh-0000fn-RI
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:02:00 -0400
Received: from mout01.posteo.de ([185.67.36.65]:48801)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <philipk@HIDDEN>)
 id 1w1Ksf-0000eg-SR
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 05:01:58 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id B5C5C240027
 for <80598 <at> debbugs.gnu.org>; Sat, 14 Mar 2026 10:01:51 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773478911; bh=XAORX2TuXBGA/yW7jWi530jE2ADsfR0MVjy1OnIaoi0=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=lDs+PeeJ7vFbG83/Tn62UrmKxSxU6tclmkcRmPx2d352znpHx3B+v/LKPbz+PMLCu
 CvvfVqBCQ+aGCyPJgwIzNxEtgKF7HDLLG3MnU9G+x7pm9UvR+6OOPKqjb90+IBZLIr
 QLa5/nyDPAPWpMdMC5HRFlhwPjTFvzEstt/rfmJIoaR/+x3MlzUIR3TRtXSDfaTOs/
 FhbUXpA9UTgNTMxUX/okhD7UieuvOzY3SzpsTc94o6Fabfcm4d05sl4rYEFVmStnJS
 XmQWeIW1WJ7oxegmjIgjH65pcx0COvtglRq1GX39A5CQeHd0LiI9NbZQ91kqw60sZD
 Spr34lpgcGj7w==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXwMf6YpHz9rxK;
 Sat, 14 Mar 2026 10:01:50 +0100 (CET)
From: Philip Kaludercic <philipk@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <86sea2c04j.fsf@HIDDEN>
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN> <86sea2c04j.fsf@HIDDEN>
OpenPGP: id=philipk@HIDDEN;
 url="https://keys.openpgp.org/vks/v1/by-email/philipk@HIDDEN";
 preference=signencrypt
Date: Sat, 14 Mar 2026 09:01:51 +0000
Message-ID: <877brekcna.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Philip Kaludercic <philipk@HIDDEN>
>> Cc: 80598 <at> debbugs.gnu.org
>> Date: Fri, 13 Mar 2026 18:38:44 +0000
>> 
>> Eli Zaretskii <eliz@HIDDEN> writes:
>> 
>> > Well, mistakes are an opportunity to learn something, not necessarily
>> > a reason to fix existing APIs.  And yes, the fact that listp returns
>> > non-nil for cons cells is something people sometimes forget or maybe
>> > don't expect, for reasons I personally find surprising.  It seems some
>> > people think that a cons cell and a list are two different data types,
>> > which they aren't.
>> 
>> The reason is that most people will think of lists as inductivly defined
>> datastructures: A list is either nil, or a cons-cell where the cdr is a
>> list.
>
> That's not how this works in Emacs, and the manuals go to great
> lengths in explaining that.
>
> I think these expectations come from other Lispy environments.

I know that isn't the case with Emacs or other Lisps, this is more the
expectation of a functional programmer in a statically typed setting.
But I actually just looked it up, and "list?" in Scheme does actually
check if a list is well formed, but nevermind.

Before I implement and document anything, are you OK with adding an
optional argument to `ensure-list'?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 14 Mar 2026 07:59:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 14 03:59:45 2026
Received: from localhost ([127.0.0.1]:51799 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w1JuQ-0007QK-OJ
	for submit <at> debbugs.gnu.org; Sat, 14 Mar 2026 03:59:45 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:45706)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w1JuL-0007PG-HJ
 for 80598 <at> debbugs.gnu.org; Sat, 14 Mar 2026 03:59:39 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1w1JuF-0007Tc-AS; Sat, 14 Mar 2026 03:59:31 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=mr4/QIk+Wbt0LAmMmGt+0TysgUvt3i9jwMrYqkzGWZI=; b=Sinr2WTmmc97
 crQakEB/y/DIKrY9CIYcMYK/Hiji6RCaKvLUvmW28HHsnr4gOqCHNRMf2oXk88LXq0zN/mWmWR25x
 KJubhcuwkewcIaHLmXELynsPwIQZ4+5JRIAQ7cuvkAwcmd6GbFFNu2bdt/A+vrzWVjW0b5RYDsP8j
 q79LgSwihJcJdrgdZwAf/B5t29ujaBXYhJErVXmnaSYX9RbxJ9QpssQHLDBfRTLR3zO+9d/31yADK
 rW7s8G07filhjnxZeWS18dZU4Zsf8AxoN2O+zjUKDA9oQK+CXbEYAqqyzLJ3RmOC2ZAVDdDZY2saS
 WWMeLHHg1X+lcFocP/uizw==;
Date: Sat, 14 Mar 2026 09:59:24 +0200
Message-Id: <86sea2c04j.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>
In-Reply-To: <871phnefrg.fsf@HIDDEN> (message from Philip Kaludercic on
 Fri, 13 Mar 2026 18:38:44 +0000)
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
 <871phnefrg.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Philip Kaludercic <philipk@HIDDEN>
> Cc: 80598 <at> debbugs.gnu.org
> Date: Fri, 13 Mar 2026 18:38:44 +0000
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > Well, mistakes are an opportunity to learn something, not necessarily
> > a reason to fix existing APIs.  And yes, the fact that listp returns
> > non-nil for cons cells is something people sometimes forget or maybe
> > don't expect, for reasons I personally find surprising.  It seems some
> > people think that a cons cell and a list are two different data types,
> > which they aren't.
> 
> The reason is that most people will think of lists as inductivly defined
> datastructures: A list is either nil, or a cons-cell where the cdr is a
> list.

That's not how this works in Emacs, and the manuals go to great
lengths in explaining that.

I think these expectations come from other Lispy environments.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 13 Mar 2026 18:38:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 13 14:38:58 2026
Received: from localhost ([127.0.0.1]:47353 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w17PU-0007rt-Lq
	for submit <at> debbugs.gnu.org; Fri, 13 Mar 2026 14:38:58 -0400
Received: from mout02.posteo.de ([185.67.36.66]:34005)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <philipk@HIDDEN>)
 id 1w17PP-0007qE-Ps
 for 80598 <at> debbugs.gnu.org; Fri, 13 Mar 2026 14:38:55 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 5BF7D240101
 for <80598 <at> debbugs.gnu.org>; Fri, 13 Mar 2026 19:38:44 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773427124; bh=yHXIVxdKksuOxgeiv6L6yo/6eVCXj8GQ7Yz52AWMFL4=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=J+Ad9ySoLS1XLZU1VA1xk8xlqaO+P3zQFm8NArrNKAAsZPTo+esbxGyrSu6Ek5kza
 6VpXZtgbAqcLVFN5gYWidUNdU00Gig/bEdEbKmhc5BY/g25Zz2Ah+GGA8qeb0TXwlS
 ke/W2fMmONoSuEW/9kMJQ559s+kOyOZo9D8jDRCuhJMT6IqIdKWWTp6XifkK6pZQ3S
 ULBj3wh7O8Uz7nCSa3cnV5ZoSfWWuSzsfWthsbpCpuyTzXR3EalKZbWMsOi6cKM1pn
 GaMMrRvHq5V9bSFxzKccKk4S+C9Z2bn+oVSYCxyUs437YjMjNqOdGdMofea0ZW1fCJ
 KGFjC7SNXjR/A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fXYCl5DjTz6tvq;
 Fri, 13 Mar 2026 19:38:43 +0100 (CET)
From: Philip Kaludercic <philipk@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <868qbwdw08.fsf@HIDDEN>
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN> <868qbwdw08.fsf@HIDDEN>
OpenPGP: id=philipk@HIDDEN;
 url="https://keys.openpgp.org/vks/v1/by-email/philipk@HIDDEN";
 preference=signencrypt
Date: Fri, 13 Mar 2026 18:38:44 +0000
Message-ID: <871phnefrg.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Philip Kaludercic <philipk@HIDDEN>
>> Cc: 80598 <at> debbugs.gnu.org
>> Date: Thu, 12 Mar 2026 20:06:44 +0000
>> 
>> Eli Zaretskii <eliz@HIDDEN> writes:
>> 
>> >> From: Philip Kaludercic <philipk@HIDDEN>
>> >> Date: Thu, 12 Mar 2026 07:47:02 +0000
>> >> 
>> >> 
>> >> I was surprised to realize that
>> >> 
>> >>   (ensure-list '(a . b)) ;=> (a . b)
>> >> 
>> >> Would it make more sense to check if the argument satisfies
>> >> `proper-list-p', and return ((a . b)) instead?
>> >
>> > That'd be a breaking change, no?
>> 
>> If we were to change proper-list-p, then yes, but that is not the only
>> option.  Clarifying that are not talking about proper lists in the
>> docstring might be a compromise position, and/or adding a
>> ensure-proper-list function.
>
> Existing code could rely on ensure-list returning cons cells
> unchanged.  Adding a new function or adding a new optional argument to
> ensure-list is okay, but changing what ensure-list does
> unconditionally is not, IMO.

I think that adding an optional PROPER-LIST argument would be a nice solution.

>> > Why wasn't '(a . b) good enough in your case?
>> 
>> I tripped over this in `package-maintainers', where I the :maintainer
>> field of a package description is either a cons-cell (NAME . EMAIL) or a
>> list of these entries.  I wanted to use `ensure-list' to normalize this,
>> but it didn't do what I wanted.  Of course one can work around it, but I
>> am assuming I am not the only person who will ever make this mistake.
>
> Well, mistakes are an opportunity to learn something, not necessarily
> a reason to fix existing APIs.  And yes, the fact that listp returns
> non-nil for cons cells is something people sometimes forget or maybe
> don't expect, for reasons I personally find surprising.  It seems some
> people think that a cons cell and a list are two different data types,
> which they aren't.

The reason is that most people will think of lists as inductivly defined
datastructures: A list is either nil, or a cons-cell where the cdr is a
list.  I don't think that there is an inherent reason why listp checking
only for cons or nil is the correct implementation.  It approximates
proper lists for performance reasons, but it could have also actually
tried to determine if a list is well-formed.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 13 Mar 2026 07:33:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 13 03:33:31 2026
Received: from localhost ([127.0.0.1]:43357 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w0x1U-0006kc-EE
	for submit <at> debbugs.gnu.org; Fri, 13 Mar 2026 03:33:31 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:34442)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w0x1R-0006jD-1S
 for 80598 <at> debbugs.gnu.org; Fri, 13 Mar 2026 03:33:26 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1w0x1L-0002GZ-1V; Fri, 13 Mar 2026 03:33:19 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=RLwKPHkO+qAvasvy0/50AR8GEUQ+fg8YuSjTFWVNX+g=; b=Uws56nglllXV
 5OFIu5tA+PxlxE/G+XvN4xcPzL3Bu4GJfBjMcOWemGcM2x10e9F5cGVebuLcai2ax1vLTvMnDqKAb
 1aOGJMSE4fORXThpdFKeTrAC1eQDjwORTCu+brB+ic9vgC8XTdQ/yt5DbS7d+nEANmnnhb3fs3zDc
 NgaBE99lstUagoDPmtv8UPzjxtCDIRVktNFGnx0TPYlEPw8+ZzUbqwnAmWYQrSb2buYdOhiZOpdIB
 WiTx1h7+/D8jf81fpO+q6GlNc0r2h1kurjMyOyQB/n51k70blr+AWXOETzEat0Gw0dANV2a47sScf
 MD2dgjibYDdJb/Vi1747YQ==;
Date: Fri, 13 Mar 2026 09:33:11 +0200
Message-Id: <868qbwdw08.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>
In-Reply-To: <87jyvgersc.fsf@HIDDEN> (message from Philip Kaludercic on
 Thu, 12 Mar 2026 20:06:44 +0000)
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
 <87jyvgersc.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Philip Kaludercic <philipk@HIDDEN>
> Cc: 80598 <at> debbugs.gnu.org
> Date: Thu, 12 Mar 2026 20:06:44 +0000
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >> From: Philip Kaludercic <philipk@HIDDEN>
> >> Date: Thu, 12 Mar 2026 07:47:02 +0000
> >> 
> >> 
> >> I was surprised to realize that
> >> 
> >>   (ensure-list '(a . b)) ;=> (a . b)
> >> 
> >> Would it make more sense to check if the argument satisfies
> >> `proper-list-p', and return ((a . b)) instead?
> >
> > That'd be a breaking change, no?
> 
> If we were to change proper-list-p, then yes, but that is not the only
> option.  Clarifying that are not talking about proper lists in the
> docstring might be a compromise position, and/or adding a
> ensure-proper-list function.

Existing code could rely on ensure-list returning cons cells
unchanged.  Adding a new function or adding a new optional argument to
ensure-list is okay, but changing what ensure-list does
unconditionally is not, IMO.

> > Why wasn't '(a . b) good enough in your case?
> 
> I tripped over this in `package-maintainers', where I the :maintainer
> field of a package description is either a cons-cell (NAME . EMAIL) or a
> list of these entries.  I wanted to use `ensure-list' to normalize this,
> but it didn't do what I wanted.  Of course one can work around it, but I
> am assuming I am not the only person who will ever make this mistake.

Well, mistakes are an opportunity to learn something, not necessarily
a reason to fix existing APIs.  And yes, the fact that listp returns
non-nil for cons cells is something people sometimes forget or maybe
don't expect, for reasons I personally find surprising.  It seems some
people think that a cons cell and a list are two different data types,
which they aren't.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 12 Mar 2026 20:06:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 12 16:06:57 2026
Received: from localhost ([127.0.0.1]:38864 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w0mJ6-0002FY-Py
	for submit <at> debbugs.gnu.org; Thu, 12 Mar 2026 16:06:57 -0400
Received: from mout01.posteo.de ([185.67.36.65]:57415)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <philipk@HIDDEN>)
 id 1w0mJ2-0002E2-CT
 for 80598 <at> debbugs.gnu.org; Thu, 12 Mar 2026 16:06:54 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 5A630240027
 for <80598 <at> debbugs.gnu.org>; Thu, 12 Mar 2026 21:06:45 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773346005; bh=lgf3ohSb4FxILyD1gfM05DXZs4Gon6jdWr+JdmpXAB0=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=GAgt+8EzCAfP33eOOmbhMCXyxpd9sAtrkswMN3IivvnRX5AzFjEiMt6kxP950THfQ
 ONYejtxxpFIFLoDr+R5PPBSNGFBwbjFitY9XasVscaU7rjgP/SjU0gYUN9fdy6eY9Z
 JWPzuzi7icoXmMGhaN3R8GyfsooMDXe58T1OMXJ6gDUExGeNewHqn9axD5Ghhip9ZG
 5xnJSyW0e7IbfLx+WFh8BEgALirU3IWc4E6gyYAu1iMnIDS7tQ90aa1JeERKExmLcR
 xwMD+12+dZJ6stO4G8MYJzTqCG59iz6edfhhY/AzvgTF4KxJOxlchsrdcJwyjRUZFN
 SuO2VBv1S2EDQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fWzCm2dgxz6tsb;
 Thu, 12 Mar 2026 21:06:44 +0100 (CET)
From: Philip Kaludercic <philipk@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <86pl59earm.fsf@HIDDEN>
References: <87fr65jxqi.fsf@HIDDEN> <86pl59earm.fsf@HIDDEN>
OpenPGP: id=philipk@HIDDEN;
 url="https://keys.openpgp.org/vks/v1/by-email/philipk@HIDDEN";
 preference=signencrypt
Date: Thu, 12 Mar 2026 20:06:44 +0000
Message-ID: <87jyvgersc.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.6 (/)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.6 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Philip Kaludercic <philipk@HIDDEN>
>> Date: Thu, 12 Mar 2026 07:47:02 +0000
>> 
>> 
>> I was surprised to realize that
>> 
>>   (ensure-list '(a . b)) ;=> (a . b)
>> 
>> Would it make more sense to check if the argument satisfies
>> `proper-list-p', and return ((a . b)) instead?
>
> That'd be a breaking change, no?

If we were to change proper-list-p, then yes, but that is not the only
option.  Clarifying that are not talking about proper lists in the
docstring might be a compromise position, and/or adding a
ensure-proper-list function.

> Why wasn't '(a . b) good enough in your case?

I tripped over this in `package-maintainers', where I the :maintainer
field of a package description is either a cons-cell (NAME . EMAIL) or a
list of these entries.  I wanted to use `ensure-list' to normalize this,
but it didn't do what I wanted.  Of course one can work around it, but I
am assuming I am not the only person who will ever make this mistake.

Sean Whitton <spwhitton@HIDDEN> writes:

> Philip Kaludercic [12/Mar  7:47am GMT] wrote:
>> I was surprised to realize that
>>
>>   (ensure-list '(a . b)) ;=> (a . b)
>>
>> Would it make more sense to check if the argument satisfies
>> `proper-list-p', and return ((a . b)) instead?
>
> Having it the way it is ensures that it will be constant time.
>
> A theoretical ensure-proper-list is linear time.

No disagreement here.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 12 Mar 2026 09:35:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 12 05:35:54 2026
Received: from localhost ([127.0.0.1]:33205 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w0cSP-0006cW-Ek
	for submit <at> debbugs.gnu.org; Thu, 12 Mar 2026 05:35:54 -0400
Received: from sendmail.purelymail.com ([34.202.193.197]:51386)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>)
 id 1w0cSL-0006aJ-3c
 for 80598 <at> debbugs.gnu.org; Thu, 12 Mar 2026 05:35:50 -0400
DKIM-Signature: a=rsa-sha256;
 b=RaMoucFQes3Z1R9nXES6tVcHxvSXXRKHOExivblkh3SyLpRtz4n9f73ExFMxTkdV/Qc9dPj3jRKAK0ES+qqCyycv7mGn96sj8VK6W8CK16HnRrCry1U3SOuFR38Com6pBnAIZizqMRQLCl6BHBaMC5UjB0N9pXcEgpvztBZF6FjQas5WoyqzNB/5eYymrevM5cm9AHRuUG0ibA+/LPc78I2oXxZGBnpcK1j90faQ1bWV+l5B9hyXwFbMb+TrlretSEuRQqdX1vuUpF6BtYuPvT3spBW7c4yBml4im93p1XopSIg1uIZwB7fknyaY0jscwqWlCu1JsYMOieynIsKgWw==;
 s=purelymail2; d=spwhitton.name; v=1;
 bh=pjC73VV4YN2OAKUcpCSF8ZYBrH4tDw0YNHUqPOaT8cU=;
 h=Received:Received:From:To:Subject:Date; 
DKIM-Signature: a=rsa-sha256;
 b=obH06Djhx1JWovfz31YlkZb/BgBiUIneb9riHW/txrWNS+bYfTu8kBuTJsti/sdSduPSJs0y24oBue8fwIL+s3qt23rTc7RlN+iArQRSgjmFi+jjPQ8RK3OKSsynA9deDeYjNz4wOXlD40l+l0qii71jtCODsBeuE9g+KZe+PqS1WXQH4fHvVv+YkHzR2KgchT9QEnZd0bqy7JmlLlfasZvySIG68R+gs1v09XUpXwpcPFQQ/pDaeULB6fdHiEBt7UJKPgiKyr/y+sgABhMryGWYW0EwQicWF79DKlh8i8wB+Tf+iTR2dV7VviI8JR3XBCDzW9gPTbtQRdKMCFqMeg==;
 s=purelymail2; d=purelymail.com; v=1;
 bh=pjC73VV4YN2OAKUcpCSF8ZYBrH4tDw0YNHUqPOaT8cU=;
 h=Feedback-ID:Received:Received:From:To:Subject:Date; 
Feedback-ID: 20115:3760:null:purelymail
X-Pm-Original-To: 80598 <at> debbugs.gnu.org
Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1568932311; 
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Thu, 12 Mar 2026 09:35:41 +0000 (UTC)
Received: by melete.silentflame.com (Postfix, from userid 1000)
 id 65CDC7E03FF; Thu, 12 Mar 2026 09:35:39 +0000 (GMT)
From: Sean Whitton <spwhitton@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>, 80598 <at> debbugs.gnu.org
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
In-Reply-To: <87fr65jxqi.fsf@HIDDEN>
References: <87fr65jxqi.fsf@HIDDEN>
Date: Thu, 12 Mar 2026 09:35:39 +0000
Message-ID: <87a4wdmluc.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.7 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview: Philip Kaludercic [12/Mar 7:47am GMT] wrote: > I was
 surprised
 to realize that > > (ensure-list '(a . b)) ;=> (a . b) > > Would it make
 more sense to check if the argument satisfies > `proper-list-p', [...] 
 Content analysis details:   (1.7 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.9 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [34.202.193.197 listed in sa-trusted.bondedsender.org]
 0.8 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [34.202.193.197 listed in bl.score.senderscore.com]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
X-Debbugs-Envelope-To: 80598
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.7 (/)

Philip Kaludercic [12/Mar  7:47am GMT] wrote:
> I was surprised to realize that
>
>   (ensure-list '(a . b)) ;=> (a . b)
>
> Would it make more sense to check if the argument satisfies
> `proper-list-p', and return ((a . b)) instead?

Having it the way it is ensures that it will be constant time.

A theoretical ensure-proper-list is linear time.

-- 
Sean Whitton




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at 80598 <at> debbugs.gnu.org:


Received: (at 80598) by debbugs.gnu.org; 12 Mar 2026 08:03:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 12 04:03:24 2026
Received: from localhost ([127.0.0.1]:60881 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w0b0t-0000C6-Ow
	for submit <at> debbugs.gnu.org; Thu, 12 Mar 2026 04:03:24 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:43108)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w0b0k-00009n-Ta
 for 80598 <at> debbugs.gnu.org; Thu, 12 Mar 2026 04:03:16 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1w0b0f-000335-Iz; Thu, 12 Mar 2026 04:03:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=nct+do9ACzEC2bi+P2DeoZKceQOdX73Z6R2+FCU6Ir8=; b=rYWHaLde2IxX
 gwUP0CQ30IWSrKYnANk93h/OzAUb78fWcj5GEhPKa1N9EfyWynMPB9FHrkCOZdaN17KEHCCk/Flnv
 /oC1iiizkh5k4yMWiqThoiRPnes6D4IS3mWyoKrFzIug3bPt65/DRscgT5erNQBPjp7XTXExRPasV
 53pKtFj05lnBkIWYqmeJYdBaRkzhR5PhG67yBZuUXmriqI+74lRpTvz8MohwIvzm8v8LEH8WFghfW
 zxtK2YBFgAqBbAlhQK61dRzSwUEGIVG10A4gusUghI6d0E6K9rbre/B+6bL50pE/6mvh23AYP3RL2
 kAVGKWlzAgLvuXwOY9/TdA==;
Date: Thu, 12 Mar 2026 10:02:05 +0200
Message-Id: <86pl59earm.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Philip Kaludercic <philipk@HIDDEN>
In-Reply-To: <87fr65jxqi.fsf@HIDDEN> (message from Philip Kaludercic on
 Thu, 12 Mar 2026 07:47:02 +0000)
Subject: Re: bug#80598: 31.0.50; Should 'ensure-list' return a proper list?
References: <87fr65jxqi.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80598
Cc: 80598 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Philip Kaludercic <philipk@HIDDEN>
> Date: Thu, 12 Mar 2026 07:47:02 +0000
> 
> 
> I was surprised to realize that
> 
>   (ensure-list '(a . b)) ;=> (a . b)
> 
> Would it make more sense to check if the argument satisfies
> `proper-list-p', and return ((a . b)) instead?

That'd be a breaking change, no?

Why wasn't '(a . b) good enough in your case?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 12 Mar 2026 07:47:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 12 03:47:17 2026
Received: from localhost ([127.0.0.1]:60742 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w0alI-00068t-NJ
	for submit <at> debbugs.gnu.org; Thu, 12 Mar 2026 03:47:17 -0400
Received: from lists.gnu.org ([2001:470:142::17]:57228)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <philipk@HIDDEN>)
 id 1w0alF-00067s-Pm
 for submit <at> debbugs.gnu.org; Thu, 12 Mar 2026 03:47:14 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philipk@HIDDEN>)
 id 1w0alA-00070d-69
 for bug-gnu-emacs@HIDDEN; Thu, 12 Mar 2026 03:47:08 -0400
Received: from mout01.posteo.de ([185.67.36.65])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philipk@HIDDEN>)
 id 1w0al7-0007R2-M0
 for bug-gnu-emacs@HIDDEN; Thu, 12 Mar 2026 03:47:07 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id CDCF1240027
 for <bug-gnu-emacs@HIDDEN>; Thu, 12 Mar 2026 08:47:02 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.net; s=2017;
 t=1773301622; bh=oA5vZer0aORZ3m+54ETUO6ZXLe2lIfE6nmD6Tczebys=;
 h=From:To:Subject:OpenPGP:Date:Message-ID:MIME-Version:Content-Type:
 From;
 b=Nyyvq5GNuoOEBFOezrzC15bbUeN7oIYfTTCMekpMoCwvKmSFDerlg90hbrQ9lzNRQ
 TaUIOj3B9oSCpgzzkvum9WjGq0HV47o0IE/cp/mGn9wHS6Njx9mNWhTwerBfr+YXQv
 cVTFgwE4pF/SFedgRujX0/H3mnYufP5s3QcCQU8n8IQjLfJ6B3M50Ri+JPgBj2FlLi
 5hN10g/lQuMROjK2Tm/HQDu1lPrb+fEP7gFCTZm1Fgytw/o+7NMy9H2PPV/5Lu0L06
 CyAknzxwNU5EPdjor/nb4LH0gtgJhZnuN13xgWvkCoAaiWBNthXJ8kE7r8gUrHnn16
 iE0G8aNiPb40g==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4fWfpG2XPBz6tvy
 for <bug-gnu-emacs@HIDDEN>; Thu, 12 Mar 2026 08:47:02 +0100 (CET)
From: Philip Kaludercic <philipk@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 31.0.50; Should 'ensure-list' return a proper list?
X-Debbugs-Cc: 
OpenPGP: id=philipk@HIDDEN;
 url="https://keys.openpgp.org/vks/v1/by-email/philipk@HIDDEN";
 preference=signencrypt
Date: Thu, 12 Mar 2026 07:47:02 +0000
Message-ID: <87fr65jxqi.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@HIDDEN;
 helo=mout01.posteo.de
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, LONGWORDS=1,
 RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 2.0 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  I was surprised to realize that (ensure-list '(a . b)) ;=>
 (a . b) Would it make more sense to check if the argument satisfies
 `proper-list-p', and return ((a . b)) instead? 
 Content analysis details:   (2.0 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
 no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org]
 1.0 LONGWORDS              Long string of long words
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)


I was surprised to realize that

  (ensure-list '(a . b)) ;=> (a . b)

Would it make more sense to check if the argument satisfies
`proper-list-p', and return ((a . b)) instead?


In GNU Emacs 31.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.49, cairo version 1.18.4) of 2026-03-10 built on siskin
Repository revision: 41746d5fb2f9979b533cf774cbd967ff39cc8672
Repository branch: master
System Description: Debian GNU/Linux 13 (trixie)

Configured using:
 'configure --with-pgtk'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB

Important settings:
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Elisp/l

Minor modes in effect:
  which-key-mode: t
  delete-selection-mode: t
  newcomers-presets-mode: t
  TeX-PDF-mode: t
  etags-regen-mode: t
  auto-revert-mode: t
  bug-reference-prog-mode: t
  outline-minor-mode: t
  flyspell-mode: t
  flymake-mode: t
  repeat-mode: t
  display-battery-mode: t
  display-time-mode: t
  override-global-mode: t
  winner-mode: t
  windmove-mode: t
  corfu-history-mode: t
  corfu-mode: t
  editorconfig-mode: t
  electric-pair-mode: t
  recentf-mode: t
  save-place-mode: t
  savehist-mode: t
  pixel-scroll-precision-mode: t
  pixel-scroll-mode: t
  package-autosuggest-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  vc-auto-revert-mode: t
  mouse-wheel-mode: t
  tab-bar-history-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-nonselected-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/phi/.config/emacs/user-lisp/0x0/0x0 hides /home/phi/.config/emacs/user-lisp/0x0
/home/phi/.config/emacs/user-lisp/shell-command+/shell-command+ hides /home/phi/.config/emacs/elpa/shell-command+/shell-command+
/home/phi/.config/emacs/user-lisp/shell-command+/shell-command+-tests hides /home/phi/.config/emacs/elpa/shell-command+/shell-command+-tests
/home/phi/.config/emacs/user-lisp/vc-backup/vc-backup hides /home/phi/.config/emacs/elpa/vc-backup/vc-backup

Features:
(help-macro package-vc-tests ert-x package-vc display-line-numbers
newcomers-presets-theme which-key delsel completion-preview slime-tests
ert slime arc-mode archive-mode hyperspec completion finder tabify
vc-dir ewoc flow-fill shadow emacs-news-mode dabbrev tex-info texinfo
texinfo-loaddefs tex crm texmathp auctex vc-src vc-sccs vc-svn vc-cvs
vc-rcs mailalias smtpmail view emacsbug tramp-archive tramp-gvfs
zeroconf ecomplete sort smiley gnus-cite mm-archive mail-extr textsec
uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check
gnus-bcklg gnus-async octave smie etags-regen etags fileloop info-look
window-x typo edebug flymake-cc macrostep-c cmacexp macrostep cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs apropos bash-completion url-http url-gw url-cache url-auth eww
vtable url-queue mm-url do-at-point vc-hg vc-bzr dired-aux autorevert
filenotify gnus-dired tramp-cmds debug backtrace shortdoc avy cl-print
grep whitespace cursor-sensor smerge-mode help-fns vc-annotate info xref
pcase inline dictionary external-completion dictionary-connection
send-to ffap pulse face-remap color misc imenu char-fold misearch
multi-isearch vc-git diff-mode track-changes bug-reference find-func qp
gnus-ml disp-table nndraft nnmh utf-7 nnfolder copyright epa-file
byte-opt network-stream nsm gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls
dig nntp gnus-cache gnus-sum shr pixel-fill kinsoku url-file svg
gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range message yank-media
puny rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader gnus-win vc-backup log-view log-edit
add-log pcvs-util vc vc-dispatcher diff writegood-mode html-ts-mode
sgml-mode facemenu dom markdown-ts-mode derived treesit help-at-pt
noutline outline edmacro kmacro flyspell ispell checkdoc flymake project
generator init repeat comp comp-cstr battery dbus xml shell-command+
thingatpt dired-x dired dired-loaddefs holidays holiday-loaddefs
cal-menu calendar cal-loaddefs time sendmail mail-parse rfc2231 gnus
nnheader gnus-util range rmail rfc6068 rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils finder-inf bind-key easy-mmode winner
windmove corfu-history corfu compat editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch elec-pair tramp-sh
tramp-cache time-stamp tramp trampver tramp-integration files-x
tramp-message tramp-compat shell pcomplete parse-time iso8601 time-date
format-spec tramp-loaddefs recentf tree-widget saveplace savehist
pixel-scroll cus-edit pp cus-start cus-load wid-edit setup
.user-lisp-autoloads loaddefs-gen lisp-mnt radix-tree warnings compile
text-property-search comint ansi-osc ansi-color ring comp-run
comp-common rx bytecomp byte-compile auctex-autoloads tex-site
avy-autoloads bash-completion-autoloads corfu-autoloads
debbugs-autoloads diff-hl-autoloads focus-autoloads go-mode-autoloads
iedit-autoloads markdown-mode-autoloads minimail-autoloads
package-lint-autoloads proof-general-autoloads proof-site
proof-autoloads shell-command+-autoloads slime-autoloads
macrostep-autoloads sml-mode-autoloads vc-backup-autoloads
writegood-mode-autoloads package browse-url xdg url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs gv password-cache json
subr-x mule-util map url-vars package-activate cl-extra help-mode icons
cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
lcms2 multi-tty move-toolbar make-network-process tty-child-frames
native-compile emacs)

Memory information:
((conses 16 1848136 295677) (symbols 48 44294 88)
 (strings 32 250329 21138) (string-bytes 1 12481011)
 (vectors 16 104333) (vector-slots 8 2226347 179840)
 (floats 8 1914 14045) (intervals 56 134830 9481) (buffers 1064 174))




Acknowledgement sent to Philip Kaludercic <philipk@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#80598; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 14 Mar 2026 11:30:03 UTC

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