Actions
Bug #7152
closedIs the order of Module#instance_methods intended to be preserved?
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.2.0]
Backport:
Description
https://github.com/jruby/jruby/issues/277 asks this question:
results = 10000.times.map do
chars = ('A'..'Z').map(&:to_sym).shuffle
cls = Class.new do
chars.each do |chr|
define_method(chr) {}
end
end
chars == cls.instance_methods.take(26)
end
p results.all?{|o|o.equal? true} # => true on MRI
Updated by headius (Charles Nutter) about 12 years ago
I vote no! Imposing order upon the method table requires all implementations to use an ordered data structure here where unordered structures might serve better. Also consider that reflective method access on most other platforms does not guarantee any ordering.
Actions
Like0
Like0Like0