Issue #5698 has been reported by Charles Nutter. ---------------------------------------- Bug #5698: rexml Encoding logic creates unnecessary singleton classes, aliases at runtime http://redmine.ruby-lang.org/issues/5698 Author: Charles Nutter Status: Open Priority: Normal Assignee: Category: lib Target version: Ruby 1.8.7 ruby -v: 1.8.7 head The logic for switching a given parser to a new encoding currently does the following: * Reopens the Encoding module (only on first use of the encoding) * Defines two new methods for the encoding being applied (only on first use) * Singletonizes the parser object and aliases the encoding-specific methods to "encode" and "decode" This last phase is unnecessary, but happens at runtime whenever an encoding is applied to a parser. The resulting singletonizing and method aliasing causes cache flushes. I have created a patch that does not use this singleton logic and which will not cause any singletons or method table updates at steady-state. https://gist.github.com/1420708 I know 1.8.7 is only in security patch mode, but I thought I'd throw this out there. JRuby will probably apply it to our fork of 1.8.7 stdlib.
on 2011-12-02 00:39
[Ruby 1.8 - Bug #5698] rexml Encoding logic creates unnecessary singleton classes, aliases at runtim
on 2011-12-02 00:40
Issue #5698 has been updated by Charles Nutter. Oops, I realized that also has my baseparser.rb patch. It can be ignored; there's a separate bug for that applied against ruby-trunk. I'd love to see that backported to 1.8.7, but it's not related to this bug. ---------------------------------------- Bug #5698: rexml Encoding logic creates unnecessary singleton classes, aliases at runtime http://redmine.ruby-lang.org/issues/5698 Author: Charles Nutter Status: Open Priority: Normal Assignee: Category: lib Target version: Ruby 1.8.7 ruby -v: 1.8.7 head The logic for switching a given parser to a new encoding currently does the following: * Reopens the Encoding module (only on first use of the encoding) * Defines two new methods for the encoding being applied (only on first use) * Singletonizes the parser object and aliases the encoding-specific methods to "encode" and "decode" This last phase is unnecessary, but happens at runtime whenever an encoding is applied to a parser. The resulting singletonizing and method aliasing causes cache flushes. I have created a patch that does not use this singleton logic and which will not cause any singletons or method table updates at steady-state. https://gist.github.com/1420708 I know 1.8.7 is only in security patch mode, but I thought I'd throw this out there. JRuby will probably apply it to our fork of 1.8.7 stdlib.
[Ruby 1.8 - Bug #5698] rexml Encoding logic creates unnecessary singleton classes, aliases at runtim
on 2012-11-16 17:33
Issue #5698 has been updated by headius (Charles Nutter). This should be fixed if 1.8 is still open, or closed if it is not. ---------------------------------------- Bug #5698: rexml Encoding logic creates unnecessary singleton classes, aliases at runtime https://bugs.ruby-lang.org/issues/5698#change-32978 Author: headius (Charles Nutter) Status: Open Priority: Normal Assignee: Category: lib Target version: Ruby 1.8.7 ruby -v: 1.8.7 head The logic for switching a given parser to a new encoding currently does the following: * Reopens the Encoding module (only on first use of the encoding) * Defines two new methods for the encoding being applied (only on first use) * Singletonizes the parser object and aliases the encoding-specific methods to "encode" and "decode" This last phase is unnecessary, but happens at runtime whenever an encoding is applied to a parser. The resulting singletonizing and method aliasing causes cache flushes. I have created a patch that does not use this singleton logic and which will not cause any singletons or method table updates at steady-state. https://gist.github.com/1420708 I know 1.8.7 is only in security patch mode, but I thought I'd throw this out there. JRuby will probably apply it to our fork of 1.8.7 stdlib.
[Ruby 1.8 - Bug #5698][Rejected] rexml Encoding logic creates unnecessary singleton classes, aliases
on 2012-11-17 00:52
Issue #5698 has been updated by kou (Kouhei Sutou). Status changed from Open to Rejected http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/ says "We continue to provide normal maintenance for 1.8.7 as usual, until June 2012. ... After that we stop bugfixes.". Now, "after June 2012" is true. So I close this. ---------------------------------------- Bug #5698: rexml Encoding logic creates unnecessary singleton classes, aliases at runtime https://bugs.ruby-lang.org/issues/5698#change-32998 Author: headius (Charles Nutter) Status: Rejected Priority: Normal Assignee: Category: lib Target version: Ruby 1.8.7 ruby -v: 1.8.7 head The logic for switching a given parser to a new encoding currently does the following: * Reopens the Encoding module (only on first use of the encoding) * Defines two new methods for the encoding being applied (only on first use) * Singletonizes the parser object and aliases the encoding-specific methods to "encode" and "decode" This last phase is unnecessary, but happens at runtime whenever an encoding is applied to a parser. The resulting singletonizing and method aliasing causes cache flushes. I have created a patch that does not use this singleton logic and which will not cause any singletons or method table updates at steady-state. https://gist.github.com/1420708 I know 1.8.7 is only in security patch mode, but I thought I'd throw this out there. JRuby will probably apply it to our fork of 1.8.7 stdlib.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.