GNU logs - #75105, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 25 Dec 2024 23:28:02 +0000
Resent-Message-ID: <handler.75105.B.173516924429137 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 75105 <at> debbugs.gnu.org, mattiasengdegard@HIDDEN, monnier@HIDDEN
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN, Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattiasengdegard@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.173516924429137
          (code B ref -1); Wed, 25 Dec 2024 23:28:02 +0000
Received: (at submit) by debbugs.gnu.org; 25 Dec 2024 23:27:24 +0000
Received: from localhost ([127.0.0.1]:39353 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tQami-0007Zs-2V
	for submit <at> debbugs.gnu.org; Wed, 25 Dec 2024 18:27:24 -0500
Received: from lists.gnu.org ([209.51.188.17]:34934)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1tQamg-0007Zk-7r
 for submit <at> debbugs.gnu.org; Wed, 25 Dec 2024 18:27:22 -0500
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 <pipcet@HIDDEN>)
 id 1tQamf-0006gA-MY
 for bug-gnu-emacs@HIDDEN; Wed, 25 Dec 2024 18:27:22 -0500
Received: from mail-40133.protonmail.ch ([185.70.40.133])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>)
 id 1tQame-0002JT-2k
 for bug-gnu-emacs@HIDDEN; Wed, 25 Dec 2024 18:27:21 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1735169236; x=1735428436;
 bh=RO98GxvQonDRL3UTmwq1t6Owo49fSGVRYN/hX+46xWY=;
 h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
 List-Unsubscribe:List-Unsubscribe-Post;
 b=CN2gTq5yo5f9jaTillpN1ZmLzqV2IKKyU9omIOtS7jaYbw5KE1pSPq9nEpSI9rZzw
 Y/IWnB6ouq1qDnbBmijSA85r4UoFmoVW6yzmslSWqGbUh5UQuZiVCeRXJAL2YrRe8w
 eFMo6eRQ4+n1P9mxhohsf1R8Giwff5OotG+Yank0f8M0uQrAd9+WtyjANYZkzMxnvD
 Gf895alD6cSBjkUfVHRr3A/CwaORGBKo3MUO6VIi+0W2pu5bOq/IVxlo7kVETO5FHm
 kYFFKCQdzsRw3x9bU7kvnOkKMX7doT4AQ2Ke05Y353dFL3lDA5lFl0js1u9CHpAF9g
 3m80vXNteT+tQ==
Date: Wed, 25 Dec 2024 23:27:09 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87seqb73aa.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: bd07054c7c81eab97a4d3ebde771849147a8b2de
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=185.70.40.133; envelope-from=pipcet@HIDDEN;
 helo=mail-40133.protonmail.ch
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
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: -2.3 (--)

The current behavior of (cl-random -1.0e+INF) is to return NaN with a
probability of 1.1920928955078125e-07, and -1.0e+INF in the remaining
cases.

There are at least two reasonable things cl-random can return for a
negative argument.  cl-random implements both, returning a float with
negative sign or a nonnegative integer.

There are at least two reasonable things cl-random can do in response to
a zero argument.  cl-random implements three of them:

(cl-random 0.0) is 0.0
(cl-random -0.0) is -0.0
(cl-random 0) throws an error

While "(while (not (isnan (cl-random -1.0e+INF))))" is an interesting
benchmark, its behavior may be somewhat surprising.

As this behavior has been in place since at least 1993 (when the
function was called random*), users may rely on it, and only the
docstring should be changed.





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Pip Cet <pipcet@HIDDEN>
Subject: bug#75105: Acknowledgement ((cl-random -1.0e+INF))
Message-ID: <handler.75105.B.173516924429137.ack <at> debbugs.gnu.org>
References: <87seqb73aa.fsf@HIDDEN>
X-Gnu-PR-Message: ack 75105
X-Gnu-PR-Package: emacs
Reply-To: 75105 <at> debbugs.gnu.org
Date: Wed, 25 Dec 2024 23:28:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 75105 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
75105: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D75105
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


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


