guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.7-122-g08904


From: Mark H Weaver
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.7-122-g0890466
Date: Mon, 25 Feb 2013 01:15:53 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=08904661a2b1c6d461b2f5abfe3226a4023453fb

The branch, stable-2.0 has been updated
       via  08904661a2b1c6d461b2f5abfe3226a4023453fb (commit)
      from  c085589b1c34fa88d28c23cb5e3659fecdb09f33 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 08904661a2b1c6d461b2f5abfe3226a4023453fb
Author: Mark H Weaver <address@hidden>
Date:   Sun Feb 24 19:57:00 2013 -0500

    random-state-from-platform: simplify pid conditional, and clarify docs.
    
    * libguile/random.c (random_state_of_last_resort): Simplify optional
      inclusion of PID in the random state.  Clarify in the comments that
      the PID is only included where scm_getpid is present.
    
    * doc/ref/api-data.texi (Random): Clarify that
      'random-state-from-platform' includes the PID in the random state only
      if scm_getpid is present.

-----------------------------------------------------------------------

Summary of changes:
 doc/ref/api-data.texi |    6 +++---
 libguile/random.c     |   17 ++++++++---------
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index 9da17d8..e17c0c2 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -1872,9 +1872,9 @@ read back with the Scheme reader.
 Construct a new random state seeded from a platform-specific source of
 entropy, appropriate for use in non-security-critical applications.
 Currently @file{/dev/urandom} is tried first, or else the seed is based
-on the time, date, process ID, an address from a freshly allocated heap
-cell, an address from the local stack frame, and a high-resolution timer
-if available.
+on the time, date, process ID (if scm_getpid is present), an address
+from a freshly allocated heap cell, an address from the local stack
+frame, and a high-resolution timer if available.
 @end deffn
 
 @defvar *random-state*
diff --git a/libguile/random.c b/libguile/random.c
index a85ee81..9cb5e69 100644
--- a/libguile/random.c
+++ b/libguile/random.c
@@ -653,11 +653,11 @@ SCM_DEFINE (scm_random_exp, "random:exp", 0, 1, 0,
 }
 #undef FUNC_NAME
 
-/* Return a new random-state seeded from the time, date, process ID, an
-   address from a freshly allocated heap cell, an address from the local
-   stack frame, and a high-resolution timer if available.  This is only
-   to be used as a last resort, when no better source of entropy is
-   available. */
+/* Return a new random-state seeded from the time, date, process ID (if
+   scm_getpid is present), an address from a freshly allocated heap
+   cell, an address from the local stack frame, and a high-resolution
+   timer if available.  This is only to be used as a last resort, when
+   no better source of entropy is available. */
 static SCM
 random_state_of_last_resort (void)
 {
@@ -665,6 +665,9 @@ random_state_of_last_resort (void)
   SCM time_of_day = scm_gettimeofday ();
   SCM sources = scm_list_n
     (scm_from_unsigned_integer (SCM_UNPACK (time_of_day)),  /* heap addr */
+#ifdef HAVE_POSIX
+     scm_getpid (),         /* process ID */
+#endif
      scm_get_internal_real_time (), /* high-resolution process timer */
      scm_from_unsigned_integer ((scm_t_bits) &time_of_day), /* stack addr */
      scm_car (time_of_day), /* seconds since midnight 1970-01-01 UTC */
@@ -672,10 +675,6 @@ random_state_of_last_resort (void)
      SCM_UNDEFINED);
   SCM seed = SCM_INUM0;
 
-#ifdef HAVE_POSIX
-  sources = scm_cons (scm_getpid (), sources); /* process ID */
-#endif
-
   /* Concatenate the sources bitwise to form the seed */
   while (scm_is_pair (sources))
     {


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]