From: ko1@... Date: 2014-05-14T05:29:50+00:00 Subject: [ruby-core:62573] [ruby-trunk - Feature #9614] ordering of non-Hash items which use st_ internally Issue #9614 has been updated by Koichi Sasada. Just a comment. I think it should be another parameter of st_table. Now all st_tables have order. But most of case, it doesn't needed. I think it is fine for me that st_table user can select. ---------------------------------------- Feature #9614: ordering of non-Hash items which use st_ internally https://bugs.ruby-lang.org/issues/9614#change-46717 * Author: Eric Wong * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: core * Target version: current: 2.2.0 ---------------------------------------- Hi matz, I would like your permission to remove the order preservation from any or all of the following currently implemented using st_table: * method tables * global symbols (Symbol.all_symbols) * constant tables * instance variable tables * global_variables method * Thread#keys * anything besides the Hash class I am currently working on a patch series to reduce internal memory usage, so far I have only converted three pieces: 1) method tables (~200K reduction) 2) symbol table (global_symbols.{id_str,sym_id}) (~200K) 3) frozen_strings (~100K) n.b. frozen_strings ordering is never exposed to users, so I expect it to be OK. Memory reduction is just based on "ruby -e exit" (which loads RubyGems); bigger programs with more methods/symbols will save more memory. Work-in-progress patches attached (0002 describes implementation details) ---Files-------------------------------- 0001-adjust-tests-to-account-for-unsorted-methods.patch (1.87 KB) 0002-ihash-initial-implementation-method-table-conversion.patch (32.8 KB) 0004-ihash-implement-rb_ihash_update-to-support-rb_fstrin.patch (7.84 KB) 0003-parse.y-switch-to-ihash-saves-200K-out-of-the-box.patch (9.51 KB) -- https://bugs.ruby-lang.org/