Subject: bug#75105: (cl-random -1.0e+INF)

From: Eli Zaretskii <[email-masked]>
Date: Tue, 18 Feb 2025 14:43:32 +0200

> Cc: [email-masked], [email-masked], [email-masked]
> From: Stefan Kangas <[email-masked]>
> Date: Mon, 17 Feb 2025 22:17:34 +0000
> 
> Mattias Engdegård <[email-masked]> writes:
> 
> > 16 feb. 2025 kl. 01.50 skrev Pip Cet <[email-masked]>:
> >
> >> (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) = nil.

IMO, signaling an error is only justified if the call (cl-random 0.0)
cannot keep the contract of the function according to its doc string.
I don't think the value 0.0 it returns breaks the contract.

> FWIW, I'd lean towards fixing it, in the hope that very few packages out
> there will rely on this wrong behavior.

Fix it how?