[Ironruby-core] Opening up our tree to external committers

Tomas Matousek Tomas.Matousek at microsoft.com
Wed Apr 30 23:43:14 EDT 2008


Each library (like digest, openssl) would have its own initialize method. Require would call that initializer. The initializer pollutes the global namespace by types contained in the library.
Therefore there is no performance hit nor incompatibility if you don't do require. And loading of such library is a matter of running the initializer. No probing for assemblies on disk. Therefore grouping libraries to a single assembly is better performance-wise.

The size of IL of libraries that are just thin wrappers on top of functionality that is already contained in Silverlight distribution is imo negligible. On the other hand, e.g. Oniguruma or Yaml libraries are huge. Therefore it's a good idea to have them in a separate assembly.

The only issue that needs to be solved is how to efficiently discover libraries embedded in .NET assemblies.

Tomas

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Curt Hagenlocher
Sent: Wednesday, April 30, 2008 8:14 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Opening up our tree to external committers

One advantage of having "one dll per library" is that you can make decisions about which DLL to load based solely on the library name.  Once you have multiple libraries per DLL, you need a more complicated probing or mapping scheme to know which assembly to load.
On Wed, Apr 30, 2008 at 6:38 PM, Tomas Matousek <Tomas.Matousek at microsoft.com<mailto:Tomas.Matousek at microsoft.com>> wrote:
I don't think we should go crazy and create one dll per library. Loading dlls has some overhead. Since digest and openssl are just IronRuby stubs for functionality already implemented in BCL, it could be in one dll. I need to figure out how to do loading of Ruby libraries contained in an assembly, but I think it could be done.

Tomas

-----Original Message-----
From: ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org> [mailto:ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org>] On Behalf Of Wayne Kelly
Sent: Wednesday, April 30, 2008 4:40 PM
To: ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org>
Subject: Re: [Ironruby-core] Opening up our tree to external committers

For consistency, can we also separate the other standard libraries such as digest, openssl, etc (that require explicit loading) into separate assemblies?
This of course, first requires us to be able to load such assemblies.

There will of course be an ever increasing set of such libraries, so it would be nice to have a relatively lightweight process to allow such new directories/libraries to be created.

Note, some of these libraries might be implemented using a combination of Ruby and C# code.

I hope this mechanism will enable people to upload prototypes of what they're working on, so that we don't need to wait until something is complete and polished before seeing it.

Perhaps we could have a generic IronRuby.Misc that people could create directories  beneath initially, which could then be moved to top level status once they've matured.

Cheers, Wayne.
_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org<mailto:Ironruby-core at rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org<mailto:Ironruby-core at rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080430/13b5bf73/attachment.html>


More information about the Ironruby-core mailing list