[前][次][番号順一覧][スレッド一覧]

ruby-changes:1740

From: ko1@a...
Date: 23 Aug 2007 00:06:08 +0900
Subject: [ruby-changes:1740] matz - Ruby:r13231 (trunk): * missing/strtod.c: removed.

matz	2007-08-23 00:05:56 +0900 (Thu, 23 Aug 2007)

  New Revision: 13231

  Removed files:
    trunk/missing/strtod.c
  Modified files:
    trunk/ChangeLog
    trunk/LEGAL
    trunk/version.h

  Log:
    * missing/strtod.c: removed.  [ruby-dev:31588]
    
    * LEGAL: updated.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=13231&r2=13230
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13231&r2=13230
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/LEGAL?r1=13231&r2=13230
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/missing/strtod.c

Index: LEGAL
===================================================================
--- LEGAL	(revision 13230)
+++ LEGAL	(revision 13231)
@@ -66,6 +66,21 @@
     the same distribution terms that you use for the rest of that program.
 
 util.c (partly):
+
+    Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
+
+    Permission to use, copy, modify, and distribute this software for any
+    purpose without fee is hereby granted, provided that this entire notice
+    is included in all copies of any software which is or includes a copy
+    or modification of this software and in all copies of the supporting
+    documentation for such software.
+
+    THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+    WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
+    REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+    OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+
+util.c (partly):
 win32/win32.[ch]:
 
   You can apply the Artistic License to these files. (or GPL,
@@ -144,23 +159,6 @@
 
   These files are all under public domain.
 
-missing/strtod.c:
-
-  This file will not be used on most platforms depending on how the
-  configure script results.  In any case you must not receive any fee
-  with the file itself.
-
-    Copyright (c) 1988-1993 The Regents of the University of California.
-    Copyright (c) 1994 Sun Microsystems, Inc.
-
-    Permission to use, copy, modify, and distribute this
-    software and its documentation for any purpose and without
-    fee is hereby granted, provided that the above copyright
-    notice appear in all copies.  The University of California
-    makes no representations about the suitability of this
-    software for any purpose.  It is provided "as is" without
-    express or implied warranty.
-
 missing/strtoul.c:
 
   This file will not be used on most platforms depending on how the
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13230)
+++ ChangeLog	(revision 13231)
@@ -1,3 +1,9 @@
+Thu Aug 23 00:04:45 2007  Yukihiro Matsumoto  <matz@r...>
+
+	* missing/strtod.c: removed.  [ruby-dev:31588]
+
+	* LEGAL: updated.
+
 Wed Aug 22 15:59:44 2007  Koichi Sasada  <ko1@a...>
 
 	* bootstraptest/test_knownbug.rb:
Index: version.h
===================================================================
--- version.h	(revision 13230)
+++ version.h	(revision 13231)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2007-08-22"
+#define RUBY_RELEASE_DATE "2007-08-23"
 #define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20070822
+#define RUBY_RELEASE_CODE 20070823
 #define RUBY_PATCHLEVEL 0
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 0
 #define RUBY_RELEASE_YEAR 2007
 #define RUBY_RELEASE_MONTH 8