Received: (at control) by debbugs.gnu.org; 2 Jan 2025 01:25:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 01 20:25:00 2025
Received: from localhost ([127.0.0.1]:41129 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tT9xM-0000Le-L1
	for submit <at> debbugs.gnu.org; Wed, 01 Jan 2025 20:25:00 -0500
Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]:60416)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>)
 id 1tT9xK-0000LI-Mf
 for control <at> debbugs.gnu.org; Wed, 01 Jan 2025 20:24:59 -0500
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5d3ecae02beso13345733a12.0
 for <control <at> debbugs.gnu.org>; Wed, 01 Jan 2025 17:24:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1735781093; x=1736385893; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=IflqyKly3oz0cnp86egD4K5/AGE7P2IjE4KY2RbcTt0=;
 b=HQbycvt3WuGLNbGNP7rFPOYxdxsm9bvA7FxUyz+0IH7ejazwKtfJ2OYaRxXTrkSbZC
 0SyMUe7t4EsxOEoh6pWqnk78xw65zPOqdZMWvF/H6Qy8xZ0U94Zn3Xf2k9HH9eRYUppL
 yby3omH+Z7hRZzUjm81sRE3m0C4fZ3ps9cbgiWkVxnBAaOo8ODjPHedPdouzc/qjl+Q9
 ie//57VTr7Lbc8uKXgZ0DwHO5iK40kOS39duN29Im8BlliEycMJ5Wd9tTsjzoyGu0xbL
 23gKfvpZUUdDb5wssRJS/83MPkmyB679UpWIhJ9aF/YJSE0lY6yXN/RsIvxxeDMovwiU
 r0Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1735781093; x=1736385893;
 h=to:subject:message-id:date:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=IflqyKly3oz0cnp86egD4K5/AGE7P2IjE4KY2RbcTt0=;
 b=LUsOTa3Pq4p3K83PhCTH4gKf/9JRnaLmX/GIFwyFI8n+hxWt8XtshP4rIfUMEWxBEE
 b7il18y86WAs/v79bK11DfqeruvK6npV9nO618OicW/vBn+magvwXwTXYHJ6TpciBdTM
 MhdJxq0zVshWAMq+fbEzdHxyP7r99RK6eYVGMEhtEiED9XRDBF2dT4mk9yqvQ66vSkQI
 Rzb5gblsdiou0ZaToVaB/ySdsuvBP8nn/9p6cghe69M5p8kHfQC9xRR24X7AowJFS8KL
 QgjKlKE4d+QG2NhyWtaib/SuHucI0VH54+9vQMxJRVvkI8eD9Kd6JX15f8+o6PANAmkE
 6Ipw==
X-Gm-Message-State: AOJu0Ywbn7EN5WJKoGG4T3s6O+0tYgnZXA5Jhg3XWM8WZDE0g+KjzuY4
 t3oCOm/SnXv2gE2DjagBKV2xzCfehXDymqovG7vU2npfLxnP1N5l3quad+t48Sb+1iR2LmwZD9D
 hwqE5YH08C7Ej6CchcM82UhjEYRyw1Mka
X-Gm-Gg: ASbGncv3dz/NY+NdZv/7tf5Lj4heJdY0ueL+G9HokVjwgUxCZy7Ik+bi57Nj/zd5t3Q
 1Hdz4v0IdypF67RmVOmhe6PMiO4c/e4z46VAduQo2
X-Google-Smtp-Source: AGHT+IFpUzW5kDYxNloPLK0Q6J3b0/elMhIoCzXDWbMXRCDzOVtsUDvebLxeaV5bjPB+J0TRnDCXUla3Omr76Aya6I8=
X-Received: by 2002:a05:6402:84c:b0:5d0:b925:a8a with SMTP id
 4fb4d7f45d1cf-5d81dda80bemr43913367a12.16.1735781092544; Wed, 01 Jan 2025
 17:24:52 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Wed, 1 Jan 2025 19:24:52 -0600
From: Stefan Kangas <stefankangas@HIDDEN>
MIME-Version: 1.0
Date: Wed, 1 Jan 2025 19:24:52 -0600
Message-ID: <CADwFkm=gesMOBzCKFWwcHzUSP6ffsbZqCU8N6wUN+Ukcx+dVDg@HIDDEN>
Subject: control message for bug #75105
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: control
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 (-)

severity 75105 wishlist
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 16 Feb 2025 00:51:02 +0000
Resent-Message-ID: <handler.75105.B.173966704719195 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 75105 <at> debbugs.gnu.org, mattiasengdegard@HIDDEN, monnier@HIDDEN
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN, 75105 <at> debbugs.gnu.org, mattiasengdegard@HIDDEN, monnier@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.173966704719195
          (code B ref -1); Sun, 16 Feb 2025 00:51:02 +0000
Received: (at submit) by debbugs.gnu.org; 16 Feb 2025 00:50:47 +0000
Received: from localhost ([127.0.0.1]:59035 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjSrv-0004zX-6f
	for submit <at> debbugs.gnu.org; Sat, 15 Feb 2025 19:50:47 -0500
Received: from lists.gnu.org ([2001:470:142::17]:56686)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tjSrs-0004z2-Cq
 for submit <at> debbugs.gnu.org; Sat, 15 Feb 2025 19:50:45 -0500
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 <pipcet@HIDDEN>)
 id 1tjSrR-0000va-Ap
 for bug-gnu-emacs@HIDDEN; Sat, 15 Feb 2025 19:50:20 -0500
Received: from mail-10629.protonmail.ch ([79.135.106.29])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>)
 id 1tjSrM-0004MM-4A
 for bug-gnu-emacs@HIDDEN; Sat, 15 Feb 2025 19:50:16 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1739667007; x=1739926207;
 bh=6Kxq8NXjDcf/xvJMoPZeHoGyUw8IJCZxbfBUaLiR5AU=;
 h=Date:To:From:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=xH8M8ZL0zll4ib7PF4ah91FVbHfOmlT7pDGYMoEzVRMBe/qaypM8UvgiUJhP+b+Sz
 LbR8IUb6w32C7SV/kQgteNtd/9/L1l2VYseitAywL5PRx9IseAMH1xSpgGF5j1lbp9
 2Dj/Z/S2/oLH7h74jykaAoTGb2lTzRB+R0oCtiO0Jq+3sDJ+oZe8w3jmb/0GNbw/Pl
 R4bk2khw1zkIsKTbDc+aBbOr/mkp2JNpxLa4fm9Yd4dDpTaxTULUmW+nBdiCMHUgu5
 rrOaSOunYlN/c1uo9PDXryXbr3uc3030yObzNa5eJpxabWex2dQFOvp3w7aPZWZhm8
 /Jk727A1NbqbA==
