[#1026] Is this a bug? — Dave Thomas <Dave@...>
18 messages
2000/01/03
[#1053] rand() / drand48() — ts <decoux@...>
11 messages
2000/01/05
[#1055] Re: rand() / drand48()
— matz@... (Yukihiro Matsumoto)
2000/01/05
[#1061] Re: rand() / drand48()
— gotoken@... (GOTO Kentaro)
2000/01/07
Hi,
[#1067] Here docs not skipping leading spaces — Dave Thomas <Dave@...>
5 messages
2000/01/08
[#1083] YADQ (Yet Another Dumb Question) — Dave Thomas <Dave@...>
12 messages
2000/01/10
[#1084] Infinite loop — Dave Thomas <Dave@...>
17 messages
2000/01/11
[#1104] The value of while... — Dave Thomas <Dave@...>
24 messages
2000/01/11
[#1114] Re: The value of while...
— Dave Thomas <Dave@...>
2000/01/12
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
[#1128] Re: The value of while... — David Suarez de Lis <excalibor@...>
Hi all,
1 message
2000/01/12
[#1133] Re: Class variables... — David Suarez de Lis <excalibor@...>
Hi there,
2 messages
2000/01/12
[#1158] Is this expected behavior? — Dave Thomas <Dave@...>
6 messages
2000/01/21
[#1172] Re: Possible bug in ruby-man-1.4 — Huayin Wang <wang@...>
> |Well, I guess it comes down to what you mean by an integer
10 messages
2000/01/24
[#1177] Re: Possible bug in ruby-man-1.4
— Dave Thomas <Dave@...>
2000/01/25
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
[#1188] Enumerable and index — Dave Thomas <Dave@...>
5 messages
2000/01/27
[#1193] Semantics of chomp/chop — Dave Thomas <Dave@...>
7 messages
2000/01/28
[#1197] Question about 'open' — Dave Thomas <Dave@...>
8 messages
2000/01/30
[ruby-talk:01078] Re: rand() / drand48()
From:
Katsuyuki Komatsu <komatsu@...>
Date:
2000-01-10 05:09:04 UTC
List:
ruby-talk #1078
In the message of [ruby-talk:01055] Re: rand() / drand48()
on 2000/1/6 00:52:46 matz@netlab.co.jp (Yukihiro Matsumoto) wrote:
|| Apparently in random.c, ruby never check if the initialization function
|| was called. Can this be a problem for the random generator ?
|
|Oops, I haven't noticed that. You're right. Here's the patch.
If HAVE_RANDOM is not defined, `first' would not be defined and
not accessible from rb_f_rand().
Also, both HAVE_DRAND48 and HAVE_RANDOM are defined, unnecessary
initstate() and setstate() call would be generated.
How abort this patch against random.c 1.8 ?
--- random.c.dist Sat Jan 8 14:00:21 2000
+++ random.c Sun Jan 9 18:13:51 2000
@@ -77,6 +77,6 @@ void srand48 _((long));
#endif /* not HAVE_DRAND48 */
-#ifdef HAVE_RANDOM
static int first = 1;
+#if !defined HAVE_DRAND48 && defined HAVE_RANDOM
static char state[256];
#endif
@@ -89,8 +89,7 @@ rand_init(seed)
static unsigned int saved_seed;
-#ifdef HAVE_RANDOM
+#if !defined HAVE_DRAND48 && defined HAVE_RANDOM
if (first == 1) {
initstate(1, state, sizeof state);
- first = 0;
}
else {
@@ -98,4 +97,5 @@ rand_init(seed)
}
#endif
+ first = 0;
SRANDOM(seed);
@@ -135,6 +135,4 @@ rb_f_rand(obj, vmax)
{
long val, max;
-
- static initialized = 0;
if (first) {
--
Katsuyuki Komatsu <komatsu@sarion.co.jp>