From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: poffice@blade.nagaokaut.ac.jp Delivered-To: poffice@blade.nagaokaut.ac.jp Received: from kankan.nagaokaut.ac.jp (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id 5822217C265E for ; Tue, 2 Aug 2011 16:39:16 +0900 (JST) Received: from funfun.nagaokaut.ac.jp (funfun.nagaokaut.ac.jp [133.44.2.201]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id A3220EA6839 for ; Tue, 2 Aug 2011 16:54:32 +0900 (JST) Received: from localhost (localhost.nagaokaut.ac.jp [127.0.0.1]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 5CD328FC57 for ; Tue, 2 Aug 2011 16:54:33 +0900 (JST) X-Virus-Scanned: amavisd-new at funfun.nagaokaut.ac.jp Received: from funfun.nagaokaut.ac.jp ([127.0.0.1]) by localhost (funfun.nagaokaut.ac.jp [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cGPO1V9rDk8f for ; Tue, 2 Aug 2011 16:54:33 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 3BB968FC59 for ; Tue, 2 Aug 2011 16:54:33 +0900 (JST) Received: from carbon.ruby-lang.org (carbon.ruby-lang.org [221.186.184.68]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id 48C7895241E for ; Tue, 2 Aug 2011 16:54:30 +0900 (JST) Received: from beryllium.ruby-lang.org (beryllium.ruby-lang.org [127.0.0.1]) by carbon.ruby-lang.org (Postfix) with ESMTP id 9E7673C21F747; Tue, 2 Aug 2011 16:54:27 +0900 (JST) Received: from fluorine.ruby-lang.org (www.rubyist.net [210.251.121.216]) by carbon.ruby-lang.org (Postfix) with ESMTP id 318A43C21F123 for ; Tue, 2 Aug 2011 16:54:22 +0900 (JST) Received: from ruby-lang.org (localhost [127.0.0.1]) by fluorine.ruby-lang.org (Postfix) with ESMTP id 1A64E3ED32 for ; Tue, 2 Aug 2011 16:54:22 +0900 (JST) Delivered-To: ruby-core@ruby-lang.org Date: Tue, 2 Aug 2011 16:54:22 +0900 Posted: Tue, 2 Aug 2011 16:54:22 +0900 From: Michael Edgar Reply-To: ruby-core@ruby-lang.org Subject: [ruby-core:38698] [Ruby 1.9 - Feature #5123] Alias Hash 1.9 as OrderedHash To: ruby-core@ruby-lang.org Message-Id: References: X-ML-Name: ruby-core X-Mail-Count: 38698 X-MLServer: fml [fml 4.0.3 release (20011202/4.0.3)]; post only (only members can post) X-ML-Info: If you have a question, send e-mail with the body "help" (without quotes) to the address ruby-core-ctl@ruby-lang.org; help= X-Mailer: Redmine X-Spam-Checker-Version: SpamAssassin 3.1.7-deb3 (2006-10-05) on carbon.ruby-lang.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=7.0 tests=BAYES_50,CONTENT_TYPE_PRESENT, FORGED_RCVD_HELO,X_MAILER_PRESENT autolearn=disabled version=3.1.7-deb3 X-Redmine-Issue-Author: alexeymuranov X-Redmine-Issue-Assignee: matz X-Redmine-Issue-Id: 5123 X-Redmine-Mailinglistintegration-Message-Ids: 8240 X-Redmine-Project: ruby-19 Auto-Submitted: auto-generated X-Redmine-Site: Ruby Issue Tracking System X-Redmine-Host: redmine.ruby-lang.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Precedence: bulk List-Id: ruby-core.ruby-lang.org List-Software: fml [fml 4.0.3 release (20011202/4.0.3)] List-Post: List-Owner: List-Help: List-Unsubscribe: Issue #5123 has been updated by Michael Edgar. As a corollary, for a few months I had one portion of my code which used Sets, and relied on the fact that Sets in 1.9 retain their order because they in turn use a Hash. The only real way I could document this requirement was to put comments in capital letters in the relevant portions of code so that I didn't forget that I relied on this behavior. If I had been creating "OrderedSets" (though this sounds too close to SortedSet despite meaning something different), and OrderedSets use an OrderedHash, then it would have been clear in the code that insertion order was preserved, especially for developers new to 1.9. I like this idea. ---------------------------------------- Feature #5123: Alias Hash 1.9 as OrderedHash http://redmine.ruby-lang.org/issues/5123 Author: Alexey Muranov Status: Assigned Priority: Normal Assignee: Yukihiro Matsumoto Category: Target version: I read that it was a controversial decision to make Hash in Ruby 1.9 ordered. It is not clear if the present implementation is the best possible. I would like to express my thought. It would be nice if the ordered Hash in Ruby 1.9 was aliased as OrderedHash. That way people who rely on preserving the insertion order in some application (me, for example) could explicitly use OrderedHash, and developers of Ruby would be free to redefine Hash in future versions if a better implementation that a doubly-linked circular list is found. (I read something about a possibility of using "red–black tree".) Thanks. Alexey Muranov. -- http://redmine.ruby-lang.org