[#7102] Ruby 1.3.4-990611 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990611 is out, check out:

20 messages 1999/06/11

[#7223] Ruby 1.3.4-990625 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990625 is out, check out:

14 messages 1999/06/25
[#7224] -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625) — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp> 1999/06/25

早坂@会津大学です。

[ruby-dev:7049] Re: [BUG] [Re: Local variable in for block]

From: matz@... (Yukihiro Matsumoto)
Date: 1999-06-01 07:18:13 UTC
List: ruby-dev #7049
まつもと ゆきひろです

In message "[ruby-dev:7048] Re: [BUG] [Re: Local variable in for block]"
    on 99/06/01, 石塚圭樹 <keiju@Rational.Com> writes:

|すべて
|
|  b = proc{binding}.call
|
|のせいだと思うんですが... いつも感じるのは, proc内のbindingって何でそん
|なに扱いが違うの? ってことなんですが....

違うから違うんだもん.

|  proc{binding}.call
|
|を使わないで以下の条件を満たすバインディングでいいのがあればよいんですが...
|
|1. mainオブジェクトがself
|2. ローカル変数はトップレベルとは共有しない

うーむ,これは?

  require 'tempfile'

  def toplevel_binding
    f = Tempfile.new("irb")
    f.print<<EOF
  $binding = binding
  EOF
    f.close
    $binding
  end

loadの中ではローカルスコープが独立しているのを使った裏技です.

|b0 = proc{binding}.call
|#b0 = binding
|b = eval "class Object; binding; end", b0
|eval "foo = 1", b0
|p eval "defined? foo", b
|==
|"local-variable(in-block)"
|# nil
|
|ってなるんですが, これって変ですよね?

たしかにちょっと変ですねえ.見てみます.

                                まつもと ゆきひろ /:|}

In This Thread