From: Paul Eggert Date: Sat, 18 Aug 2018 22:39:05 +0000 (-0700) Subject: Document that ‘random’ is limited to fixnums X-Git-Tag: emacs-27.0.90~4546 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=97d273033b523bc07911c848d4e8bf96cdce0c90;p=emacs.git Document that ‘random’ is limited to fixnums Problem reported by Pip Cet (Bug#32463#20). * doc/lispref/numbers.texi (Random Numbers): * src/fns.c (Frandom): Adjust doc. --- diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi index ee6456b1be1..74a313e2e10 100644 --- a/doc/lispref/numbers.texi +++ b/doc/lispref/numbers.texi @@ -1236,11 +1236,10 @@ other strings to choose various seed values. This function returns a pseudo-random integer. Repeated calls return a series of pseudo-random integers. -If @var{limit} is a positive integer, the value is chosen to be +If @var{limit} is a positive fixnum, the value is chosen to be nonnegative and less than @var{limit}. Otherwise, the value might be -any integer representable in Lisp, i.e., an integer between -@code{most-negative-fixnum} and @code{most-positive-fixnum} -(@pxref{Integer Basics}). +any fixnum, i.e., any integer from @code{most-negative-fixnum} through +@code{most-positive-fixnum} (@pxref{Integer Basics}). If @var{limit} is @code{t}, it means to choose a new seed as if Emacs were restarting, typically from the system entropy. On systems diff --git a/src/fns.c b/src/fns.c index f6e68036413..a11de1b0827 100644 --- a/src/fns.c +++ b/src/fns.c @@ -56,15 +56,12 @@ DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, } DEFUN ("random", Frandom, Srandom, 0, 1, 0, - doc: /* Return a pseudo-random number. -All integers representable in Lisp, i.e. between `most-negative-fixnum' -and `most-positive-fixnum', inclusive, are equally likely. - -With positive integer LIMIT, return random number in interval [0,LIMIT). + doc: /* Return a pseudo-random integer. +By default, return a fixnum; all fixnums are equally likely. +With positive fixnum LIMIT, return random integer in interval [0,LIMIT). With argument t, set the random number seed from the system's entropy pool if available, otherwise from less-random volatile data such as the time. With a string argument, set the seed based on the string's contents. -Other values of LIMIT are ignored. See Info node `(elisp)Random Numbers' for more details. */) (Lisp_Object limit)