[#950] ruby 1.1b0 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
33 messages
1997/12/05
[#951] Re: ruby 1.1b0 released
— WATANABE Hirofumi <eban@...>
1997/12/05
わたなべです.
[#953] Re: ruby 1.1b0 released
— shugo@... (Shugo Maeda)
1997/12/06
前田です。
[#965] Re: ruby 1.1b0 released
— matz@... (Yukihiro Matsumoto)
1997/12/08
まつもと ゆきひろです
[#985] Re: tcltklib error (Re: wave viewer) — akira yamada / やまだあきら <akira@...>
1 message
1997/12/09
[#992] rbc.rb with ruby 1.1b0 — Masaki Suketa <masaki.suketa@...>
助田です。
6 messages
1997/12/09
[#998] ruby 1.1b1 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
48 messages
1997/12/09
[#1011] Re: ruby 1.1b1 released
— Kazuhisa Yanagawa <katze@...>
1997/12/10
in message-id: <199712090833.RAA31727@picachu.netlab.co.jp>
[#1013] Re: ruby 1.1b1 released
— matz@... (Yukihiro Matsumoto)
1997/12/10
まつもと ゆきひろです
[#1016] Re: ruby 1.1b1 released
— Kazuhisa Yanagawa <katze@...>
1997/12/10
in message-id: <199712100351.MAA10392@picachu.netlab.co.jp>
[#1028] Regexp#operators (Re: ruby 1.1b1 released)
— Shin-ichiro HARA <sinara@...>
1997/12/10
原です。
[#1030] Re: Regexp#operators (Re: ruby 1.1b1 released)
— matz@... (Yukihiro Matsumoto)
1997/12/10
まつもと ゆきひろです
[#1033] Re: Regexp#operators (Re: ruby 1.1b1 released)
— Shin-ichiro HARA <sinara@...>
1997/12/10
原です。
[#1049] Re: Regexp#operators (Re: ruby 1.1b1 released)
— Shin-ichiro HARA <sinara@...>
1997/12/11
原です。
[#1064] Re: Regexp#operators (Re: ruby 1.1b1 released)
— matz@... (Yukihiro Matsumoto)
1997/12/12
まつもと ゆきひろです
[#1097] Re: Regexp#operators (Re: ruby 1.1b1 released)
— Shin-ichiro HARA <sinara@...>
1997/12/15
原です。
[#1103] Re: Regexp#operators (Re: ruby 1.1b1 released)
— matz@... (Yukihiro Matsumoto)
1997/12/16
まつもと ゆきひろです
[#1100] Re: Regexp#operators (Re: ruby 1.1b1 released)
— Masaki Suketa <masaki.suketa@...>
1997/12/16
助田です。
[#1034] Re: Regexp#operators (Re: ruby 1.1b1 released)
— matz@... (Yukihiro Matsumoto)
1997/12/10
まつもと ゆきひろです
[#1001] Re: ruby 1.1b1 released
— Takahiro Maebashi <maebashi@...>
1997/12/09
前橋です。
[#1002] Object#bind — shugo@... (Shugo Maeda)
前田です。
39 messages
1997/12/09
[#1007] Re: Object#bind
— keiju@... (石塚圭樹 )
1997/12/10
けいじゅ@日本ラショナルソフトウェアです.
[#1008] Re: Object#bind
— matz@... (Yukihiro Matsumoto)
1997/12/10
まつもと ゆきひろです
[#1023] Re: Object#bind
— shugo@... (Shugo Maeda)
1997/12/10
前田です。
[#1026] Re: Object#bind
— matz@... (Yukihiro Matsumoto)
1997/12/10
まつもと ゆきひろです
[#1044] Re: Object#bind
— keiju@... (石塚圭樹 )
1997/12/11
けいじゅ@日本ラショナルソフトウェアです.
[#1051] Re: Object#bind
— shugo@... (Shugo Maeda)
1997/12/11
前田です。
[#1063] Re: Object#bind
— matz@... (Yukihiro Matsumoto)
1997/12/12
まつもと ゆきひろです
[#1074] Re: Object#bind
— shugo@... (Shugo Maeda)
1997/12/12
前田です。
[#1079] Re: Object#bind
— keiju@... (石塚圭樹 )
1997/12/14
けいじゅ@日本ラショナルソフトウェアです.
[#1084] Re: Object#bind
— matz@... (Yukihiro Matsumoto)
1997/12/15
まつもと ゆきひろです
[#1087] Re: Object#bind
— keiju@... (石塚圭樹 )
1997/12/15
けいじゅ@日本ラショナルソフトウェアです.
[#1088] Re: Object#bind
— matz@... (Yukihiro Matsumoto)
1997/12/15
まつもと ゆきひろです
[#1122] Re: Object#bind
— keiju@... (石塚圭樹 )
1997/12/17
けいじゅ@日本ラショナルソフトウェアです.
[#1127] Re: Object#bind
— matz@... (Yukihiro Matsumoto)
1997/12/18
まつもと ゆきひろです
[#1134] Re: Object#bind
— keiju@... (石塚圭樹 )
1997/12/18
けいじゅ@日本ラショナルソフトウェアです.
[#1021] [1.1b1] tkdialog.rb — Kikutani Makoto <kikutani@...>
きくたにです。
5 messages
1997/12/10
[#1052] [1.1b1] TkRadiobutton select — Kikutani Makoto <kikutani@...>
きくたにです。
11 messages
1997/12/11
[#1055] Re: [1.1b1] TkRadiobutton select
— Kikutani Makoto <kikutani@...>
1997/12/11
きくたにです。
[#1061] Re: [1.1b1] TkRadiobutton select
— Kikutani Makoto <kikutani@...>
1997/12/12
Thu, Dec 11, 1997 at 08:39:33PM +0900 において
[#1062] Re: [1.1b1] TkRadiobutton select
— matz@... (Yukihiro Matsumoto)
1997/12/12
まつもと ゆきひろです
[#1080] ruby1.1b0(cygwin32) — Masaki Suketa <masaki.suketa@...>
助田です。
10 messages
1997/12/15
[#1083] Re: ruby1.1b0(cygwin32)
— WATANABE Hirofumi <watanabe@...>
1997/12/15
わたなべです.
[#1095] Re: ruby1.1b0(cygwin32)
— Masaki Suketa <masaki.suketa@...>
1997/12/15
助田です。
[#1096] Re: ruby1.1b0(cygwin32)
— WATANABE Hirofumi <watanabe@...>
1997/12/15
わたなべです.
[#1099] Re: ruby1.1b0(cygwin32)
— Masaki Suketa <masaki.suketa@...>
1997/12/15
In message "[ruby-dev:1096] Re: ruby1.1b0(cygwin32)"
[#1081] Re: [ruby-list:5634] Platform Identification (was Re: ruby 1.0-971204 released) — Kazuhisa Yanagawa <katze@...>
4 messages
1997/12/15
[#1085] [Req] object refference — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
12 messages
1997/12/15
[#1086] Re: [Req] object refference
— matz@... (Yukihiro Matsumoto)
1997/12/15
まつもと ゆきひろです
[#1089] Re: [Req] object refference
— keiju@... (石塚圭樹 )
1997/12/15
けいじゅ@日本ラショナルソフトウェアです.
[#1110] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro Hara <sinara@...>
原です。
4 messages
1997/12/16
[#1123] [BUG] mershal — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
9 messages
1997/12/17
[#1146] extconf.rb for socket — KIMURA Koichi <kkimura@...>
5 messages
1997/12/18
[#1159] mswin32 patch for ruby-1.1b2 — KIMURA Koichi <kkimura@...>
7 messages
1997/12/20
[#1167] visibility (Re: ruby 1.1b2 released) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
8 messages
1997/12/25
[ruby-dev:1121] Re: [Req] object refference
From:
keiju@... (石塚圭樹 )
Date:
1997-12-17 13:07:08 UTC
List:
ruby-dev #1121
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-dev :01094 ] the message: "[ruby-dev:1094] Re: [Req] object
refference ", on Dec/15 17:07(JST) Yukihiro Matsumoto writes:
>まつもと ゆきひろです
>
>|finalizerを使えばできますね.ということはRubyレベルで書ける?
>
>とりあえず以下のようなのはいかがでしょう.
うぅ... 作ってしまいましたね. そうじゃないのにぃ...
# ポインタベースのリファレンスがそのうちできると信じていますよ!!
>委譲用のクラスDelegaterを使ってます.
delegaterはいいですね. こういうものを使っていはいましたがクラスとして
独立させようと思ったことはありませんでした.
# 標準ライブラリになることを希望します.
PS.
こういう場合は, ObjectSpace#add_finalizerを直接使わないで, Finalizerを
使ってくれないと(;_;
その場合は:
>-- weakref.rb
># Weak Reference class that does not bother GCing.
>#
># Usage:
># foo = Object.new
># foo = WeakRef.new(foo)
># ...
># ObjectSpace.garbage_collect
># ...
># foo.hash # => Raises WeakRef::RefError (because original GC'ed)
>
>require "delegate"
>
>class WeakRef<Delegater
>
> Exception :RefError
>
> ID_MAP = {}
> ID_REV_MAP = {}
> ObjectSpace.add_finalizer(lambda{|id|
> rid = ID_MAP[id]
> if rid
> ID_REV_MAP[rid] = nil
> ID_MAP[id] = nil
> end
> rid = ID_REV_MAP[id]
> if rid
> ID_REV_MAP[id] = nil
> ID_MAP[rid] = nil
> end
> })
>
> def initialize(orig)
> @id = orig.id
> ObjectSpace.call_finalizer orig
> ID_MAP[@id] = self.id
> ID_REV_MAP[self.id] = @id
> end
>
> def __getobj__
> unless ID_MAP[@id]
> $@ = caller(1)
> $! = RefError.new("Illegal Reference - probably recycled")
> raise
> end
>
> ObjectSpace.each_object do |obj|
> return obj if obj.id == @id
> end
> end
>
> def alive?
> if ID_MAP[@id]
> true
> else
> false
> end
> end
>
> def []
> __getobj__
> end
>end
-
|
v
require "finalizer"
class WeakRef<Delegater
Exception :RefError
def finalize(id)
@id = nil
end
def initialize(orig)
@id = orig.id
Finalizer.add_depandant(delf, @id)
end
def __getobj__
unless @id
$@ = caller(1)
$! = RefError.new("Illegal Reference - probably recycled")
raise
end
ObjectSpace.each_object do |obj|
return obj if obj.id == @id
end
end
def alive?
if @id
true
else
false
end
end
def []
__getobj__
end
end
# 実行していないよ!!
だいぶ簡単になったでしょ?
def []はすごい使い方ですねえ.... こんな使い方した例って今までにありま
した?
__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---