tfpt review "/shelveset:NoStaticSites4;REDMOND\tomat" Adds support for SiteLocalStorage to IronRuby binder. This allows us to store arbitrary data in dynamic site rules including other dynamic sites. Using this feature library methods that dynamically invoke other Ruby methods should now take as parameters all sites they''re using instead of calling to statically allocated sites. This will allows us to remove runtime checks from the rules and also decreases the degree of polymorphism for the sites (since static sites are used from many places with variety of targets they tend to be megamorphic). This is first part of the change. Many static sites still remain to be removed. Some library methods (e.g. Range#step) are highly dynamic. Some method need refactoring to reduce the number of sites. Tomas -------------- next part -------------- A non-text attachment was scrubbed... Name: NoStaticSites4.diff Type: application/octet-stream Size: 584357 bytes Desc: NoStaticSites4.diff URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20081126/b8e51cc2/attachment-0001.obj>
Looks good. -----Original Message----- From: Tomas Matousek Sent: Wednesday, November 26, 2008 9:29 AM To: IronRuby External Code Reviewers Cc: ironruby-core at rubyforge.org Subject: Code Review: NoStaticSites4 tfpt review "/shelveset:NoStaticSites4;REDMOND\tomat" Adds support for SiteLocalStorage to IronRuby binder. This allows us to store arbitrary data in dynamic site rules including other dynamic sites. Using this feature library methods that dynamically invoke other Ruby methods should now take as parameters all sites they''re using instead of calling to statically allocated sites. This will allows us to remove runtime checks from the rules and also decreases the degree of polymorphism for the sites (since static sites are used from many places with variety of targets they tend to be megamorphic). This is first part of the change. Many static sites still remain to be removed. Some library methods (e.g. Range#step) are highly dynamic. Some method need refactoring to reduce the number of sites. Tomas