[#42945] [Ruby 1.8-Bug#4231][Open] configure.bat --with-winsock2 が socket/extconf.rbに効いていない — Masahiro Kitajima <redmine@...>

Bug #4231: configure.bat --with-winsock2 が socket/extconf.rbに効いていない

8 messages 2011/01/05

[#43027] [Ruby 1.9-Feature#4280][Assigned] SJIS should be an alias of Windows-31J, not of Shift_JIS — Usaku NAKAMURA <redmine@...>

Feature #4280: SJIS should be an alias of Windows-31J, not of Shift_JIS

13 messages 2011/01/14
[#43030] [Ruby 1.9-Feature#4280] SJIS should be an alias of Windows-31J, not of Shift_JIS — Motohiro KOSAKI <redmine@...> 2011/01/14

チケット #4280 が更新されました。 (by Motohiro KOSAKI)

[#43031] Re: [Ruby 1.9-Feature#4280] SJIS should be an alias of Windows-31J, not of Shift_JIS — "U.Nakamura" <usa@...> 2011/01/14

こんにちは、なかむら(う)です。

[#43033] Re: [Ruby 1.9-Feature#4280] SJIS should be an alias of Windows-31J, not of Shift_JIS — KOSAKI Motohiro <kosaki.motohiro@...> 2011/01/14

2011年1月14日16:35 U.Nakamura <usa@garbagecollect.jp>:

[#43039] ext/openssl development repository — Hiroshi Nakamura <nakahiro@...>

W3J1YnktY29yZTozNDQxNl3jga7ml6XmnKzlkJHjgZHniYjjgafjgZnjgIIKCuacgOi/kU1hcnRp

21 messages 2011/01/14
[#43040] Re: ext/openssl development repository — "U.Nakamura" <usa@...> 2011/01/14

こんにちは、なかむら(う)です。

[#43041] Re: ext/openssl development repository — Yusuke ENDOH <mame@...> 2011/01/14

遠藤です。

[#43053] Re: ext/openssl development repository — Hiroshi Nakamura <nakahiro@...> 2011/01/17

MjAxMS8xLzE0IFl1c3VrZSBFTkRPSCA8bWFtZUB0c2cubmUuanA+Ogo+Pj4gwqAgwqAgwqAgwqAg

[#43092] pthread_cond を用いたConditionVariable — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

15 messages 2011/01/24

[ruby-dev:43124] Re: Hashのイテレーション中の新規キー追加

From: "NARUSE, Yui" <naruse@...>
Date: 2011-01-27 03:27:31 UTC
List: ruby-dev #43124
成瀬です。

まず、わたしは「Hashのイテレーション中の新規キー追加」には条件付き賛成です。
どんな条件かは後述しますが、たぶんまめさんやうささんと同じでしょう。

さて、[ruby-dev:43111] のパッチですが、いくつか重大な誤りがあります。
一つは近永さんの指摘と同じですが、
* 追加に際して rehash が発生した場合、イテレーションが壊れる
  (つまり、1.8 で追加を禁止している理由にぶつかっている)
* 追加した要素をその each 中に実行するべきか考える
* 1.8 では each の評価順が実装依存

もっとも、これは簡単な回避策がありまして、以下のような実装にすると、まとめて解決できます。
class Hash
  def each
    keys = hash.keys
    keys.each do |key|
      yield(key, hash[key]) if hash.key?(key)
    end
  end
end

もう一つはより重大で、このパッチが完成しても 1.8.7 には入らない、ということです。
また、1.8.8 も [ruby-dev:43064] あたりで出さない方向で合意が形成されつつあります。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/43064
つまり、1.8 系に新機能を追加するという方向は現状あまりないでしょう。

また、1.9.2 向けというのもやっぱりなくて(メンテナンスブランチになるのでこれも新機能追加はない)、
trunk (=Ruby 1.9) 向けが正解です。
http://redmine.ruby-lang.org/wiki/ruby/HowToContribute

ここで戻って 1.9 向けのパッチ後の挙動がどうあるべきかを考えると、現在の 1.9 の仕様として、
* 1.9 の Hash#each は挿入順で評価される(仕様)
があるので、あるべき挙動は、
* each 中のハッシュへの要素追加を常に許す
* 追加した要素は最後に評価する
となるべきだ、というのは割と合意の取れる線かなぁと思います。
で、このようなパッチが実際に作られたならば、わたしはそのマージに賛成します。
(これ以外の仕様だったら反対するという意味ではない)

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread