[#3567] Nil is a subclass of Object? — shugo@... (maeda shugo)

前田です。

26 messages 1997/08/02
[#3570] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[#3572] Re: Nil is a subclass of Object? — keiju@... (石塚圭樹 ) 1997/08/03

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

[#3573] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[#3715] may i make a ruby.rpm? — Shoichi OZAWA <ozawa@...>

こんにちは 小澤@日立 です。

15 messages 1997/08/20

[#3736] module for GNU Readline Library — shugo@... (前田 修吾 / maeda shugo)

前田です。

12 messages 1997/08/20

[#3833] [Bug] Regexp.quote — shugo@... (前田 修吾 / maeda shugo)

前田です。

25 messages 1997/08/26
[#3836] BEGIN and END — Masaki Suketa <suke@...> 1997/08/26

助田です。

[#3837] Re: BEGIN and END — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3842] Re: BEGIN and END — keiju@... (石塚圭樹 ) 1997/08/27

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

[#3839] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)

> そうですね.本当はこーゆーのが ruby-list の本来の形ですね.

18 messages 1997/08/27
[#3840] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3852] Re: SyslogSendmail class — keiju@... (石塚圭樹 ) 1997/08/27

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

[#3909] Object#id <=> Fixnum#id2object ? (Re: SyslogSendmail class) — shugo@... (前田 修吾 / maeda shugo) 1997/08/28

前田です。

[#3869] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)

> Moduleのところに書いてあるんですねえ.こういうノウハウを記述

15 messages 1997/08/27
[#3870] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3906] document for beginner — toyofuku@...

豊福@パパイヤです。

21 messages 1997/08/28
[#3917] Re: document for beginner — Kikutani Makoto <kikutani@...> 1997/08/29

きくたにです。

[#3925] Re: document for beginner — Masaki Suketa <suke@...> 1997/08/29

助田です

[#3926] Curses (Re: document for beginner) — Kikutani Makoto <kikutani@...> 1997/08/29

Fri, Aug 29, 1997 at 12:54:15PM +0900 において

[#3933] Re: ruby constants — toyofuku@...

豊福@パパイヤです。

16 messages 1997/08/29
[#3934] Re: ruby constants — matz@... (Yukihiro Matsumoto) 1997/08/29

まつもと ゆきひろです

[#3939] Re: ruby constants — WATANABE Hirofumi <watanabe@...> 1997/08/29

わたなべです.

[ruby-list:3711] Re: new sync.rb release

From: keiju@... (石塚圭樹 )
Date: 1997-08-20 03:17:36 UTC
List: ruby-list #3711
けいじゅ@日本ラショナルです.

In [ruby-list :03709 ] the message: "[ruby-list:3709] Re: new sync.rb
release ", on Aug/19 13:03(JST) shugo@po.aianet.ne.jp (前田 修吾/
maeda shugo) writes:

>前田です。
>|前田さんがいなくて淋しかったです(^^;;;
>どうもです:-)

復活するなりすごいものを出してきましたねえ(@@;;;

>|SynchronizableはSynchronizerを利用して(デレゲートタイプの利用ですね)実
>|現しているのに対して, 逆に, SyncはSync_mをインクルードして実現していま
>|す. 結局同じことを実現するのに反対のやりかたをしています.
>
>まさかSyncがこうなるとは思っていなかったもので(^^;

新版Mutex_m を作った時から, Mutexもこのようにして実現できると思ってい
たのもありますし, 結構複雑なので2つ同じようなものは必要ないと思いまし
たし... 

# Mutex_m::For_primitive_objectとMutex_m::For_general_objectは, 同じア
# ルゴリズムを含んでしますが, Sync_m::XX では, polymorphを使って1つに
# まとめました(^^;;; 

>extend_objectをオーバーライドして初期化処理をしてるんですね。
>このワザいただきます:-)

あ? これは, 前から公開されているんですけどね. ここでは, 実際にextendす
るクラスをすり替えてしまっているところが技ですね(^^;;;

>でもincludeした時はやはりinitializeでsyns_extendedしないといけないのか...。
>これはincludeをClassで再定義しちゃうしかないのかな。

ああ. includeして利用することを考えてなかったもので, includeには全然対
応できていないですね(^^;;;

>class Class

(ここから省略)

>Thread.join t
>
>なんてのも動いてしまいました。
>newの引数が違うとちゃんとArgumentErrorになりますね。

なかなかものすごいですね(@@;;;; こういうプログラム非常に好みなんですが...
とはいえ, 気になる点が少しあります.

1. includeをoverrideするのはちょっと...

以前, extendと同様にincludeもフックが欲しいという話しがあったのですが, 
結局採用になりませんでした. このような大きな変更にはrubyの作者の意向に
したがった方が良いんじゃないかなあ... という思いがあります.

# 元メイルが見つからん... extendのhookの話しは見つかったのですが...

# 再度議論して仕様に入れてもらうというてもありますが(^^;;;

とはいえ includeで Sync_m::For_primitive_object はすかないので,

class Spokesperson < String
   Sync_m.included_to self
   # or inclued Sync_m.includable

こんな感じのインターフェイスになってしまいますが...

ところで, 前田さんのは:

>class Spokesperson < String
>   include Sync_m::For_primitive_object

としていますが, 

class Spokesperson < String
   include Sync_m

としても動作しますよね? この辺りは, include-hookの効果が出てていいとこ
ろですねえ...

# やはり, include-hookが欲しいなあ >>> 松本クーン!!

2. superが使える
前田さんのプログラムは, include時にnewをoverrideしていますが, ここまで
は必要ないんじゃないでしょうか?

通常, インスタンスの初期化時に, 上位クラスでの初期化を行いたい場合は 
superを使うことになっているので, superで初期化できるようになっていれば
文句はないと思います.

ということで,

class Spokesperson < String
  Sync_m.included_to self

  def Spokesperson.new
    super.new.initialize
  end
  # String newはinitializeしてくれないらしいので追加, 一般クラスなら
  # ば必要なし

  #def ininitalize
  #  super
  #end
  # newをoverrideしているので必要なし. 一般クラスの場合こちらが必要.
end  

というインターフェイスでは不満でしょうか?

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

In This Thread