[#31647] [Backport #3666] Backport of r26311 (Bug #2587) — Luis Lavena <redmine@...>

Backport #3666: Backport of r26311 (Bug #2587)

13 messages 2010/08/07

[#31666] [Bug #3677] unable to run certain gem binaries' in windows 7 — Roger Pack <redmine@...>

Bug #3677: unable to run certain gem binaries' in windows 7

10 messages 2010/08/10

[#31676] [Backport #3680] Splatting calls to_ary instead of to_a in some cases — Tomas Matousek <redmine@...>

Backport #3680: Splatting calls to_ary instead of to_a in some cases

10 messages 2010/08/11

[#31681] [Bug #3683] getgrnam on computer with NIS group (+)? — Rocky Bernstein <redmine@...>

Bug #3683: getgrnam on computer with NIS group (+)?

13 messages 2010/08/11

[#31843] Garbage Collection Question — Asher <asher@...>

This question is no doubt a function of my own lack of understanding, but I think that asking it will at least help some other folks see what's going on with the internals during garbage collection.

17 messages 2010/08/25
[#31861] Re: Garbage Collection Question — Roger Pack <rogerdpack2@...> 2010/08/26

> The question in short: when an object goes out of scope and has no

[#31862] Re: Garbage Collection Question — Asher <asher@...> 2010/08/26

Right - so how does a pointer ever get off the stack?

[#31873] Re: Garbage Collection Question — Kurt Stephens <ks@...> 2010/08/27

On 8/26/10 11:51 AM, Asher wrote:

[#31894] Re: Garbage Collection Question — Asher <asher@...> 2010/08/27

I very much appreciate the response, and this is helpful in describing the narrative, but it's still a few steps behind my question - but it may very well have clarified some points that help us get there.

[#31896] Re: Garbage Collection Question — Evan Phoenix <evan@...> 2010/08/27

You have introduced something called a "root node" without defining it. What do you mean by this?

[#31885] Avoiding $LOAD_PATH pollution — Eric Hodel <drbrain@...7.net>

Last year Nobu asked me to propose an API for adding an object to

21 messages 2010/08/27

[#31947] not use system for default encoding — Roger Pack <rogerdpack2@...>

It strikes me as a bit "scary" to use system locale settings to

19 messages 2010/08/30

[#31971] Change Ruby's License to BSDL + Ruby's dual license — "NARUSE, Yui" <naruse@...>

Ruby's License will change to BSDL + Ruby's dual license

16 messages 2010/08/31

[ruby-core:31945] Re: Proposal: Autoload with block

From: James Tucker <jftucker@...>
Date: 2010-08-30 12:25:25 UTC
List: ruby-core #31945
On 30 Aug 2010, at 06:09, Nikolai Weibull wrote:

> On Sun, Aug 29, 2010 at 23:52, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
>> (2010/08/30 5:23), Magnus Holm wrote:
> 
>> Yes, and quite simply we (at least me) now consider autoloading a bad idea.
> 
> Asking as someone who has switched to using autoload for basically
> everything I write for Windows (work) because require is insanely slow
> on Windows (especially on network shares) in both 1.8 and 1.9, can you
> please expand on why you now consider autoloading to be a bad idea?

Autoload is a bad idea if you're doing loads inside of a threaded environment, as it can cause double loads to occur (but not on MRI I think), and this can result in some code that is evaluated twice to have some unintended effect. It can also result in incomplete constants being used such as to cause unusual errors, for example, methods not yet being defined.

The reality is, this is actually the same for any lazy load in a threaded environment. People seem to have taken the issue of autoload as if it is the cause of the problem, however, there is another opinion that the cause of the problem is allowing code to be loaded in a threaded environment. In my opinion (and a number of others) to load code in a threaded manner is fraught with potential issues that are hard to overcome, furthermore, the common runtime of most applications should be:

Load (code)
Setup (class heirachy, configurations, etc)
Spawn (threads)
Run (application logic)

If users keep to good order, problems can be avoided regardless of loading mechanisms.

I sympathise with your use of autoload, indeed I use autoload to save significant overhead in tests and such, and simply ensure that code is fully loaded and configured in any threaded production environment. Indeed a large part of the reason for subload[1] was to make it easier to override the loader semantics for production runtimes that would be threaded that could not ensure being fully loaded ahead of time. The solution worked very well there.

[1] http://github.com/raggi/subload

In This Thread