[#5563] Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...>

Lately, I've been thinking about the future of ruby

44 messages 2005/08/19
[#5564] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/19

On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:

[#5571] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/19

--- Austin Ziegler <halostatue@gmail.com> wrote:

[#5574] Re: Non-overridable and non-redefinable methods — TRANS <transfire@...> 2005/08/20

Just wanted to add a few things.

[#5581] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/20

On 8/19/05, TRANS <transfire@gmail.com> wrote:

[#5583] Re: Non-overridable and non-redefinable methods — "David A. Black" <dblack@...> 2005/08/20

Hi --

[#5585] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/20

--- "David A. Black" <dblack@wobblini.net> wrote:

[#5609] Pathname#walk for traversing path nodes (patch) — ES <ruby-ml@...>

Here is a small addition to Pathname against 1.9, probably suited

20 messages 2005/08/22

Re: Wandering in the Wilderness Project

From: Eric Hodel <drbrain@...7.net>
Date: 2005-08-20 08:37:12 UTC
List: ruby-core #5577
On 20 Aug 2005, at 00:13, Charles E. Thornton wrote:

> 1) VALUE Interpretation - Is the following Correct?
>
>  a) If the LSB = 1, it is a Small Integer.
>  b) If the VALUE is equal to 0,2,4, or 6 it is a special
>     constant: false, true, nil, or undef.
>  c) If the lower 8 bits are equal to'0xe', it is a Symbol.
>
>  d) Otherwise, it is an Object Reference

You're missing Fixnum representation.

> 3) Question - Why not put 'iv_tbl' pointers in all Built-in Objects.
>     a) Can every Object have valid Instance Variables?

Yes, see rb_obj_instance_variables in variable.c, or play with irb.

>   b) Ruby Hacking Guide seems to put forth the argument that  
> 'iv_tbl' entries in other Built-in Objects would waste to much memory.
>        aa) Why? -Four bytes per object does not seem to be a major  
> hit?

Float, String, etc rarely use ivars, so it makes more sense to use  
generic_iv_tbl instead.

>        bb) Even if it is - Memory Usage should not be a problem for  
> the
>            scale of programs using Ruby - Or am I wrong?

An extra 4 bytes per object would be pretty expensive in a 50+ MB  
process.

(I run 20 of them on a webserver.)

>        dd) I would trade reasonable increases in memory usage for  
> greater processing efficiency EVERY TIME!

I think the memory increase would be a bit unreasonable.  Every  
Float, String, Array, Regexp, Hash, File and wrapped C object would  
get 4 bytes bigger for a feature that is so rarely used.

The way things are currently done you get the flexibility you want at  
a minimal cost of both size and speed.  (Unless, of course, you're  
doing something strange like adding ivars to objects of all the  
builtin classes.  I can't think of a good reason to do that, though.)

-- 
Eric Hodel - drbrain@segment7.net - http://segment7.net
FEC2 57F1 D465 EB15 5D6E  7C11 332A 551C 796C 9F04


In This Thread