[#34911] erb still treats $KCODE — "Yusuke ENDOH" <mame@...>

遠藤です。

16 messages 2008/06/03

[#34923] open() and encodings — "NARUSE, Yui" <naruse@...>

成瀬です。

53 messages 2008/06/03
[#34924] Re: open() and encodings — Yukihiro Matsumoto <matz@...> 2008/06/04

まつもと ゆきひろです

[#34931] Re: open() and encodings — "NARUSE, Yui" <naruse@...> 2008/06/04

成瀬です。

[#34934] Re: open() and encodings — Yukihiro Matsumoto <matz@...> 2008/06/05

まつもと ゆきひろです

[#34935] Re: open() and encodings — "U.Nakamura" <usa@...> 2008/06/05

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

[#34936] Re: open() and encodings — Yukihiro Matsumoto <matz@...> 2008/06/05

まつもと ゆきひろです

[#34937] Re: open() and encodings — "U.Nakamura" <usa@...> 2008/06/05

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

[#34948] Re: open() and encodings — Hidetoshi NAGAI <nagai@...> 2008/06/05

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

[#34961] Re: open() and encodings — "NARUSE, Yui" <naruse@...> 2008/06/05

成瀬です。

[#34997] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — SASADA Koichi <ko1@...>

 ささだです.

19 messages 2008/06/08
[#34998] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — Yukihiro Matsumoto <matz@...> 2008/06/08

まつもと ゆきひろです

[#34999] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — SASADA Koichi <ko1@...> 2008/06/08

 ささだです.

[#35000] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — Yukihiro Matsumoto <matz@...> 2008/06/08

まつもと ゆきひろです

[#35001] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — SASADA Koichi <ko1@...> 2008/06/08

 ささだです.

[#35003] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — Yukihiro Matsumoto <matz@...> 2008/06/08

まつもと ゆきひろです

[#35007] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — "Yusuke ENDOH" <mame@...> 2008/06/09

遠藤です。

[#35013] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — Yukihiro Matsumoto <matz@...> 2008/06/09

まつもと ゆきひろです

[#35019] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — "Yusuke ENDOH" <mame@...> 2008/06/09

遠藤です。

[#35021] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — Yukihiro Matsumoto <matz@...> 2008/06/09

まつもと ゆきひろです

[#35020] Ruby 1.8.7-p17 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.7-p17 をリリースしました。

13 messages 2008/06/09

[#35044] deadlock detection for 1.9 — "Yusuke ENDOH" <mame@...>

遠藤です。

14 messages 2008/06/10

[#35108] Re: [ruby-list:44988] Re: 各ブランチの計画 — Urabe Shyouhei <shyouhei@...>

卜部です。

15 messages 2008/06/15

[#35200] Win32 Unicode console output — Tietew <tietew@...>

Tietew です。

22 messages 2008/06/22
[#35270] Re: Win32 Unicode console output — "NARUSE, Yui" <naruse@...> 2008/06/29

[#35226] [PATCH] freeze required_paths in gem_prelude.rb — "Keita Yamaguchi" <keita.yamaguchi@...>

山口と申します。

14 messages 2008/06/25
[#35228] Re: [PATCH] freeze required_paths in gem_prelude.rb — "Yusuke ENDOH" <mame@...> 2008/06/25

遠藤です。

[#35230] Re: [PATCH] freeze required_paths in gem_prelude.rb — Yukihiro Matsumoto <matz@...> 2008/06/25

まつもと ゆきひろです

[#35227] [Bug:trunk] Re: [ruby-cvs:24798] Ruby:r17573 (trunk): * parse.y (primary): make functional-style not operator to act — "U.Nakamura" <usa@...>

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

7 messages 2008/06/25

[#35247] Re: [ruby-list:45128] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Urabe Shyouhei <shyouhei@...>

卜部です。-devに振ります。ひょっとしてこんなパッチでSEGVのほうはおさまっ

13 messages 2008/06/26
[#35250] Re: [ruby-list:45128] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Yukihiro Matsumoto <matz@...> 2008/06/26

まつもと ゆきひろです

[#35273] $SAFEの今後 — Urabe Shyouhei <shyouhei@...>

〜これまでのあらすじ〜

24 messages 2008/06/30
[#35293] Re: $SAFEの今後 — Yukihiro Matsumoto <matz@...> 2008/07/01

まつもと ゆきひろです

[#35298] Re: $SAFEの今後 — Urabe Shyouhei <shyouhei@...> 2008/07/01

卜部です。

[#35303] Re: $SAFEの今後 — Yukihiro Matsumoto <matz@...> 2008/07/01

まつもと ゆきひろです

[#35304] Re: $SAFEの今後 — Urabe Shyouhei <shyouhei@...> 2008/07/01

卜部です。

[#35305] Re: $SAFEの今後 — Yukihiro Matsumoto <matz@...> 2008/07/01

まつもと ゆきひろです

[#35306] Re: $SAFEの今後 — "Shugo Maeda" <shugo@...> 2008/07/02

前田です。

[#35278] [BUG] test_win32ole_event.rb in trunk — Masaki Suketa <masaki.suketa@...>

助田です。

22 messages 2008/06/30
[#35281] Re: [BUG] test_win32ole_event.rb in trunk — "U.Nakamura" <usa@...> 2008/06/30

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

[#35282] Re: [BUG] test_win32ole_event.rb in trunk — arton <artonx@...> 2008/06/30

artonです。

[#35295] Re: [BUG] test_win32ole_event.rb in trunk — Masaki Suketa <masaki.suketa@...> 2008/07/01

助田です。

[ruby-dev:35149] Re: [BUG] class variable

From: Hidetoshi NAGAI <nagai@...>
Date: 2008-06-17 16:17:17 UTC
List: ruby-dev #35149
永井@知能.九工大です.

From: SASADA Koichi <ko1@atdot.net>
Subject: [ruby-dev:35147] Re: [BUG] class variable
Date: Tue, 17 Jun 2008 23:41:07 +0900
Message-ID: <4857CD3E.70004@atdot.net>
>  すみませんすみません.[ruby-dev:34527] は別の話で,しかもすでに
> パッチはあたっていました orz
> 
>  永井さんの指摘は,また別の指摘でしょうか.つまり,1.8 以前も間違っ
> ている,ということ?

うゎ,ごめんなさい.1.8 以前ではできていたと勘違いしてました.

勝手に勘違いしていた私が悪いだけかもしれませんが,
[ruby-dev:35133] で述べていたのは,マニュアルに書かれた
「Ruby におけるクラスメソッドとはクラスの特異メソッドのことです」
という定義から期待されるものと挙動が違うということです.

この定義に基づくなら,
-------------------------------------
class A
  @iVAR=0
  @@VAR = 1
  def self.hoge; p @iVAR; p @@VAR; end
  def A.fuga; p @iVAR; p @@VAR; end
end
class << A
  def foo; p @iVAR; p @@VAR; end
end
def A.bar; p @iVAR; p @@VAR; end
-------------------------------------
の A.hoge, A.fuga, A.foo, A.bar は同等のクラスメソッドであることを
期待してしまいますが,A.hoge, A.fuga は 0, 1 を返すものの,
A.foo は
-------------------------------------
irb(main):013:0> A.foo
0
(irb):8: warning: class variable access from toplevel
NameError: uninitialized class variable @@VAR in Object
        from (irb):8:in `foo'
        from (irb):13
        from /usr/local/bin/irb19:12:in `<main>'
-------------------------------------
ですし,A.bar は
-------------------------------------
irb(main):014:0> A.bar
0
NameError: uninitialized class variable @@VAR in Object
        from (irb):10:in `bar'
        from (irb):14
        from /usr/local/bin/irb19:12:in `<main>'
-------------------------------------
となります (警告表示分,微妙に動作が違うのも気になります).

というわけで,クラスのインスタンス変数へのアクセスは同じですが,
クラス変数へのアクセスは挙動が異なるということになります.

# この点,オブジェクトの特異メソッドでも同じだったんですね.(^_^;
# 特異メソッドとして定義するとクラス変数へのアクセスはできない.

マニュアルの定義を改めて,
「特異クラスが介在した場合,
  特異メソッドの定義はその特異クラスへの定義となるため,
  特異メソッドを定義しようとしているクラスのクラス変数へは
  アクセスできません.
  そのため,クラスの特異メソッドとクラスメソッドとは
  見掛けは同じに見えますが挙動は異なります」
と定義して,マニュアルにおけるコード例でも違いを明示するのであれば,
それはそれでいいのかもしれません.

# ただその場合でも,A.fuga と A.bar との違いは
# やや分かりづらいように感じて,あまりすっきりはしませんが...

発端は私の勝手な思い込みですので,
「仕様を変更すべき」などとは主張しませんが,
私のような勘違いを防ぐためにも
マニュアルの記述は修正すべきかと思います.
-- 
永井 秀利  (nagai@ai.kyutech.ac.jp)
九州工業大学 大学院情報工学研究院 知能情報工学研究系

In This Thread