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.
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
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
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
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
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.
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.
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
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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.