Sounds like a worthwhile change to me.

On Mon, Feb 16, 2009 at 9:38 PM, Charles Oliver Nutter <
[email protected]> wrote:

> I'm working on http://jira.codehaus.org/browse/JRUBY-3214 and I think we
> need to ratchet down what load and require do when loading .class files.
> They've started to get overloaded for loading an individual Java class,
> which was never the intended purpose. This generally circumvents normal Java
> classloading and classpath and usually causes things to break, since you can
> easily load in a single class but fail to load its dependencies.
>
> So I propose the following:
>
> load and require shall only be used for loading .jar files (as an analog to
> extensions), .rb files, or .class files that represent compiled .rb files.
>
> The problem in the bug is that it tries first to do a normal class load,
> which sees the current directory's "baz" class and loads it before the
> "baz.class" in ../foo. When normal Java classloading is taken out of the
> equation, it works correctly.
>
> This also will affect classloading somewhat; since a given classloader can
> only load a given package + class once, and with Ruby load paths there could
> potentially be multiple compiled .rb files with the same Java package and
> class, each precompiled .rb file will be loaded in its own child classloader
> and executed.
>
> Those of you with precompiled code will probably want to respond on this
> thread. I'm going to commit a version of this to trunk that you should be
> able to try out. In general I don't expect it will affect you if your
> requires are only ever used to load .jar extensions or .rb/.class Ruby
> scripts.
>
> - Charlie
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>

Reply via email to