-#define RUBY_RELEASE_DAY 22
+#define RUBY_RELEASE_DAY 23
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];
Index: missing/strtod.c
===================================================================
--- missing/strtod.c	(revision 13230)
+++ missing/strtod.c	(revision 13231)
@@ -1,271 +0,0 @@
-/* 
- * strtod.c --
- *
- *	Source code for the "strtod" library procedure.
- *
- * Copyright (c) 1988-1993 The Regents of the University of California.
- * Copyright (c) 1994 Sun Microsystems, Inc.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies.  The University of California
- * makes no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without
- * express or implied warranty.
- *
- * RCS: @(#) $Id$
- */
-
-#include "ruby/config.h"
-#ifdef HAVE_STDLIB_H
-#   include <stdlib.h>
-#endif
-#include <ctype.h>
-#include <errno.h>
-extern  int     errno;
-
-#ifndef __STDC__
-# ifdef __GNUC__
-#  define const __const__
-# else
-#  define const
-# endif
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-#ifndef NULL
-#define NULL 0
-#endif
-
-static int maxExponent = 511;	/* Largest possible base 10 exponent.  Any
-				 * exponent larger than this will already
-				 * produce underflow or overflow, so there's
-				 * no need to worry about additional digits.
-				 */
-static double powersOf10[] = {	/* Table giving binary powers of 10.  Entry */
-    10.,			/* is 10^2^i.  Used to convert decimal */
-    100.,			/* exponents into floating-point numbers. */
-    1.0e4,
-    1.0e8,
-    1.0e16,
-    1.0e32,
-    1.0e64,
-    1.0e128,
-    1.0e256
-};
-
-/*
- *----------------------------------------------------------------------
- *
- * strtod --
- *
- *	This procedure converts a floating-point number from an ASCII
- *	decimal representation to internal double-precision format.
- *
- * Results:
- *	The return value is the double-precision floating-point
- *	representation of the characters in string.  If endPtr isn't
- *	NULL, then *endPtr is filled in with the address of the
- *	next character after the last one that was part of the
- *	floating-point number.
- *
- * Side effects:
- *	None.
- *
- *----------------------------------------------------------------------
- */
-
-double
-strtod(string, endPtr)
-    const char *string;		/* A decimal ASCII floating-point number,
-				 * optionally preceded by white space.
-				 * Must have form "-I.FE-X", where I is the
-				 * integer part of the mantissa, F is the
-				 * fractional part of the mantissa, and X
-				 * is the exponent.  Either of the signs
-				 * may be "+", "-", or omitted.  Either I
-				 * or F may be omitted, or both.  The decimal
-				 * point isn't necessary unless F is present.
-				 * The "E" may actually be an "e".  E and X
-				 * may both be omitted (but not just one).
-				 */
-    char **endPtr;		/* If non-NULL, store terminating character's
-				 * address here. */
-{
-    int sign, expSign = FALSE;
-    double fraction, dblExp, *d;
-    register const char *p;
-    register int c;
-    int exp = 0;		/* Exponent read from "EX" field. */
-    int fracExp = 0;		/* Exponent that derives from the fractional
-				 * part.  Under normal circumstatnces, it is
-				 * the negative of the number of digits in F.
-				 * However, if I is very long, the last digits
-				 * of I get dropped (otherwise a long I with a
-				 * large negative exponent could cause an
-				 * unnecessary overflow on I alone).  In this
-				 * case, fracExp is incremented one for each
-				 * dropped digit. */
-    int mantSize;		/* Number of digits in mantissa. */
-    int decPt;			/* Number of mantissa digits BEFORE decimal
-				 * point. */
-    const char *pExp;		/* Temporarily holds location of exponent
-				 * in string. */
-
-    /*
-     * Strip off leading blanks and check for a sign.
-     */
-
-    p = string;
-    while (isspace(*p)) {
-	p += 1;
-    }
-    if (*p == '-') {
-	sign = TRUE;
-	p += 1;
-    } else {
-	if (*p == '+') {
-	    p += 1;
-	}
-	sign = FALSE;
-    }
-
-    /*
-     * Count the number of digits in the mantissa (including the decimal
-     * point), and also locate the decimal point.
-     */
-
-    decPt = -1;
-    for (mantSize = 0; ; mantSize += 1)
-    {
-	c = *p;
-	if (!isdigit(c)) {
-	    if ((c != '.') || (decPt >= 0)) {
-		break;
-	    }
-	    decPt = mantSize;
-	}
-	p += 1;
-    }
-
-    /*
-     * Now suck up the digits in the mantissa.  Use two integers to
-     * collect 9 digits each (this is faster than using floating-point).
-     * If the mantissa has more than 18 digits, ignore the extras, since
-     * they can't affect the value anyway.
-     */
-    
-    pExp  = p;
-    p -= mantSize;
-    if (decPt < 0) {
-	decPt = mantSize;
-    } else {
-	mantSize -= 1;			/* One of the digits was the point. */
-    }
-    if (mantSize > 18) {
-	fracExp = decPt - 18;
-	mantSize = 18;
-    } else {
-	fracExp = decPt - mantSize;
-    }
-    if (mantSize == 0) {
-	fraction = 0.0;
-	p = string;
-	goto done;
-    } else {
-	int frac1, frac2;
-	frac1 = 0;
-	for ( ; mantSize > 9; mantSize -= 1)
-	{
-	    c = *p;
-	    p += 1;
-	    if (c == '.') {
-		c = *p;
-		p += 1;
-	    }
-	    frac1 = 10*frac1 + (c - '0');
-	}
-	frac2 = 0;
-	for (; mantSize > 0; mantSize -= 1)
-	{
-	    c = *p;
-	    p += 1;
-	    if (c == '.') {
-		c = *p;
-		p += 1;
-	    }
-	    frac2 = 10*frac2 + (c - '0');
-	}
-	fraction = (1.0e9 * frac1) + frac2;
-    }
-
-    /*
-     * Skim off the exponent.
-     */
-
-    p = pExp;
-    if ((*p == 'E') || (*p == 'e')) {
-	p += 1;
-	if (*p == '-') {
-	    expSign = TRUE;
-	    p += 1;
-	} else {
-	    if (*p == '+') {
-		p += 1;
-	    }
-	    expSign = FALSE;
-	}
-	while (isdigit(*p)) {
-	    exp = exp * 10 + (*p - '0');
-	    p += 1;
-	}
-    }
-    if (expSign) {
-	exp = fracExp - exp;
-    } else {
-	exp = fracExp + exp;
-    }
-
-    /*
-     * Generate a floating-point number that represents the exponent.
-     * Do this by processing the exponent one bit at a time to combine
-     * many powers of 2 of 10. Then combine the exponent with the
-     * fraction.
-     */
-    
-    if (exp < 0) {
-	expSign = TRUE;
-	exp = -exp;
-    } else {
-	expSign = FALSE;
-    }
-    if (exp > maxExponent) {
-	exp = maxExponent;
-	errno = ERANGE;
-    }
-    dblExp = 1.0;
-    for (d = powersOf10; exp != 0; exp >>= 1, d += 1) {
-	if (exp & 01) {
-	    dblExp *= *d;
-	}
-    }
-    if (expSign) {
-	fraction /= dblExp;
-    } else {
-	fraction *= dblExp;
-    }
-
-done:
-    if (endPtr != NULL) {
-	*endPtr = (char *) p;
-    }
-
-    if (sign) {
-	return -fraction;
-    }
-    return fraction;
-}

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]