[#2026] Re: [ruby-list:7298] Re: cmp operator — NAGAI Hidetoshi <nagai@...>

永井@知能.九工大です.

73 messages 1998/04/02
[#2031] Re: [ruby-list:7298] Re: cmp operator — Tadayoshi Funaba <tadf@...> 1998/04/02

ふなばです。

[#2032] Re: [ruby-list:7298] Re: cmp operator — NAGAI Hidetoshi <nagai@...> 1998/04/03

永井@知能.九工大です.

[#2058] Re: [ruby-list:7298] Re: cmp operator — Tadayoshi Funaba <tadf@...> 1998/04/03

ふなばです。

[#2065] Re: [ruby-list:7298] Re: cmp operator — NAGAI Hidetoshi <nagai@...> 1998/04/06

永井@知能.九工大です.

[#2095] Re: [ruby-list:7298] Re: cmp operator — Tadayoshi Funaba <tadf@...> 1998/04/06

ふなばです。

[#2101] Re: [ruby-list:7298] Re: cmp operator — keiju@... (石塚圭樹 ) 1998/04/06

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

[#2109] Re: [ruby-list:7298] Re: cmp operator — matz@... (Yukihiro Matsumoto) 1998/04/07

まつもと ゆきひろです

[#2119] Re: [ruby-list:7298] Re: cmp operator — keiju@... (石塚圭樹 ) 1998/04/07

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

[#2123] Re: [ruby-list:7298] Re: cmp operator — matz@... (Yukihiro Matsumoto) 1998/04/07

まつもと ゆきひろです

[#2124] Re: [ruby-list:7298] Re: cmp operator — keiju@... (石塚圭樹 ) 1998/04/07

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

[#2125] Re: [ruby-list:7298] Re: cmp operator — keiju@... (石塚圭樹 ) 1998/04/07

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

[#2128] Re: [ruby-list:7298] Re: cmp operator — matz@... (Yukihiro Matsumoto) 1998/04/07

まつもと ゆきひろです

[#2136] Re: [ruby-list:7298] Re: cmp operator — keiju@... (石塚圭樹 ) 1998/04/07

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

[#2137] Re: [ruby-list:7298] Re: cmp operator — matz@... (Yukihiro Matsumoto) 1998/04/07

まつもと ゆきひろです

[#2139] Re: [ruby-list:7298] Re: cmp operator — keiju@... (石塚圭樹 ) 1998/04/07

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

[#2104] Re: [ruby-list:7298] Re: cmp operator — NAGAI Hidetoshi <nagai@...> 1998/04/07

永井@知能.九工大です.

[#2165] Re: [ruby-list:7298] Re: cmp operator — Tadayoshi Funaba <tadf@...> 1998/04/07

ふなばです。

[#2177] Re: [ruby-list:7298] Re: cmp operator — NAGAI Hidetoshi <nagai@...> 1998/04/08

永井@知能.九工大です.

[#2063] [?] eval "def foo3;end" of instance_eval("binding") — keiju@... (Keiju ISHITSUKA)

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

20 messages 1998/04/05
[#2072] Re: [?] eval "def foo3;end" of instance_eval("binding") — matz@... (Yukihiro Matsumoto) 1998/04/06

まつもと ゆきひろです

[#2075] Re: [?] eval "def foo3;end" of instance_eval("binding") — keiju@... (石塚圭樹 ) 1998/04/06

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

[#2078] Re: [?] eval "def foo3;end" of instance_eval("binding") — matz@... (Yukihiro Matsumoto) 1998/04/06

まつもと ゆきひろです

[#2081] Re: [?] eval "def foo3;end" of instance_eval("binding") — keiju@... (石塚圭樹 ) 1998/04/06

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

[#2084] Re: [?] eval "def foo3;end" of instance_eval("binding") — matz@... (Yukihiro Matsumoto) 1998/04/06

まつもと ゆきひろです

[#2086] Re: [?] eval "def foo3;end" of instance_eval("binding") — keiju@... (石塚圭樹 ) 1998/04/06

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

[#2087] private singleton_methods (Re: [?] eval "def foo3;end" of instance_eval("binding")) — matz@... (Yukihiro Matsumoto) 1998/04/06

まつもと ゆきひろです

[#2089] Re: private singleton_methods (Re: [?] eval "def foo3;end" of instance_eval("binding")) — keiju@... (石塚圭樹 ) 1998/04/06

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

[#2090] Re: private singleton_methods (Re: [?] eval "def foo3;end" of instance_eval("binding")) — matz@... (Yukihiro Matsumoto) 1998/04/06

まつもと ゆきひろです

[#2092] Re: private singleton_methods (Re: [?] eval "def foo3;end" of instance_eval("binding")) — keiju@... (石塚圭樹 ) 1998/04/06

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

[#2152] Re: experimental release 1.1b9_07 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

20 messages 1998/04/07
[#2157] Re: experimental release 1.1b9_07 — WATANABE Hirofumi <watanabe@...> 1998/04/07

わたなべです.

[#2159] experimental release 1.1b9_08 — matz@... (Yukihiro Matsumoto) 1998/04/07

まつもと ゆきひろです

[#2154] @xxx = xxx in initialize — Kazunori NISHI <kazunori@...>

西@九大です。

16 messages 1998/04/07
[#2171] Re: @xxx = xxx in initialize — shugo@... (Shugo Maeda) 1998/04/07

前田です。

[#2185] Re: @xxx = xxx in initialize — Kazunori NISHI <kazunori@...> 1998/04/08

西@九大です。

[#2217] Re: [ruby-list:7406] Re: string replace — shugo@... (Shugo Maeda)

前田です。

14 messages 1998/04/09

[#2238] [Req] stack level too deep (fatal) — keiju@... (Keiju ISHITSUKA)

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

14 messages 1998/04/11
[#2266] Re: [Req] stack level too deep (fatal) — matz@... (Yukihiro Matsumoto) 1998/04/13

まつもと ゆきひろです

[#2274] Re: [Req] stack level too deep (fatal) — keiju@... (石塚圭樹 ) 1998/04/13

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

[#2277] Re: [Req] stack level too deep (fatal) — matz@... (Yukihiro Matsumoto) 1998/04/13

まつもと ゆきひろです

[#2239] [Problem] thread and signal and sleep — keiju@... (Keiju ISHITSUKA)

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

27 messages 1998/04/11
[#2272] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/13

まつもと ゆきひろです

[#2273] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/13

まつもと ゆきひろです

[#2275] Re: [Problem] thread and signal and sleep — keiju@... (石塚圭樹 ) 1998/04/13

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

[#2278] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/13

まつもと ゆきひろです

[#2280] Re: [Problem] thread and signal and sleep — keiju@... (石塚圭樹 ) 1998/04/13

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

[#2282] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/13

まつもと ゆきひろです

[#2293] Re: [Problem] thread and signal and sleep — keiju@... (石塚圭樹 ) 1998/04/14

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

[#2297] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/14

まつもと ゆきひろです

[#2327] Re: [Problem] thread and signal and sleep — keiju@... (石塚圭樹 ) 1998/04/14

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

[#2331] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#2337] Re: [Problem] thread and signal and sleep — keiju@... (石塚圭樹 ) 1998/04/15

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

[#2344] Re: [Problem] thread and signal and sleep — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#2347] Re: [Problem] thread and signal and sleep — keiju@... (石塚圭樹 ) 1998/04/15

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

[#2338] readline — Masao Kanemitsu <masao-k@...>

16 messages 1998/04/15

[#2378] experimental release 1.1b9_11 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 1998/04/16

[#2407] [Bug or Spec?] extend and include — keiju@... (Keiju ISHITSUKA)

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

16 messages 1998/04/17
[#2408] Re: [Bug or Spec?] extend and include — matz@... (Yukihiro Matsumoto) 1998/04/17

まつもと ゆきひろです

[#2409] Re: [Bug or Spec?] extend and include — keiju@... (石塚圭樹 ) 1998/04/17

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

[#2410] Re: [Bug or Spec?] extend and include — matz@... (Yukihiro Matsumoto) 1998/04/17

まつもと ゆきひろです

[#2411] Re: [Bug or Spec?] extend and include — keiju@... (石塚圭樹 ) 1998/04/17

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

[#2465] — Inaba Hiroto <inaba@...>

以下は仕様なのでしょうか?

18 messages 1998/04/21
[#2469] Re: — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#2473] iterator variable (Re: Re: ) — Inaba Hiroto <inaba@...> 1998/04/22

イテレータ変数という言いかたがわからなくて, Subjectは後でつけようと思っ

[#2472] undef HAVE_RANDOM in case of Linux (with libc5) — Kazunori NISHI <kazunori@...>

西@九大です。

20 messages 1998/04/22
[#2479] Re: undef HAVE_RANDOM in case of Linux (with libc5) — matz@... (Yukihiro Matsumoto) 1998/04/23

まつもと ゆきひろです

[#2483] Re: undef HAVE_RANDOM in case of Linux (with libc5) — WATANABE Hirofumi <watanabe@...> 1998/04/23

わたなべです.

[#2484] Re: undef HAVE_RANDOM in case of Linux (with libc5) — WATANABE Hirofumi <watanabe@...> 1998/04/23

わたなべです.

[#2485] Re: undef HAVE_RANDOM in case of Linux (with libc5) — matz@... (Yukihiro Matsumoto) 1998/04/23

まつもと ゆきひろです

[#2486] Re: undef HAVE_RANDOM in case of Linux (with libc5) — WATANABE Hirofumi <watanabe@...> 1998/04/23

わたなべです.

[#2539] experimental release ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

19 messages 1998/04/28
[#2540] Re: experimental release ruby 1.1b9_16 — Takahiro Maebashi <maebashi@...> 1998/04/28

前橋です。

[#2541] Re: experimental release ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto) 1998/04/28

まつもと ゆきひろです

[#2545] Re: experimental release ruby 1.1b9_16 — NAGAI Hidetoshi <nagai@...> 1998/04/30

永井@知能.九工大です.

[#2548] Re: experimental release ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto) 1998/04/30

まつもと ゆきひろです

[#2550] Re: experimental release ruby 1.1b9_16 — keiju@... (石塚圭樹 ) 1998/04/30

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

[#2551] Re: experimental release ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto) 1998/04/30

まつもと ゆきひろです

[ruby-dev:2062] Re: [Req] Binding.new

From: keiju@... (石塚圭樹 )
Date: 1998-04-05 08:17:25 UTC
List: ruby-dev #2062
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :2055 ] the message: "[ruby-dev:2055] Re: [Req]
Binding.new ", on Apr/03 19:27(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>あー,普通は「インタラクティブでも独立した環境は必須じゃない
>んだ」という結論がでると思うんですけど.^^;;;

うーん. と思ったら...

># ちなみに動的スコープはこの問題に関係ないです.

setqってグローバルですものね(^^;; っということで, じつは, elispにはトッ
プレベルでローカル変数を定義できないから, 逆に問題がないんですね.

smalltalkも同じようなもんですね.

>そもそも「そういうのが実現できると嬉しい」というのは分かるん
>ですけど,「そういうのが実現できないといけない」ではない以上
>変更に慎重になるのは当然だと思います.

そうですね. 実現できないといけないといってもいろいろなレベルがあるでしょ
うけどね. 言語機能的になくちゃいけないのか? あることを実現するのになく
ちゃいけないのか? と. 今回は後者だと思っていたのですが...

# 十分, 代わりになる機能に気づいてしまいました(^^;;;

>スコープの定義が不明確ですが,私の主張の根幹は「バインディン
>グを合成しても構わないのか」というものです.また,「合成して
>も構わないとしてその状態はどのように指定されるべきか」が明確
>でないと採用できないと思ってます.

今回他の方法が見つかったので, このリクエストは取り下げます. 

でも, この話しはMFLの話しとしても面白いと思うので, 何か考えがまとまっ
たら, またお騒がせするかも知れません. その時はよろしくお願いします
(__;;;

で, 方法というのは,

  new_binding = proc{binding}.call

を使う方法なんです. procないで定義された変数はそこだけで有効ですから, 
これを使えば, 目的は果たせることに気づきました.

# self(main)は共有しちゃうんですが, それはそれでまあいいかなと... いろ
# いろと問題がないではないんですが...

実は, この方法は昔から気づいていたんですが, ある現象(バグ?)のために勘
違いしていたのでした. それが何かというと, これです:

irb:002:0> p = proc{binding}.call
#<Binding:0x40127794>
irb:003:0> eval "foo = 1", p
1
irb:004:0> foo
1

ローカル変数が共有されていますよね? おかしいなと思いつつ, そういうもん
だと信じていたのでした. でも,

irb:006:0> q = proc{dummy = 1; binding}.call
#<Binding:0x40123e78>
irb:007:0> eval "bar = 1", q
1
irb:008:0> bar
NameError: undefined local variable or method `bar' for #<Object:0x40100190>
irb:8

と, proc内で変数を定義すると変数の空間が分離するらしい(そういう実装な
んですね?)ことに気づきました.

実装上は, どうなっていようとも, proc内はローカル変数の空間は独立(いや
継承する)となっていますので, bindingのバグだと思うのですが?

ついでに, リクエストしちゃいますが, Cにはブロックがありますよね?

{
  int foo = 1;
  {
    int foo = 2;
    ...

みたいなものです, これって良く使うでしょ? rubyでも

  proc {
    ...
  }.call

とすればできるんですけど, 何か間抜けでしょ? そういうわけで, rubyにもあっ
ても良いと思うのですが?

  block do ... end

結構意味がはっきりしているので, 構文として採用しても良いと思います.

  block ... end

いかがでしょう? でも, begin ... end と間際らしいかな... もっとlocalな
ことを明示的に表すように.

  local ...  end
  let ... end
  progn ... end

とか? 

いかがでしょう?

>|うーん. それなりの機能を持ったスコープを作る構文orイテレータでも良いん
>|ですけどね...
>
>その場合には「それなりの機能」を定義して下さいよお.
># 『言うだけは簡単』は勘弁して欲しい.

上記にリクエストを出しました(^^;;;

>あと,実装の話をするとローカル変数はコンパイル時に計算される
>部分が多いので動的に変更するのはすっごく大変です.evalのよう
>なコンパイル前に指定するのは不可能ではないでしょうが,イテレー
>タブロックの範囲内だけスコープを変更するなどと言うのはほとん
>ど不可能でしょう.パーザを再実装するくらい大変です.

これは, 完全に独立なlocal変数ということですね? 実はイテレータブロック
のスコープそのままで良かったみたいです(__;;;

>構文は…いまさら構文を追加するのは避けたい….

上記のようなものならあっても良いとは思いますが...

>メソッド一個定義して終り,くらいだと簡単にコストが計算できる
>んですけど,今回のような変更の場合は先が読めないのです.ご理
>解下さい.

いろいろと御迷惑をおかけしました(__;;

>うーん,やっぱり無理して独立したバインディングを用意しようと
>してるからではないかという気がして来ました.なんか場当たり的
>な対応をするのではなく,

だからこそ, 欲しかったんですけど(^^;;;

>もっと根本から考え直した方が良いような気がします.


>|privateとして定義する何かうまい手がありますかね?   
>
>あ,そうそう.scopeにはこれから定義するメソッドがprivateかど
>うかっていう情報も入ってるんでした.うーむ.

procのbindingは問題ありませんでした:

irb:013:0> eval "def foo;end", q
nil
irb:014:0> private_methods
[... "foo" ...]

>たとえば同じ環境に見えて独立してるってのをすっぱり諦めて,モ
>ジュール(あるいはクラス)単位で別のスコープを見せるってのは?
>言語のモデルとあまり離れていないので,実装はずっと楽だと思い
>ますよ.private/publicの辺りで修正は必要になりそうだけど.

いや. こっちはこっちでやろうと思っていました. それこそオブジェクト空間
のcdに相当するものですね(^^;;;

# ローカル変数を共有できないのがちょっとというかかなり違いますけどね.

この機能とshell.rbをつかってshellモードを作ろうかなと... そうすると, 

  sh = Shell.cd("/tmp")
  for dir in ["dir1", "dir3", "dir5"]
    sh.mkdir dir
    sh.pushd(dir) do
      sh.echo("TEST") > "tmpFile"
    end
  end

は

irb> shell
shell> cd "/tmp"
shell> for dir in ["dir1", "dir3", "dir5"]
shell>   mkdir dir
shell>   pushd(dir) do
shell>     echo("TEST") > "tmpFile"
shell>   end
shell> end

見たくできます. ほんとのshellっぽいでしょ?

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

In This Thread