[Ironruby-core] .so files and library paths

Wayne Kelly w.kelly at qut.edu.au
Sun May 18 19:56:50 EDT 2008

> -----Original Message-----
> From: John Lam (IRONRUBY)
> Sent: Monday, 19 May 2008 6:21 AM
> To: ironruby-core at rubyforge.org
> Subject: Re: [Ironruby-core] Code Review: RubyLibsAndYaml
> I'm not sure what the best solution to this problem is here -
> we should probably throw an exception if *.so/.dll does not
> refer to a .NET assembly. It's unlikely that existing code
> will require thread.so rather than thread.rb.

I was primarily referring to:

ruby\lib\ruby\1.8\thread.rb which explicitly loads thread.so
ruby\lib\ruby\1.8\openssl.rb which explicitly loads openssl.so
ruby\lib\ruby\1.8\digest.rb which explicilty loads digest.so
ruby\lib\ruby\1.8\pp.rb which explicitly loads etc.so

These are all part of the Windows One click installer distribution.

The .so files reside in ruby\lib\ruby\1.8\i386-mswin32

I've been assuming that it is OK to alter files in this i386-mswin32 directory as they are intended to be platform specific implementations. As IronRuby is effectively a different platform, I've been assuming that we will rename this directory 'ironruby'. I was also assuming, however, that in the long run, it would be "cheating" to modify any of the other ruby source files in the standard libraries in order to get IronRuby to work correctly.

So, what are the ground rules for altering these libraries?

I assume we don't want to get into the business of packaging and distributing the ruby source files in these standard libraries ourselves.

Charles, to what extent does JRuby stick with the existing MRI ruby library directory hierarchy?

On a related issue - MRI automatically includes a number of relative library paths into its load search path. Currently in IronRuby we need to explicitly list each of these libraries in the command line using the /paths command line option (and it's really painfull when there's half a dozen long paths included on your command line). Is there any plan to add any of these search paths automatically, or at least semi automatically? We may want to provide a mechanism for specifying the standard library root (eg "c:\ruby\lib") rather than assuming that it is relative to the ruby interpreter executable, but couldn't we then automatically add other "standard" paths relative to that?

There is of course also the possibility of creating a new (additional) IronRuby console front end that behaves more like MRI in terms of command line options.

Cheers, Wayne.

More information about the Ironruby-core mailing list