[#35688] サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? — Onodera Takafumi <onodera-tak@...>

9 messages 2002/08/01

[#35772] Unsecure world writeable dirの警告 — "井上 浩一" <kyoui32@...>

井上です。

31 messages 2002/08/26
[#35774] Re: Unsecure world writeable dir の警告 — matz@... (Yukihiro Matsumoto) 2002/08/26

まつもと ゆきひろです

[#35775] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35776] Re: Unsecure world writeabledir の警告 — matz@... (Yukihiro Matsumoto) 2002/08/26

まつもと ゆきひろです

[#35778] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35779] Re: Unsecure world writeabledir の警告 — WATANABE Hirofumi <eban@...> 2002/08/26

わたなべです。

[#35780] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35784] Re: Unsecure world writeabledir の警告 — "U.Nakamura" <usa@...> 2002/08/26

こんにちは、なかむら(う)です。

[#35854] Re: Unsecure world writeabledir の警告 — "Inoue" <rubyist@...1.117.ne.jp> 2002/09/04

井上です。

[#35865] Re: Unsecure world writeabledir の警告 — Koji Arai <JCA02266@...> 2002/09/05

新井です。

[#35866] Re: Unsecure world writeabledir の警告 — matz@... (Yukihiro Matsumoto) 2002/09/06

まつもと ゆきひろです

[#35789] multipart な CGI を速くしたい — Takashi Kanai <kanai@...4u.or.jp>

Windows上でRubyとMySQLを使ってショッピングサイトのようなものを作って

17 messages 2002/08/28

[ruby-list:35706] Re: scope-in-state [Re: new mathn [Re: Rational#to_int ~ String#center]]

From: Keiju ISHITSUKA <keiju@...>
Date: 2002-08-04 15:50:22 UTC
List: ruby-list #35706
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list:35645] the message: "[ruby-list:35645] Re:
scope-in-state [Re: new mathn [Re: Rational#to_int ← 
String#center]]", on Jul/26 17:04(JST) Shin-ichiro HARA writes:

>原です。
>すばらしー、大傑作ではないでしょうか。

ありがとうございます.

>これで、多くの問題がうやむやに、、、いや、解決できますね。(^^

うーむ... 

>私も似たようなことを考えていたんですが、スレッドを考えると難しくて
>やめてしまいました。
>
>思いつくままに意見を:
>
> >モジュールSは状態を表しているつもりです.  ここで, S::FooはFooに追加さ
> >れるモジュール, S::BarはBarに追加されるモジュールです. 一度に複数のク
> >ラスの振る舞いを変えることができないと意味がないので, こんな感じになり
> >ました. 上記の場合 S::Mod1::Mod2::Mod3は Sを取ったもの, つまり
> >Mod1::Mod2::Mod3に追加されます.
>
>複数のモジュールを同時に考えると便利ではあるけれど、そのために使
>い方が、ちょっと手間が必要になっていないかなあ。ネストができるの
>だから素朴に

(中略)

>みたいなインターフェースだと見た目がいいかも。しかし、Foo.in_state 
>が Foo の状態を替えるところが気持ち悪いかな。

で, 原さんのimport-moduleなわけなんですね? この件に付いては別メイルで.

> >1. 上記のような単純な場合はわかりやすいが, ベースのクラスが継承したり
> >   includeしていたりすると, どう動作するのか想像しがたい.
>
> >1.は, 状態スコープで定義されたものが優先されるはずです. 概念的にはベー
> >スクラスで定義されたメソッドを状態に応じて変えるので, ベースクラスのメ
> >ソッドと同レベルと判断したからです.
>
>include されたモジュールのメソッドに関してもすげ替えができるようになっ
>たらうれしいなあ。つまり、

(中略)

>みたいに。

うーん. これはモジュールの入れ替えですよね. これはきっと実現できなさそ
う... これと同値のものとして, 以下のならできます.

module M0
   def foo; 0; end
end

class Foo
   include M0
end

module S
  module M0
    def foo; 1; end
  end
end

ScopeS = ScopeInState.new(S)

class Foo             # <- ここがみそ
   include M0
end

foo = Foo.new
p foo.foo #=> 0
ScopeS.scope_in do
   p foo.foo #=> 1
end
p foo.foo #=> 0

ただ... 『ここがみそ』のところを実行しないとだめなんですが...
ScopeInState.newでM0の継承列が変更されるのですが, rubyではそれがFooに
伝達されませんので...

ただ, これは解決できなくはないので解決できると思うのですが... 

# それともruby-1.7では解決されましたっけ? 昔MLで話題になったと思います
# が, 結果を忘れてしまいました(^^;;;

> >2. 状態スコープのネスティングができるようになっているが, そのため実装
> >   が複雑&&実行コストがかかっている
>
>このモジュールは整数の割り算とか、頻繁に実行される基礎的なメソッ
>ドにも使われる可能性が大なわけですよね。だから、実行コストの問題
>は、実験してみないとわからないけど、非常に大きいかもしれませんね。
>
>scope の入り口と出口でメソッド書き換えるのが、多分そのメソッドの
>実行コストは一番小さいけど、そうするとマルチスレッドと両立できな
>いですよね。ただ、大きなコストの差があるなら、そういうバージョン
>も欲しいです。

で, 原さんのimport-moduleの実装になるわけですか... 仕様と実装は分けて
かなえるべきだとおもいますが, 原さんの実装は参考になりそうなところも多
いなと感じました. 

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread