[#68415] eval'ing a config file — Ian Macdonald <ian@...>

Hi,

19 messages 2003/04/01

[#68421] sharing objects between tests (revisited?) — Paul Brannan <pbrannan@...>

I don't know if I've asked this on this list before or only on irc (I

13 messages 2003/04/01

[#68436] April Fools. — Daniel Carrera <dcarrera@...>

Hey guys and gals,

24 messages 2003/04/01

[#68449] Newbie question:read file speed — "Greg Brondo" <greg@...>

Why is ruby (on windows) so much slower at reading lines in a file (as

36 messages 2003/04/01

[#68527] Any Hardware/EDA engineers out there? — ptkwt@...1.aracnet.com (Phil Tomson)

12 messages 2003/04/03

[#68605] keeping track of non-exported global variables — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

problem:

12 messages 2003/04/04

[#68623] To inherit or to include? That is the question. — Jim Freeze <jim@...>

Hi

11 messages 2003/04/04

[#68707] Call for standardised package installation procedure — google@... (Tom Payne)

I'm helping maintain Ruby and Ruby packages in Gentoo Linux.

57 messages 2003/04/06
[#68712] Re: Call for standardised package installation procedure — "James Britt" <james@...> 2003/04/06

> It would make my job a lot easier if just one were chosen, and perhaps

[#68729] Re: Call for standardised package installation procedure — "Hal E. Fulton" <hal9000@...> 2003/04/06

----- Original Message -----

[#68738] Re: Call for standardised package installation procedure — google@... (Tom Payne) 2003/04/07

John Johnson <jj5412@earthlink.net> wrote in message news:<1049655145.1847.10.camel@hppav.home.net>...

[#68779] Re: Call for standardised package installation procedure — Austin Ziegler <austin@...> 2003/04/07

On Mon, 7 Apr 2003 16:47:20 +0900, Tom Payne wrote:

[#68781] Re: Call for standardised package installation procedure — Mauricio Fern疣dez <batsman.geo@...> 2003/04/07

On Tue, Apr 08, 2003 at 02:34:26AM +0900, Austin Ziegler wrote:

[#68826] Re: Call for standardised package installation procedure — Gavin Sinclair <gsinclair@...> 2003/04/08

On Tuesday, April 8, 2003, 3:42:49 AM, Mauricio wrote:

[#68803] Having trouble getting iconv-0.5 working on OS X — Sam Roberts <sroberts@...>

I do a make, install, and then:

10 messages 2003/04/08
[#68806] Re: Having trouble getting iconv-0.5 working on OS X — Nobuyoshi Nakada <nobu.nokada@...> 2003/04/08

Hi,

[#68811] Array Sutraction — Jim Freeze <jim@...>

Ok, this has been discussed at length previously,

25 messages 2003/04/08
[#68820] Re: Array Sutraction — "Robert Klemme" <bob.news@...> 2003/04/08

[#68828] Re: Array Sutraction — Michael Campbell <michael_s_campbell@...> 2003/04/08

>

[#68843] Ruby for graphics — "Your Name Here" <jim@...>

I just learned of Ruby, and was wondering if its a good lang for

17 messages 2003/04/08
[#68844] Re: [Q] Ruby for graphics — Michael Campbell <michael_s_campbell@...> 2003/04/08

--- Your Name Here <jim@fivek.com> wrote:

[#68908] The "!" and "?" characters. — Daniel Carrera <dcarrera@...>

One of the things I like about Ruby is that it can use ! and ? in method

22 messages 2003/04/08

[#68929] embedding ruby — emilie3012@... (Steve Hart)

Please forgive the following if answers appear elsewhere but I have

13 messages 2003/04/09

[#68943] unknown node type 0 — Francois GORET <fg@...>

Hello,

12 messages 2003/04/09

[#68996] ANN: ri v1.8 — Dave Thomas <dave@...>

I'm releasing a very preliminary version of 'ri' for Ruby 1.8. This

21 messages 2003/04/09

[#69025] tutorial on embedding ruby (review) — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

What do you think about it ?

30 messages 2003/04/09

[#69054] PRIVATE AND CONFIDENTIAL — "Mr. John Eze" <mr_musa3@...>

16 messages 2003/04/10
[#69066] Re: PRIVATE AND CONFIDENTIAL — Peter Hickman <peter@...> 2003/04/10

As an aside not only would the origonal spam be removed by your rules,

[#69096] Need IO Optimization help — Jim Freeze <jim@...>

Hello:

69 messages 2003/04/10
[#69197] Re: Need IO Optimization help — ptkwt@...1.aracnet.com (Phil Tomson) 2003/04/11

In article <20030411115918.A35958@linnet.org>,

[#69239] Does dynamic typing make it easier to place an object in a container? — Mark Wilson <mwilson13@...> 2003/04/12

The following is from

[#69240] Re: Does dynamic typing make it easier to place an object in a container? — Joel VanderWerf <vjoel@...> 2003/04/12

Mark Wilson wrote:

[#69245] Re: Does dynamic typing make it easier to place an object in a container? — Ryan Pavlik <rpav@...> 2003/04/12

On Sat, 12 Apr 2003 13:40:07 +0900

[#69581] Re: Need IO Optimization help — David King Landrith <dave@...> 2003/04/17

In my experience, the fastest way to access files (by far) is mmap.

[#69583] Re: Need IO Optimization help — Jim Freeze <jim@...> 2003/04/17

On Thursday, 17 April 2003 at 19:29:16 +0900, David King Landrith wrote:

[#69591] Re: Need IO Optimization help — David King Landrith <dave@...> 2003/04/17

On Thursday, April 17, 2003, at 06:45 AM, Jim Freeze wrote:

[#69593] Re: Need IO Optimization help — Jim Freeze <jim@...> 2003/04/17

On Thursday, 17 April 2003 at 22:11:55 +0900, David King Landrith wrote:

[#69179] Two questions — "Steve Adams" <adamss@...>

What restrictions does the Ruby license place on the construction and sale

14 messages 2003/04/11

[#69194] splat question — "Chris Pine" <nemo@...>

(This question assumes that the unary `*' (used in arrays and such) is

13 messages 2003/04/11

[#69214] class documentation — "Bermejo, Rodrigo" <rodrigo.bermejo@...>

Hi all;

13 messages 2003/04/11

[#69271] Controlling an interactive program from Ruby — Daniel Carrera <dcarrera@...>

Hi,

12 messages 2003/04/13

[#69280] ruby_script() — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I am wondering what exactly ruby_script() is doing ?

15 messages 2003/04/13

[#69357] A class, that knows about it's instances + Sets — KONTRA Gergely <kgergely@...>

Hi!

11 messages 2003/04/14

[#69413] rb_class_new_instance behaves strange — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

My code is behaving different, when im doing this change:

23 messages 2003/04/15

[#69424] Urgent Assistance — "Victor Aloma" <victorloma@...>

12 messages 2003/04/15

[#69439] ANN: Debian packages of FreeRIDE, FOX, FXRuby, Ripper, FXScintilla, etc — Mauricio Fern疣dez <batsman.geo@...>

9 messages 2003/04/15

[#69470] regular expressions — "Chris Pine" <nemo@...>

When I first learned regular expressions, they were no problem. It was in a

27 messages 2003/04/15

[#69518] Roundoff problem with Float and Marshal — cilibrar@... (Rudi Cilibrasi)

The following small test program:

29 messages 2003/04/16

[#69536] Reg. Expressios with "\n" — Daniel Carrera <dcarrera@...>

Hello,

14 messages 2003/04/16

[#69585] extension - redirect a block — student_vienna@... (daniel)

hello,

11 messages 2003/04/17

[#69595] ANN: ri 1.8b — Dave Thomas <dave@...>

I've updated ri:

14 messages 2003/04/17

[#69645] avoiding the module name — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

11 messages 2003/04/17

[#69700] Biased weighted random? — "Hal E. Fulton" <hal9000@...>

Hi, all...

51 messages 2003/04/18

[#69762] Multi-Lingual Ruby — Jim Weirich <jweirich@...>

I was following a Java VS Perl discussion on a web board that I read.

12 messages 2003/04/20

[#69806] ASCII class inheritance tree generator — Simon Vandemoortele <deliriousNOSPAM@...>

I thought I might share this little piece of code that generates a

10 messages 2003/04/21

[#69830] Ruby in a university course — "Chad Fowler" <chadfowler@...>

Maybe this has already been covered here, but I found it interesting =

14 messages 2003/04/21

[#69931] Ruby.shop — "Hal E. Fulton" <hal9000@...>

Hello, all.

28 messages 2003/04/23

[#69956] grep and regular expressions in ruby — "Krishna Dole" <kpd@...>

I'm quite taken with ruby, but recently I ran into trouble using grep. I

15 messages 2003/04/23

[#69969] Subject: Re: [ANN] Ruby.shop — Jim Weirich <jweirich@...>

On Wed, 2003-04-23 at 18:16, Hal E. Fulton wrote:

18 messages 2003/04/24

[#70015] How to call an object instance's method? — Rene Tschirley <pooh@...>

Dear Ruby Experts,

28 messages 2003/04/24
[#70016] Re: How to call an object instance's method? — "Robert Klemme" <bob.news@...> 2003/04/24

[#70019] Re: How to call an object instance's method? — Rene Tschirley <pooh@...> 2003/04/24

Robert Klemme wrote:

[#70072] Re: How to call an object instance's method? — "Chris Pine" <nemo@...> 2003/04/24

----- Original Message -----

[#70017] MathN — Dave Thomas <dave@...>

I'm trying to get to grips with the 'mathn' library. I can see what it

12 messages 2003/04/24

[#70034] block.call vs. yield — "Orion Hunter" <orion2480@...>

I noticed that the use of block/yield differs slightly when a "break" is

44 messages 2003/04/24
[#70046] Re: block.call vs. yield — matz@... (Yukihiro Matsumoto) 2003/04/24

Hi,

[#70087] Re: block.call vs. yield — matz@... (Yukihiro Matsumoto) 2003/04/25

Hi,

[#70113] Re: block.call vs. yield — dblack@... 2003/04/25

Hi --

[#70182] Re: block.call vs. yield — "Hal E. Fulton" <hal9000@...> 2003/04/26

----- Original Message -----

[#70189] Re: block.call vs. yield — dblack@... 2003/04/26

Hi --

[#70039] Accessing Ruby class from C extention — ptkwt@...1.aracnet.com (Phil Tomson)

I know it's possible to write Ruby in C but is it possible to instantiate

16 messages 2003/04/24

[#70064] Hashes and Enumerable#each_with_index — Ryan Pavlik <rpav@...>

OK, looking at the archives I know this was discussed a few years ago,

16 messages 2003/04/24

[#70265] Generating a DLL file? — "Rich" <rich@...>

Let's start with:=20

22 messages 2003/04/27
[#70277] Re: Generating a DLL file? — "Rich" <rich@...> 2003/04/28

I don't know C - or C++... and I'd rather not learn.

[#70280] Re: Generating a DLL file? — Michael Campbell <michael_s_campbell@...> 2003/04/28

--- Rich <rich@lithinos.com> wrote:

[#70268] c++/ruby debugging advices — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

Im embedding ruby into c++ and im having a segfault problem which

11 messages 2003/04/27

[#70422] Pass-by reference VS encapsulation ? — Simon Vandemoortele <deliriousREMOVEUPPERCASETEXTTOREPLY@...>

34 messages 2003/04/30

Re: Roundoff problem with Float and Marshal

From: nobu.nokada@...
Date: 2003-04-18 05:32:58 UTC
List: ruby-talk #69673
Hi,

At Fri, 18 Apr 2003 12:20:01 +0900,
Yukihiro Matsumoto wrote:
> It's the limitation of base 10 representation of float values that
> Marshal uses.  We need to use binary representation like XDR to solve
> this.  I'm not sure if it is worth for the cost of its implementation
> and portability.  Float tend to be inexact, after all.

I'd tried C99 style hexadecimal float.  I expect this is
portable (except for depending on frexp() and ldexp()), but
could not be loaded by current version.

But still, strtod() problem remains.


Index: marshal.c
===================================================================
RCS file: /pub/cvs/ruby/src/ruby/marshal.c,v
retrieving revision 1.84
diff -u -2 -p -r1.84 marshal.c
--- marshal.c	9 Apr 2003 05:08:25 -0000	1.84
+++ marshal.c	17 Apr 2003 14:01:58 -0000
@@ -44,5 +44,5 @@ shortlen(len, ds)
 
 #define MARSHAL_MAJOR   4
-#define MARSHAL_MINOR   8
+#define MARSHAL_MINOR   9
 
 #define TYPE_NIL	'0'
@@ -201,6 +201,39 @@ w_float(d, arg)
     }
     else {
-	/* xxx: should not use system's sprintf(3) */
-	sprintf(buf, "%.16g", d);
+	char *p = buf;
+	double i;
+	int e;
+
+	if (d < 0) {
+	    d = -d;
+	    *p++ = '-';
+	}
+	strcpy(p, "0x");
+	p += 2;
+	if (d > 0x10000 || d < 1.0) {
+	    d = frexp(d, &e);
+	    *p++ = '0';
+	}
+	else {
+	    d = modf(d, &i);
+	    sprintf(p, "%x", (int)i);
+	    p += strlen(p);
+	    e = 0;
+	}
+	if (d > 0) {
+	    *p++ = '.';
+	    do {
+		d = modf(d * 0x10000, &i);
+		sprintf(p, "%.4x", (int)i);
+		p += 4;
+	    } while (d > 0);
+	}
+	while (p[-1] == '0') --p;
+	if (e) {
+	    sprintf(p, "p%+d", e);
+	    p += strlen(p);
+	}
+	w_bytes(buf, p - buf, arg);
+	return;
     }
     w_bytes(buf, strlen(buf), arg);
@@ -778,4 +811,52 @@ r_symbol(arg)
 }
 
+static double
+r_float(str)
+    VALUE str;
+{
+    int s = 0, n;
+    unsigned long fr;
+    double d, t = 0.0;
+    char tmp[SIZEOF_LONG*CHAR_BIT/4+1], *e;
+    const char *ptr = RSTRING(str)->ptr;
+    const char *p = ptr;
+
+    if (*ptr == '-') {
+	s = -1;
+	p++;
+    }
+    if (strcmp(ptr, "nan") == 0) {
+	return t / t;
+    }
+    else if (strcmp(p, "inf") == 0) {
+	return (s ? -1.0 : 1.0) / t;
+    }
+    else if (strncmp(p, "0x", 2) != 0) {
+	return strtod(ptr, 0);
+    }
+    p = strchr(ptr = p, 'p');
+    n = p ? atoi(p + 1) : 0;
+    e = strchr(ptr, '.');
+    n += 4 * (e ? e - ptr : p ? p - ptr : strlen(ptr));
+    tmp[sizeof tmp - 1] = 0;
+    d = 0;
+    while (*ptr) {
+	strncpy(tmp, ptr, sizeof tmp - 1);
+	fr = strtoul(tmp, &e, 16);
+	d += ldexp((double)fr, n -= 4 * (e - tmp));
+	ptr += e - tmp;
+	if (*ptr == '.') {
+	    ptr++;
+	}
+	else if (*ptr == 'p') {
+	    break;
+	}
+    }
+    if (s) {
+	d = -d;
+    }
+    return d;
+}
+
 static char*
 r_unique(arg)
@@ -916,23 +997,6 @@ r_object0(arg, proc)
 
       case TYPE_FLOAT:
-	{
-	    double d, t = 0.0;
-	    VALUE str = r_bytes(arg);
-
-	    if (strcmp(RSTRING(str)->ptr, "nan") == 0) {
-		d = t / t;
-	    }
-	    else if (strcmp(RSTRING(str)->ptr, "inf") == 0) {
-		d = 1.0 / t;
-	    }
-	    else if (strcmp(RSTRING(str)->ptr, "-inf") == 0) {
-		d = -1.0 / t;
-	    }
-	    else {
-		d = strtod(RSTRING(str)->ptr, 0);
-	    }
-	    v = rb_float_new(d);
-	    r_regist(v, arg);
-	}
+	v = rb_float_new(r_float(r_bytes(arg)));
+	r_regist(v, arg);
 	break;
 


-- 
Nobu Nakada

In This Thread