[#43186] [Ruby 1.9-Bug#4388][Open] open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません — あつし よしだ <redmine@...>

Bug #4388: open-uri=E3=81=A7=E7=92=B0=E5=A2=83=E5=A4=89=E6=95=B0http_prox=

11 messages 2011/02/10
[#43192] [Ruby 1.9-Bug#4388] open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません — あつし よしだ <redmine@...> 2011/02/11

チケット #4388 が更新されました。 (by あつし よしだ)

[#43193] Re: [Ruby 1.9-Bug#4388] open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません — Tanaka Akira <akr@...> 2011/02/11

2011年2月11日12:59 あつし よしだ <[email protected]>:

[#43203] [Ruby 1.9-Bug#4397][Open] test-mkmf fails due to compilation errors — Shyouhei Urabe <redmine@...>

Bug #4397: test-mkmf fails due to compilation errors

10 messages 2011/02/14

[#43272] [Ruby 1.9 - Bug #4443] [Open] odd evaluation order in a multiple assignment — Yusuke Endoh <mame@...>

13 messages 2011/02/24

[#43274] [Ruby 1.9 - Bug #4445] [Open] ext/openssl の verify_callback が rb_protect で保護されていない — Ippei Obayashi <ohai@...>

13 messages 2011/02/24

[#43276] iseq_compile_each()でのマジックナンバ — きたざわけんいち <peisunstar@...>

きたざわです。

15 messages 2011/02/27
[#43303] Re: iseq_compile_each()でのマジックナンバ — nagachika <nagachika00@...> 2011/03/04

近永と申します。

[#43304] Re: iseq_compile_each()でのマジックナンバ — Yusuke ENDOH <mame@...> 2011/03/04

遠藤です。

[ruby-dev:43272] [Ruby 1.9 - Bug #4443] [Open] odd evaluation order in a multiple assignment

From: Yusuke Endoh <mame@...>
Date: 2011-02-24 14:25:49 UTC
List: ruby-dev #43272
Issue #4443 has been reported by Yusuke Endoh.

----------------------------------------
Bug #4443: odd evaluation order in a multiple assignment
http://redmine.ruby-lang.org/issues/4443

Author: Yusuke Endoh
Status: Open
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: 
Target version: 2.0
ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]


遠藤です。core に投げてしまったようなので登録し直し。

Ruby は左から右に評価が進むと信じていたのですが、多重代入で裏切られました。

  def foo
    p :foo
    []
  end
  def bar
    p :bar
  end

  x, foo[0] = bar, 0

bar より foo が左にあるので、:foo 、:bar の順に出力されることを期待するのですが、なんと :bar 、:foo になります。

具体的に何が困るかというと、例えば

  obj, obj.foo = obj.foo, obj

には swap を期待するわけですが、そうなりません。こういうコードは実際に、木の回転などを実装するときにしばしば書きたくなります。この挙動に気がついたのも splay tree を実装していたときでした。こんなの:

  t.left, t.left.right, t = t.left.right, t, t.left

1.9 系列で修正すべきとまでは思いませんが、2.0 で直る可能性はあるでしょうか。

IRC で話したら「それで普通」みたいな反応もありましたが、

  foo[0] = bar

はちゃんと :foo 、:bar の順に出ます。

-- 
Yusuke Endoh <[email protected]>


-- 
http://redmine.ruby-lang.org

In This Thread

Prev Next