[#50] Re: [ruby-list:3596] Module#attr specification (Re: boolean values) — keiju@... (石塚圭樹 )

けいじゅ@日本ラショナルです.

11 messages 1997/08/05

[#121] Re: meta programming features — keiju@... (石塚圭樹 )

けいじゅ@日本ラショナルです.

18 messages 1997/08/13
[#122] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/13

まつもと ゆきひろです

[#126] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/08/14

けいじゅ@日本ラショナルです.

[#128] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/15

まつもと ゆきひろです

[#127] tracer — keiju@... (Keiju ISHITSUKA)

けいじゅ@いそうろう.日本ラショナルです.

36 messages 1997/08/14
[#129] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/15

まつもと ゆきひろです

[#131] Re: tracer — keiju@... (石塚圭樹 ) 1997/08/15

けいじゅ@いそうろう.日本ラショナルです.

[#140] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/15

まつもと ゆきひろです

[#144] Re: tracer — keiju@... (石塚圭樹 ) 1997/08/16

けいじゅ@日本ラショナルです.

[#150] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/18

まつもと ゆきひろです

[#155] Re: tracer — keiju@... (石塚圭樹 ) 1997/08/18

けいじゅ@日本ラショナルです.

[#156] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/18

まつもと ゆきひろです

[#162] ruby -r module [Re: tracer] — keiju@... (石塚圭樹 ) 1997/08/19

[#164] Re: ruby -r module [Re: tracer] — WATANABE Hirofumi <watanabe@...> 1997/08/19

わたなべです.

[#185] Re: [ruby-list:3720] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 )

26 messages 1997/08/20
[#186] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/20

[#193] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/20

けいじゅ@日本ラショナルです.

[#194] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/20

まつもと ゆきひろです

[#195] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/20

けいじゅ@日本ラショナルです.

[#200] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/20

まつもと ゆきひろです

[#207] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

けいじゅ@日本ラショナルです.

[#209] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#211] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

けいじゅ@日本ラショナルです.

[#212] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#213] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

[#214] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#215] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

[#217] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#218] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

けいじゅ@日本ラショナルです.

[#257] [BUG] MLF — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルです.

24 messages 1997/08/26
[#259] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#261] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#262] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#263] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#264] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#267] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#268] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#269] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#270] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#291] illegal here document — shugo@... (前田 修吾 / maeda shugo)

前田です。

15 messages 1997/08/27
[#293] Re: illegal here document — matz@... (Yukihiro Matsumoto) 1997/08/28

まつもと ゆきひろです

[#309] [BUG] method index — keiju@... (Keiju ISHITSUKA)

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

16 messages 1997/08/28
[#310] Re: [BUG] method index — matz@... (Yukihiro Matsumoto) 1997/08/28

まつもと ゆきひろです

[#311] Re: [BUG] method index — keiju@... (石塚圭樹 ) 1997/08/28

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

[#312] Re: [BUG] method index — matz@... (Yukihiro Matsumoto) 1997/08/28

まつもと ゆきひろです

[#316] [Q] [Re: [BUG] method index] — keiju@... (石塚圭樹 ) 1997/08/28

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

[#320] Re: [Q] [Re: [BUG] method index] — matz@... (Yukihiro Matsumoto) 1997/08/29

まつもと ゆきひろです

[#324] virtual class [Re: [Q] [Re: [BUG] method index] ] — keiju@... (石塚圭樹 ) 1997/08/29

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

[ruby-dev:121] Re: meta programming features

From: keiju@... (石塚圭樹 )
Date: 1997-08-13 06:20:57 UTC
List: ruby-dev #121
けいじゅ@日本ラショナルです.

In [ruby-dev :00114 ] the message: "[ruby-dev:114] Re: meta
programming features ", on Aug/13 13:23(JST) matz@netlab.co.jp
(Yukihiro Matsumoto) writes:

>まつもと ゆきひろです

>|なるなる. 良くわかってきました. 松本氏が気にしていたのは,
>|Object#eval()の定数とメソッド定義のところだったんですね.
>
>そういうことなんです.

なるほど.

といっても, まだ分かっていない点が1つあります. クラス定数のことです.

foo = Foo.new
foo.eval "X = 1"

は何を行うことになるのでしょう?

1. 常に, Foo#Xを定義する.
2. 常に, fooの特異クラスのXを定義する.
3. Foo#Xがなければ Foo#Xの定義, 存在すればfooの特異クラスのXを定義する.
4. 今のところ未定義
5. その他

>|>という点で,現在の実装ではこの二つのクラスは一致するようになっていま
>|>す.これを違えるのは望ましくないと思っていますが,どうしても必要なら
>|>ば変えても良いです.

>|これってどういう意味ですか? 現行のevalをObject#eval()の動きに合わせて
>|も良いという意味ですか?

>ええと,現行evalってprivateなObject#eval()なんですよね.

そうです.

>ですから,Object#eval()を導入するってことは現行eval()の仕様を変えるっ
>てことです.出来るだけ互換性を維持したいですけど.

どうなんでしょう? 今のeval()の仕様を変えると困ることになりませんか?

# それとも, eval()のなかでdefを行った時だけ困るんで, まあいいかって思っ
# ていんですかね?

トップレベルにおいて, evalで関数定義を行うと:

  eval "def foo; ...; end"

メインオブジェクトの特異メソッド定義になっちゃうわけですよね? で, この
メソッドは, トップレベルでは実行可能だけども, 他のクラスコンテキストで
は呼び出せなくなるんですよねえ... 

まあ,

  Object.eval "def foo; ...;end; private :foo"

とすればいいんだろうけど... 

さらにさらに, トップレベル以外では:

  class Foo
    eval "def foo; ...; end"
  end

あれ? これは思った通りの動作をするか...

  class << foo
    eval "def foo; ...; end"
  end

うーん. これも問題ないか...

  class Foo
    def foo
      eval "def bar; ...; end"
    end
  end

  f = Foo.new.foo

うーん. この時の動作が変わってきているんですね. 

で, どうしたらいいかというと:

1. このまま.
2. メソッド定義は定数定義と合わせる.
3. 特異メソッドfooが定義されていれば, 特異メソッドの定義. 定義されてい
   なければFoo#fooの定義. 特異メソッドを明示的に定義したい時には, def
   obj.foo を用いる.
4.

などなどがあると思います.

いろいろ考えていて思ったのですが, 特異クラスをどのように見せていくかと
結構深く関わっているような気がします. 例えば,

obj.type.eval ...

などは, Object#typeの定義に大きく左右されますし... 

Object#typeは, 特異クラスを返した方がいいのか, あくまでもクラスを返し
た方がいいのか...

__
..........................................石塚 圭樹@日本ラショナル...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---

In This Thread

Prev Next