git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2000-11-02 09:04:54 +00:00
Родитель 4b9666b700
Коммит 58e04b755a
6 изменённых файлов: 21 добавлений и 15 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Thu Nov 2 18:01:16 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
* random.c (rb_f_rand): half-baked float support fixed. This fix
was originally proposed by K.Kosako <kosako@sofnec.co.jp>.
Tue Oct 31 17:27:17 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
* bignum.c: change digit size to `long|int' if long long is

Просмотреть файл

@ -20,14 +20,14 @@ VALUE rb_cBignum;
#define USHORT _USHORT
#endif
#if SIZEOF_LONG*2 <= SIZEOF_LONG_LONG
typedef unsigned long BDIGIT;
typedef unsigned long long BDIGIT_DBL;
typedef long long BDIGIT_DBL_SIGNED;
#elif SIZEOF_INT*2 <= SIZEOF_LONG_LONG
#if SIZEOF_INT*2 <= SIZEOF_LONG_LONG
typedef unsigned int BDIGIT;
typedef unsigned long long BDIGIT_DBL;
typedef long long BDIGIT_DBL_SIGNED;
#elif SIZEOF_INT*2 <= SIZEOF___INT64
typedef unsigned int BDIGIT;
typedef unsigned __int64 BDIGIT_DBL;
typedef __int64 BDIGIT_DBL_SIGNED;
#else
typedef unsigned short BDIGIT;
typedef unsigned long BDIGIT_DBL;
@ -469,7 +469,7 @@ dbl2big(d)
double d;
{
long i = 0;
long c;
BDIGIT c;
BDIGIT *digits;
VALUE z;
double u = (d < 0)?-d:d;
@ -489,9 +489,9 @@ dbl2big(d)
digits = BDIGITS(z);
while (i--) {
u *= BIGRAD;
c = (long)u;
c = (BDIGIT)u;
u -= c;
digits[i] = (BDIGIT)c;
digits[i] = c;
}
return z;

Просмотреть файл

@ -113,6 +113,7 @@ AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(long long, 0)
AC_CHECK_SIZEOF(__int64, 0)
AC_CHECK_SIZEOF(void*, 4)
AC_CHECK_SIZEOF(float, 4)
AC_CHECK_SIZEOF(double, 8)

Просмотреть файл

@ -18,10 +18,7 @@
double strtod();
#endif
#if SIZEOF_LONG*2 <= SIZEOF_LONG_LONG
typedef unsigned long BDIGIT;
#define SIZEOF_BDIGITS SIZEOF_LONG
#elif SIZEOF_INT*2 <= SIZEOF_LONG_LONG
#if SIZEOF_INT*2 <= SIZEOF_LONG_LONG || SIZEOF_INT*2 <= SIZEOF___INT64
typedef unsigned int BDIGIT;
#define SIZEOF_BDIGITS SIZEOF_INT
#else

Просмотреть файл

@ -147,8 +147,11 @@ rb_f_rand(argc, argv, obj)
}
switch (TYPE(vmax)) {
case T_FLOAT:
if (RFLOAT(vmax)->value <= LONG_MAX && RFLOAT(vmax)->value >= LONG_MIN)
if (RFLOAT(vmax)->value <= LONG_MAX && RFLOAT(vmax)->value >= LONG_MIN) {
max = (long)RFLOAT(vmax)->value;
break;
}
vmax = rb_dbl2big(RFLOAT(vmax)->value);
/* fall through */
case T_BIGNUM:
return rb_big_rand(vmax, RANDOM_NUMBER);

Просмотреть файл

@ -1,4 +1,4 @@
#define RUBY_VERSION "1.6.2"
#define RUBY_RELEASE_DATE "2000-11-01"
#define RUBY_RELEASE_DATE "2000-11-02"
#define RUBY_VERSION_CODE 162
#define RUBY_RELEASE_CODE 20001101
#define RUBY_RELEASE_CODE 20001102