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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Curt Hagenlocher
Sent: Wednesday, April 30, 2008 8:14 PM
To: [email protected]
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 <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> 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: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> [mailto:[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>] On Behalf Of Wayne Kelly
Sent: Wednesday, April 30, 2008 4:40 PM
To: [email protected]<mailto:[email protected]>
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
[email protected]<mailto:[email protected]>
http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
[email protected]<mailto:[email protected]>
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to