[#2810] [BUG] IO#eof? when Thread using — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

31 messages 1998/06/08
[#2826] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2827] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2828] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2829] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2831] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2841] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2842] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2843] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2845] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2846] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2847] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2848] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2849] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2854] experimental release 1.1b9_25 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

23 messages 1998/06/11
[#2870] Re: experimental release 1.1b9_25 — Takahiro Maebashi <maebashi@...> 1998/06/15

前橋です。

[#2911] experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

33 messages 1998/06/18
[#2912] Re: experimental release 1.1b9_26 — WATANABE Hirofumi <watanabe@...> 1998/06/18

わたなべです.

[#2913] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2916] Re: experimental release 1.1b9_26 — Takahiro Maebashi <maebashi@...> 1998/06/18

前橋です。

[#2917] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2940] experimental release 1.1b9_27 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

21 messages 1998/06/19

[#2965] feature freeze for 1.1c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/06/22

[#3056] experimental release 1.1b9_28 — matz@... (Yukihiro Matsumoto)

subject says all.

28 messages 1998/06/26
[#3104] Re: experimental release 1.1b9_28 — Takahiro Maebashi <maebashi@...> 1998/06/30

前橋です。

[#3086] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro)

ごとけんです

19 messages 1998/06/29
[#3120] Re: Enumerable#reverse ([ruby-list:8579]) — keiju@... (Keiju ISHITSUKA) 1998/06/30

けいじゅ@日本ラショナルソフトウェアです.

[#3130] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro) 1998/06/30

ごとけんです

[#3146] [REQ] trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 1998/06/30
[#3190] Re: [REQ] trace_func — matz@... (Yukihiro Matsumoto) 1998/07/02

まつもと ゆきひろです

[#3807] Re: [REQ] trace_func — keiju@... (石塚圭樹 ) 1998/12/14

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:2903] Re: what type are true and false

From: matz@... (Yukihiro Matsumoto)
Date: 1998-06-18 02:29:55 UTC
List: ruby-dev #2903
まつもと ゆきひろです

結局,問題は二つあって

  (1) 以下のコードが不自然

        eval "foo = 1"
        foo     # => NameError

  (2) 以下のコードが不自然

        proc{
          eval "foo = 1"
          proc {foo = 10}.call
          eval "foo" # => 10
        }.call

で,1の方は

        evalがあった場合にはそれを優先する

ことを求めています.つまり,静的のプログラム上には登場しなく
ても,evalで評価されたならローカル変数として認めてくれと言う
ことですね.これによるメリットは

  * evalによるローカル変数のずれがなくなる
  * irbの挙動と一致する

です.デメリットは

  * 以下のコードが理解しにくくなる

        $str = "foo = 25"

        # 別の何処か
        eval $str
        foo     # これは変数かメソッドか

    現状なら局所的に見るだけでこれがメソッド呼び出しであるこ
    とを保証できます.

  * 実行コストが若干上がる

    実はもうテスト的に実装してみました.ローカル変数のように
    も見えるメソッド呼び出しで実行時のチェックを追加する必要
    がありますので,若干コストが上昇します.

デメリットのうち後者は些細なものなので,さしたる問題は無いの
ですが,前者は若干不満です.もっともirbとの挙動が揃うという
のはかなり重要なのですが.

さて,2番目の問題の方は

        evalがあっても場合プログラムの字面を優先する

ポリシーを求めています.ということは1とは相反しますね.
同時に達成することは出来そうにありません.(- -);

これによるメリットは

  * とりあえず関数版と同じ動作を実現できる
  * evalのあるなしがローカル変数のスコープに影響しない

というものがあります.私は個人的にはevalに渡す文字列の内容を
見なくても変数のスコープが決定できることが好みなので,こっち
を採用したい気持ちはあります.

# もっともevalによる影響を無効化はできないので,程度問題では
# ありますが.

こちらもテスト的に実装してみました.こちらは実行コストはかか
りません.むしろ,若干処理が減ります.

こちらのデメリットは,1と矛盾することから

  * irbとの挙動の違いを克服できない

ということでしょうか.

いずれにしても今のrubyの挙動は通常ローカル変数はevalによって
スコープの影響を受けず,ブロック内ローカル変数はevalによる影
響を受けるという中途半端な仕様ですから,1か2か「どちらか」を
採用する必要があるようです.

どちらも実装しちゃいましたので,どっちでも手間は同じなんです
がね.
                                まつもと ゆきひろ /:|)

In This Thread