Date: Sun, 16 Feb 2025 00:50:04 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87ikpahfxl.fsf@HIDDEN>
In-Reply-To: <87seqb73aa.fsf@HIDDEN>
References: <87seqb73aa.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: de5ca5c2f784ec5486becb1cca964e20ce915fc2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=79.135.106.29; envelope-from=pipcet@HIDDEN;
 helo=mail-10629.protonmail.ch
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
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.0 (/)

"Pip Cet via \"Bug reports for GNU Emacs, the Swiss army knife of text edit=
ors\"" <bug-gnu-emacs@HIDDEN> writes:

> The current behavior of (cl-random -1.0e+INF) is to return NaN with a
> probability of 1.1920928955078125e-07, and -1.0e+INF in the remaining
> cases.

Okay, so maybe I was wrong and that should be fixed.  This patch will
make cl-random behave consistently, though one could argue about some
cases:

(cl-random 0) involves a division by zero, as it should
(cl-random 1.0e+INF) returns 1.0e+INF, as it should
(cl-random 0.0) returns 0.0, but one could argue it should throw
(cl-random -0.0) should do the same as (cl-random -0.0) since negative
zero is a myth.

Updating the docstring would be nice, too.

From 22e59a481a7a1c2cbff349af0f6faa2f428981a8 Mon Sep 17 00:00:00 2001
From: Pip Cet <pipcet@HIDDEN>
Subject: [PATCH] Make cl-random behave consistently for unusual arguments
 (bug#75105)

The old behavior was for (cl-random -1.0e+INF) to return NaN in about
one of eight million calls, and -1.0e+INF otherwise.  Other unusual
arguments were handled inconsistently as well.

* lisp/emacs-lisp/cl-extra.el (cl-random): Handle nonnegative
arguments consistently, error for negative arguments.
* test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-random): New
test.
---
 lisp/emacs-lisp/cl-extra.el            | 20 +++++++++++++-------
 test/lisp/emacs-lisp/cl-extra-tests.el | 10 ++++++++++
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 09470457d93..8c218ff9d7e 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -494,13 +494,19 @@ cl-random
     (let* ((i (cl-callf (lambda (x) (% (1+ x) 55)) (cl--random-state-i sta=
te)))
 =09   (j (cl-callf (lambda (x) (% (1+ x) 55)) (cl--random-state-j state)))
 =09   (n (aset vec i (logand 8388607 (- (aref vec i) (aref vec j))))))
-      (if (integerp lim)
-=09  (if (<=3D lim 512) (% n lim)
-=09    (if (> lim 8388607) (setq n (+ (ash n 9) (cl-random 512 state))))
-=09    (let ((mask 1023))
-=09      (while (< mask (1- lim)) (setq mask (1+ (+ mask mask))))
-=09      (if (< (setq n (logand n mask)) lim) n (cl-random lim state))))
-=09(* (/ n '8388608e0) lim)))))
+      (cond
+       ((natnump lim)
+=09(if (<=3D lim 512) (% n lim)
+=09  (if (> lim 8388607) (setq n (+ (ash n 9) (cl-random 512 state))))
+=09  (let ((mask 1023))
+=09    (while (< mask (1- lim)) (setq mask (1+ (+ mask mask))))
+=09    (if (< (setq n (logand n mask)) lim) n (cl-random lim state)))))
+       ((< 0 lim 1.0e+INF)
+        (* (/ n '8388608e0) lim))
+       ((< lim -0.0)
+        (error "negative limit supplied to cl-random"))
+       (t
+        lim)))))
=20
 ;;;###autoload
 (defun cl-make-random-state (&optional state)
diff --git a/test/lisp/emacs-lisp/cl-extra-tests.el b/test/lisp/emacs-lisp/=
cl-extra-tests.el
index 75533b36f29..d87c0bfec5d 100644
--- a/test/lisp/emacs-lisp/cl-extra-tests.el
+++ b/test/lisp/emacs-lisp/cl-extra-tests.el
@@ -348,4 +348,14 @@ cl-extra-test-tailp
     (should (cl-tailp l l))
     (should (not (cl-tailp '(4 5) l)))))
=20
+(ert-deftest cl-extra-test-random ()
+  (should-error (cl-random -1))
+  (should-error (cl-random -0.5))
+  (should-error (cl-random -1.0e+INF))
+  (should-error (cl-random 0))
+  (should (eql (cl-random 1) 0)))
+  (should (eql (cl-random 0.0) 0.0))
+  (should (=3D (cl-random -0.0) 0.0))
+  (should (=3D (cl-random 1.0e+INF) 1.0e+INF))
+
 ;;; cl-extra-tests.el ends here
--=20
2.48.1





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 16 Feb 2025 00:51:03 +0000
Resent-Message-ID: <handler.75105.B75105.173966702219148 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 75105 <at> debbugs.gnu.org, mattiasengdegard@HIDDEN, monnier@HIDDEN
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN, 75105 <at> debbugs.gnu.org, mattiasengdegard@HIDDEN, monnier@HIDDEN
Received: via spool by 75105-submit <at> debbugs.gnu.org id=B75105.173966702219148
          (code B ref 75105); Sun, 16 Feb 2025 00:51:03 +0000
Received: (at 75105) by debbugs.gnu.org; 16 Feb 2025 00:50:22 +0000
Received: from localhost ([127.0.0.1]:59031 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjSrW-0004yl-48
	for submit <at> debbugs.gnu.org; Sat, 15 Feb 2025 19:50:22 -0500
Received: from mail-10629.protonmail.ch ([79.135.106.29]:57931)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tjSrO-0004wy-C9
 for 75105 <at> debbugs.gnu.org; Sat, 15 Feb 2025 19:50:15 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1739667007; x=1739926207;
 bh=6Kxq8NXjDcf/xvJMoPZeHoGyUw8IJCZxbfBUaLiR5AU=;
 h=Date:To:From:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=xH8M8ZL0zll4ib7PF4ah91FVbHfOmlT7pDGYMoEzVRMBe/qaypM8UvgiUJhP+b+Sz
 LbR8IUb6w32C7SV/kQgteNtd/9/L1l2VYseitAywL5PRx9IseAMH1xSpgGF5j1lbp9
 2Dj/Z/S2/oLH7h74jykaAoTGb2lTzRB+R0oCtiO0Jq+3sDJ+oZe8w3jmb/0GNbw/Pl
 R4bk2khw1zkIsKTbDc+aBbOr/mkp2JNpxLa4fm9Yd4dDpTaxTULUmW+nBdiCMHUgu5
 rrOaSOunYlN/c1uo9PDXryXbr3uc3030yObzNa5eJpxabWex2dQFOvp3w7aPZWZhm8
 /Jk727A1NbqbA==
Date: Sun, 16 Feb 2025 00:50:04 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87ikpahfxl.fsf@HIDDEN>
In-Reply-To: <87seqb73aa.fsf@HIDDEN>
References: <87seqb73aa.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: de5ca5c2f784ec5486becb1cca964e20ce915fc2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
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 (-)

"Pip Cet via \"Bug reports for GNU Emacs, the Swiss army knife of text edit=
ors\"" <bug-gnu-emacs@HIDDEN> writes:

> The current behavior of (cl-random -1.0e+INF) is to return NaN with a
> probability of 1.1920928955078125e-07, and -1.0e+INF in the remaining
> cases.

Okay, so maybe I was wrong and that should be fixed.  This patch will
make cl-random behave consistently, though one could argue about some
cases:

(cl-random 0) involves a division by zero, as it should
(cl-random 1.0e+INF) returns 1.0e+INF, as it should
(cl-random 0.0) returns 0.0, but one could argue it should throw
(cl-random -0.0) should do the same as (cl-random -0.0) since negative
zero is a myth.

Updating the docstring would be nice, too.

From 22e59a481a7a1c2cbff349af0f6faa2f428981a8 Mon Sep 17 00:00:00 2001
From: Pip Cet <pipcet@HIDDEN>
Subject: [PATCH] Make cl-random behave consistently for unusual arguments
 (bug#75105)

The old behavior was for (cl-random -1.0e+INF) to return NaN in about
one of eight million calls, and -1.0e+INF otherwise.  Other unusual
arguments were handled inconsistently as well.

* lisp/emacs-lisp/cl-extra.el (cl-random): Handle nonnegative
arguments consistently, error for negative arguments.
* test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-random): New
test.
---
 lisp/emacs-lisp/cl-extra.el            | 20 +++++++++++++-------
 test/lisp/emacs-lisp/cl-extra-tests.el | 10 ++++++++++
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 09470457d93..8c218ff9d7e 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -494,13 +494,19 @@ cl-random
     (let* ((i (cl-callf (lambda (x) (% (1+ x) 55)) (cl--random-state-i sta=
te)))
 =09   (j (cl-callf (lambda (x) (% (1+ x) 55)) (cl--random-state-j state)))
 =09   (n (aset vec i (logand 8388607 (- (aref vec i) (aref vec j))))))
-      (if (integerp lim)
-=09  (if (<=3D lim 512) (% n lim)
-=09    (if (> lim 8388607) (setq n (+ (ash n 9) (cl-random 512 state))))
-=09    (let ((mask 1023))
-=09      (while (< mask (1- lim)) (setq mask (1+ (+ mask mask))))
-=09      (if (< (setq n (logand n mask)) lim) n (cl-random lim state))))
-=09(* (/ n '8388608e0) lim)))))
+      (cond
+       ((natnump lim)
+=09(if (<=3D lim 512) (% n lim)
+=09  (if (> lim 8388607) (setq n (+ (ash n 9) (cl-random 512 state))))
+=09  (let ((mask 1023))
+=09    (while (< mask (1- lim)) (setq mask (1+ (+ mask mask))))
+=09    (if (< (setq n (logand n mask)) lim) n (cl-random lim state)))))
+       ((< 0 lim 1.0e+INF)
+        (* (/ n '8388608e0) lim))
+       ((< lim -0.0)
+        (error "negative limit supplied to cl-random"))
+       (t
+        lim)))))
=20
 ;;;###autoload
 (defun cl-make-random-state (&optional state)
diff --git a/test/lisp/emacs-lisp/cl-extra-tests.el b/test/lisp/emacs-lisp/=
cl-extra-tests.el
index 75533b36f29..d87c0bfec5d 100644
--- a/test/lisp/emacs-lisp/cl-extra-tests.el
+++ b/test/lisp/emacs-lisp/cl-extra-tests.el
@@ -348,4 +348,14 @@ cl-extra-test-tailp
     (should (cl-tailp l l))
     (should (not (cl-tailp '(4 5) l)))))
=20
+(ert-deftest cl-extra-test-random ()
+  (should-error (cl-random -1))
+  (should-error (cl-random -0.5))
+  (should-error (cl-random -1.0e+INF))
+  (should-error (cl-random 0))
+  (should (eql (cl-random 1) 0)))
+  (should (eql (cl-random 0.0) 0.0))
+  (should (=3D (cl-random -0.0) 0.0))
+  (should (=3D (cl-random 1.0e+INF) 1.0e+INF))
+
 ;;; cl-extra-tests.el ends here
--=20
2.48.1





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattias.engdegard@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Feb 2025 18:10:04 +0000
Resent-Message-ID: <handler.75105.B75105.173981580218281 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
Received: via spool by 75105-submit <at> debbugs.gnu.org id=B75105.173981580218281
          (code B ref 75105); Mon, 17 Feb 2025 18:10:04 +0000
Received: (at 75105) by debbugs.gnu.org; 17 Feb 2025 18:10:02 +0000
Received: from localhost ([127.0.0.1]:48748 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tk5ZB-0004kh-Se
	for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:10:02 -0500
Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]:43152)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <mattias.engdegard@HIDDEN>)
 id 1tk5Z9-0004k3-Ea
 for 75105 <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:10:00 -0500
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-30920855d5bso33592861fa.0
 for <75105 <at> debbugs.gnu.org>; Mon, 17 Feb 2025 10:09:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1739815793; x=1740420593; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject
 :date:message-id:reply-to;
 bh=wP10mouz9anaxRnlABDn/aqMvEjqVdPyX0HDrPJr7lo=;
 b=bJ/KmK4N5ApMRMZOeEDEt75zI7vhPNc7Kyzez1pAHUjOYTuyAXjyFiM34f+yHepHfT
 lnjvXzd2kZ3JWSyaOW6KQhxqwAoJmv026fnOI+DC/GqSXmT+0QYLeWBjP8sioJbSYorV
 iTCjv1HOrIq0yJSn5KSNvZs+0cDcJHkYLmNwE3+OyvLOlcaseYagVVAuZMo3grrVE7Da
 bXMEDi6r2GHJ8lLC86/fFpct4UP69OCETXFEtXeF6MCcWxDy24qyDHsc/cuJeVIU150A
 8pMFJvl/KH3GgzhASgO+bj9DqqGmksfZUs678/BgUMlGDwzXRJBlBIQrSHrZQGvmSWI5
 fZbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1739815793; x=1740420593;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:sender:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=wP10mouz9anaxRnlABDn/aqMvEjqVdPyX0HDrPJr7lo=;
 b=xQ9XXDhfFLhNCone8f6JJr2zqOppXpKnOmZOssTINR/dhc9Upygenay1LWBc5E5PJG
 DKFKSQs99xuV4qMKScGmZvVTccdUkhdXJRepLUVGHQgz4YP8k8Wj9yz1Es1VwN6Sz19a
 x5mDX4meMwNiuojNhNOo81hiJWZ7UgQpvodIe1v8cf6WSHq7ho9fIbIbJzfqW77XHFH8
 9+9hpawXTdDzTb1cWdlNjScMH9sRClhduPifrFP+KbwppDrwUgvEx7KFFLxPTR9Dj8qz
 6xNoIxbwV4/QtetMIIWoFQM2K9BsYg/61Du2QG21S4J6NFZs6U7UOL8olP7lDBbqeieb
 DNvg==
X-Forwarded-Encrypted: i=1;
 AJvYcCW8OObsxgZF88h8jcaRutuvSQ5efZYo0OatnTgg+RAyOnS0WmdNVirjULzSA40e2j7DqkKzmw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxVIRSMvptYzmIFNmCC//fE+n8svRo5yvR7TagkxaneVaNi2eSr
 j+Lh/r2/+QmRk5tByw3CUS8KE+cqBdu/VwOwFrwpK8UbQhSeELT4
X-Gm-Gg: ASbGnctE0moMGuLql1jUFxewILGKt+3C3r406r+zppndJpU0nDKxJKB68I8aO2KBPC2
 FL/shqhtMF/GtyxoIJVI/A20SOSYQ1OW1ocEIv2LdH7zJGPGgqH6T7INcodaheYH9FDasZBuyXH
 P4lJd9/4di3gDMABb4I2hSwaBS2ZT3MwO0EDTh4eYvKeLTIRTSHaYc235J34GTevaNymanXLjy0
 ZHmTooSdNRjUmey4ADuYOBG4etcCJBn7TNc8wqZmxQdz+w/XH4Lemmp/+dwuqJOtDSssoWqn5Qy
 ellXe5HknyxmynyAdMywo7VOFx/2t2IllWWZ+Pks28WcuFpk2XB5MTO2YpyfkeYs4nyYsvnnQGb
 qOvvuVQ==
X-Google-Smtp-Source: AGHT+IHs9xUoHivXg3azu3VKUgAJWbhkzrG8ia0SDulP3wUdtA4YH6zpIqF5Q0yNTJ5rEzb1eatrQA==
X-Received: by 2002:a2e:9616:0:b0:302:2cb3:bb1d with SMTP id
 38308e7fff4ca-309288de1d3mr25925591fa.12.1739815792437; 
 Mon, 17 Feb 2025 10:09:52 -0800 (PST)
Received: from smtpclient.apple (c188-150-186-155.bredband.tele2.se.
 [188.150.186.155]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3091011ed8bsm17140091fa.56.2025.02.17.10.09.51
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 17 Feb 2025 10:09:52 -0800 (PST)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\))
From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattias.engdegard@HIDDEN>
In-Reply-To: <87ikpahfxl.fsf@HIDDEN>
Date: Mon, 17 Feb 2025 19:09:51 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <CC4DD2DE-475E-4552-B0FD-187F213C53D2@HIDDEN>
References: <87seqb73aa.fsf@HIDDEN> <87ikpahfxl.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3654.120.0.1.15)
X-Spam-Score: 0.0 (/)
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 (-)

16 feb. 2025 kl. 01.50 skrev Pip Cet <pipcet@HIDDEN>:

> (cl-random 0.0) returns 0.0, but one could argue it should throw

It definitely should throw, but perhaps it's not worth the =
incompatibility? Not sure, because existing code that passes 0.0 is =
likely buggy anyway.
Or we could say that it's just an ad-hoc extension, by vague analogy of =
(car nil) =3D nil.





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattias.engdegard@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Feb 2025 18:11:01 +0000
Resent-Message-ID: <handler.75105.B.173981582418753 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.173981582418753
          (code B ref -1); Mon, 17 Feb 2025 18:11:01 +0000
Received: (at submit) by debbugs.gnu.org; 17 Feb 2025 18:10:24 +0000
Received: from localhost ([127.0.0.1]:48756 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tk5ZO-0004oe-Ii
	for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:10:24 -0500
Received: from lists.gnu.org ([2001:470:142::17]:58468)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <mattias.engdegard@HIDDEN>)
 id 1tk5ZC-0004kC-JX
 for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:10:03 -0500
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 <mattias.engdegard@HIDDEN>)
 id 1tk5Z6-0004iM-Jx
 for bug-gnu-emacs@HIDDEN; Mon, 17 Feb 2025 13:09:56 -0500
Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <mattias.engdegard@HIDDEN>)
 id 1tk5Z5-0005m4-0C
 for bug-gnu-emacs@HIDDEN; Mon, 17 Feb 2025 13:09:56 -0500
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-307c13298eeso47890081fa.0
 for <bug-gnu-emacs@HIDDEN>; Mon, 17 Feb 2025 10:09:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1739815793; x=1740420593; darn=gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject
 :date:message-id:reply-to;
 bh=wP10mouz9anaxRnlABDn/aqMvEjqVdPyX0HDrPJr7lo=;
 b=VRUFneDYSrI0HWby+hhlLL9GTzNOvbFUki5LWAoZiuMOuTlTz5ZgEO6NitIj4ylPTi
 Qzzh357o/5E955/RV34LU4pcT9x6R/OyvVv9FhkxK3IemEbs3qnCyVeV1ASl2aI60DgD
 cDqJwCKD588tgHih9XCdF0sKBVym7OD+EfVSkm4TDpOYm0pTBDyaPA04+JuCBZs8QTIe
 Sf684fyGMjOGYBnrLvdwXixikZ68UpFX3ytWscVENuMYAalm4G4HrgsqExfTzu46OZjM
 sb1XDMEOUOVl84Ch/xKjiIxUFZrcNtvw/UoT5TOS+G2GYRS3cLhimParvF/reYU+Cim3
 W6RQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1739815793; x=1740420593;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:sender:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=wP10mouz9anaxRnlABDn/aqMvEjqVdPyX0HDrPJr7lo=;
 b=DmP4jRk+yW80ok+mvFmaGFtHANsSQAw4ycrdsJ/SVPYVyTrkRYCdZjxcJ+HW/WFsL3
 1JK4bYWC/aEQ98v50M2jbLpp4/2ytXlIHICFSUCjvf/XWgHavcBDTP7pKVNHAKByftF9
 BMDe6AgHYlYGF/bQ2Bf+uF8osUsXmrPgVqTwUbjVt2puzkxyQRemeAwfTCpBdXWDN9+S
 QklbIIq8FYY9vv5Uogj1ql+Non1p7SGUNmoGhdGLvkwWk096WyLzOVuGWtgV4FFeYoF7
 uxeQHlge+UX7rrhB1o1J6XYpieJGrgPDW9w6CfP1GMbLVVsYjt5fcO/+0SG7KmujhVcK
 f93g==
X-Gm-Message-State: AOJu0YyFHkjiFl8VhAWHL/xDbFng36DETSUvT9xcEbCAlLxxy6QUJoQS
 LlNjN1I1EJrhIcOi6OnTizi1uZ8uIxZ/a1dVn4Pn19y1Rwxg3kDO
X-Gm-Gg: ASbGncsHGaacId2Jo4BTrZNIWM6qkEtWsLJdnx5rBohIfjBFvtUXq3I0CMT/X/w1xtZ
 NcXfQXCfK6sPAQfhGFrhMdPJ94PbqZBHxEKtLnHGTkulKPvAS0Pn61FdJBv5AKLPVNBx79ldLvz
 skCm9AYUP2goB4TdBWOUWw0y+WN27019B0oVMIiExjCsY7S3qCjaPpjyvqbH+RuioteC2ywqSjZ
 WedCUGo33Z8sNixSib9YTHZh8EScA/PXDvmDXvEqOcEE65L9icd4+FHqSZXQrr5zxtkZkfL+3ly
 0kFYTPrOQHD1tZCPGKHopE03QhRnMEOHGJpy85vrq5E8qhz3M+XjHXcrFcDIK+yA7eyP0oA94K0
 zP+cNcw==
X-Google-Smtp-Source: AGHT+IHs9xUoHivXg3azu3VKUgAJWbhkzrG8ia0SDulP3wUdtA4YH6zpIqF5Q0yNTJ5rEzb1eatrQA==
X-Received: by 2002:a2e:9616:0:b0:302:2cb3:bb1d with SMTP id
 38308e7fff4ca-309288de1d3mr25925591fa.12.1739815792437; 
 Mon, 17 Feb 2025 10:09:52 -0800 (PST)
Received: from smtpclient.apple (c188-150-186-155.bredband.tele2.se.
 [188.150.186.155]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3091011ed8bsm17140091fa.56.2025.02.17.10.09.51
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 17 Feb 2025 10:09:52 -0800 (PST)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\))
From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattias.engdegard@HIDDEN>
In-Reply-To: <87ikpahfxl.fsf@HIDDEN>
Date: Mon, 17 Feb 2025 19:09:51 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <CC4DD2DE-475E-4552-B0FD-187F213C53D2@HIDDEN>
References: <87seqb73aa.fsf@HIDDEN> <87ikpahfxl.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3654.120.0.1.15)
Received-SPF: pass client-ip=2a00:1450:4864:20::230;
 envelope-from=mattias.engdegard@HIDDEN; helo=mail-lj1-x230.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
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.0 (/)

16 feb. 2025 kl. 01.50 skrev Pip Cet <pipcet@HIDDEN>:

> (cl-random 0.0) returns 0.0, but one could argue it should throw

It definitely should throw, but perhaps it's not worth the =
incompatibility? Not sure, because existing code that passes 0.0 is =
likely buggy anyway.
Or we could say that it's just an ad-hoc extension, by vague analogy of =
(car nil) =3D nil.





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Feb 2025 18:27:02 +0000
Resent-Message-ID: <handler.75105.B.17398168083115 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattias.engdegard@HIDDEN>
Cc: 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.17398168083115
          (code B ref -1); Mon, 17 Feb 2025 18:27:02 +0000
Received: (at submit) by debbugs.gnu.org; 17 Feb 2025 18:26:48 +0000
Received: from localhost ([127.0.0.1]:48960 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tk5pP-0000nz-DS
	for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:26:48 -0500
Received: from lists.gnu.org ([2001:470:142::17]:37344)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tk5pN-0000n1-9P
 for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:26:45 -0500
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 <pipcet@HIDDEN>)
 id 1tk5pC-0001RP-Lu
 for bug-gnu-emacs@HIDDEN; Mon, 17 Feb 2025 13:26:34 -0500
Received: from mail-10630.protonmail.ch ([79.135.106.30])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>)
 id 1tk5p9-00083h-Jr
 for bug-gnu-emacs@HIDDEN; Mon, 17 Feb 2025 13:26:34 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1739816788; x=1740075988;
 bh=6DkSz+8BntsXfvojF0XLEKyzHV54A38Mc+KkSV6dkNA=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=fghzMTBaK1RMutue/NjiAJKEpCz68A8khBsb2ABRVXZcYLQaJEq6X645pOZ8gR/Lb
 dePXTGFkaIHpSuP//TLodrupJM6Ujp975DXPFR6Z4bFUp4AxxQMjvy6YvhTLoUxOar
 WlVJGTetZBb7h28oSQXbH0u4X5L7uydUxjkjN4omLzt+Eu6fhoK7otgR5D9dZgbbb2
 OfLAhT6w6QO7j89IbJ5qesrTuVlanMriwIDDjCU1A4pszf1zVe2nol50VEmCFT+BSg
 lSKPizLWCGWERogtxNH6+96UsEoRyr5RoG8xyFhbG+vM3CZCWfttLPtzly+kzPB2Cu
 OKGEpCO/sqyyA==
Date: Mon, 17 Feb 2025 18:26:23 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87h64s8m3d.fsf@HIDDEN>
In-Reply-To: <CC4DD2DE-475E-4552-B0FD-187F213C53D2@HIDDEN>
References: <87seqb73aa.fsf@HIDDEN> <87ikpahfxl.fsf@HIDDEN>
 <CC4DD2DE-475E-4552-B0FD-187F213C53D2@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 894797de20b05e7719047d7ab3e4c98bd269ee26
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=79.135.106.30; envelope-from=pipcet@HIDDEN;
 helo=mail-10630.protonmail.ch
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
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.0 (/)

Mattias Engdeg=C3=A5rd <mattias.engdegard@HIDDEN> writes:

> 16 feb. 2025 kl. 01.50 skrev Pip Cet <pipcet@HIDDEN>:
>
>> (cl-random 0.0) returns 0.0, but one could argue it should throw
>
> It definitely should throw, but perhaps it's not worth the
> incompatibility? Not sure, because existing code that passes 0.0 is
> likely buggy anyway.  Or we could say that it's just an ad-hoc
> extension, by vague analogy of (car nil) =3D nil.

On mathematical grounds, in my humble but correct opinion, the
pseudo-algorithm should be:

1. find a random real number in the closed interval [0, a]
2. round it towards zero.

IOW, that 'a' is never the result is a consequence of the rounding step,
not of using a half-open interval in step 1.

However, Common Lisp disagrees, and the cl- prefix kind of hints we
should heed its opinions.

And using (* x (cl-random 1.0)) if that's what you want seems easy
enough (and, either way, you get bitten by the low precision, with only
8 million possible outcomes).

Will modify the patch accordingly.

Pip





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75105: (cl-random -1.0e+INF)
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Feb 2025 18:27:02 +0000
Resent-Message-ID: <handler.75105.B75105.17398167993068 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75105
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattias.engdegard@HIDDEN>
Cc: 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 75105 <at> debbugs.gnu.org, monnier@HIDDEN, mattiasengdegard@HIDDEN
Received: via spool by 75105-submit <at> debbugs.gnu.org id=B75105.17398167993068
          (code B ref 75105); Mon, 17 Feb 2025 18:27:02 +0000
Received: (at 75105) by debbugs.gnu.org; 17 Feb 2025 18:26:39 +0000
Received: from localhost ([127.0.0.1]:48955 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tk5pG-0000nM-Om
	for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:26:39 -0500
Received: from mail-10631.protonmail.ch ([79.135.106.31]:17543)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tk5pD-0000mc-NB
 for 75105 <at> debbugs.gnu.org; Mon, 17 Feb 2025 13:26:36 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1739816788; x=1740075988;
 bh=6DkSz+8BntsXfvojF0XLEKyzHV54A38Mc+KkSV6dkNA=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=fghzMTBaK1RMutue/NjiAJKEpCz68A8khBsb2ABRVXZcYLQaJEq6X645pOZ8gR/Lb
 dePXTGFkaIHpSuP//TLodrupJM6Ujp975DXPFR6Z4bFUp4AxxQMjvy6YvhTLoUxOar
 WlVJGTetZBb7h28oSQXbH0u4X5L7uydUxjkjN4omLzt+Eu6fhoK7otgR5D9dZgbbb2
 OfLAhT6w6QO7j89IbJ5qesrTuVlanMriwIDDjCU1A4pszf1zVe2nol50VEmCFT+BSg
 lSKPizLWCGWERogtxNH6+96UsEoRyr5RoG8xyFhbG+vM3CZCWfttLPtzly+kzPB2Cu
 OKGEpCO/sqyyA==
Date: Mon, 17 Feb 2025 18:26:23 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87h64s8m3d.fsf@HIDDEN>
In-Reply-To: <CC4DD2DE-475E-4552-B0FD-187F213C53D2@HIDDEN>
References: <87seqb73aa.fsf@HIDDEN> <87ikpahfxl.fsf@HIDDEN>
 <CC4DD2DE-475E-4552-B0FD-187F213C53D2@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 894797de20b05e7719047d7ab3e4c98bd269ee26
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
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 (-)

Mattias Engdeg=C3=A5rd <mattias.engdegard@HIDDEN> writes:

> 16 feb. 2025 kl. 01.50 skrev Pip Cet <pipcet@HIDDEN>:
>
>> (cl-random 0.0) returns 0.0, but one could argue it should throw
>
> It definitely should throw, but perhaps it's not worth the
> incompatibility? Not sure, because existing code that passes 0.0 is
> likely buggy anyway.  Or we could say that it's just an ad-hoc
> extension, by vague analogy of (car nil) =3D nil.

On mathematical grounds, in my humble but correct opinion, the
pseudo-algorithm should be:

1. find a random real number in the closed interval [0, a]
2. round it towards zero.

IOW, that 'a' is never the result is a consequence of the rounding step,
not of using a half-open interval in step 1.

However, Common Lisp disagrees, and the cl- prefix kind of hints we
should heed its opinions.

And using (* x (cl-random 1.0)) if that's what you want seems easy
enough (and, either way, you get bitten by the low precision, with only
8 million possible outcomes).

Will modify the patch accordingly.

Pip






Last modified: Mon, 17 Feb 2025 18:30:02 UTC

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