[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>

33 messages 2000/02/08

[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>

Conrad writes:

13 messages 2000/02/15

[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>

17 messages 2000/02/19
[#1544] Re: Ruby/GTK and the mainloop — Yasushi Shoji <yashi@...> 2000/02/23

Hello Ian,

[#1550] Re: Ruby/GTK and the mainloop — Ian Main <imain@...> 2000/02/23

On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:

[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>

((FYI: This was sent to the Ruby mail list.))

10 messages 2000/02/19

[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>

The following message is a courtesy copy of an article

12 messages 2000/02/25

[ruby-talk:01569] Re: Ruby: constructors, new and initialise

From: Yukihiro Matsumoto <matz@...>
Date: 2000-02-25 03:09:16 UTC
List: ruby-talk #1569
The following message is a courtesy copy of an article
that has been posted to comp.lang.misc as well.

Hi,

Dave Thomas <Dave@Thomases.com> writes:

|> some classes do not invoke `initialize' in their `new'
|> method.  They are Array, Regexp, IO (and its subclasses),
|> Hash, String, Thread, Class, and Module.  
|> # I'm feeling something left.

|Is this a performance thing? It seems like something of a surprise
|waiting to happen.

Two reasons:

  * performance, as you guessed.

  * these classes define their own version of `new' rather than using
    generic `new' defined in Object class.  these `new' methods
    use argument to allocate object, before calling `initialize' if any.

The latter is more significant.  The `initialize' trick works well
only if the arguments are used to initialize, not to allocate object.

For example, `new' of Array class uses its argument to determine
allocation size of internal buffer.  Calling `initialize' in the
method is useless, because meaning of an argument is already fixed.

I grad to hear if there's other good way to resolve it, preferably
being compatible.

							matz.

In This Thread

Prev Next