[#3006] CVS repository — "Eugene Scripnik" <hoaz@...>

Hello.

21 messages 2004/06/16
[#3008] Re: CVS repository — ts <decoux@...> 2004/06/16

>>>>> "E" == Eugene Scripnik <hoaz@gala.net> writes:

[#3009] Re: CVS repository — Michal Rokos <michal@...> 2004/06/16

Hi!

[#3057] Ruby 1.8.2 to be released. — matz@... (Yukihiro Matsumoto)

Hi,

20 messages 2004/06/23

Re: class= and type checks when casting

From: nobu.nokada@...
Date: 2004-06-26 01:08:10 UTC
List: ruby-core #3091
Hi,

At Sat, 26 Jun 2004 04:51:40 +0900,
Sean O'Dell wrote in [ruby-core:03090]:
> Matz, I'm not sure if you followed the discussion in ruby-talk about having a 
> "class=" method.  We were just talking about changing the class of an object, 
> and what problems would/would not arise in so doing.  When I tried 
> implementing "class=" on my own, Ruby crashed pretty badly in a lot of 
> places.  Then I realized the reason was because so much code casts VALUEs to 
> RFILE, RHASH, etc. without checking that the types were actually valid.  So I 
> changed many of the casts in ruby.h (RHASH, RFILE, RSTRING, etc.) to perform 
> a quick type check.  That solved the problem of crashing the built-in types 
> when the class was changed.  I ran some tests; 100,000x calling file#read 
> with and without checking that the file object's class was truly T_FILE, and 
> I noticed no time difference.  I don't think the extra check adds any 
> noticable overhead.

That comparison using I/O wouldn't be accurate.

First of all, why do you want to do it, and what do you want to
do by it?

-- 
Nobu Nakada

In This Thread