[#34909] Kernel#evalの第2引数 — KURODA Hiraku <hiraku@...>
こんにちは、黒田ひらくと申します。
[#34911] erb still treats $KCODE — "Yusuke ENDOH" <mame@...>
遠藤です。
咳といいます。
まつもと ゆきひろです
永井@知能.九工大です.
[#34923] open() and encodings — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
永井@知能.九工大です.
こんにちは、なかむら(う)です。
In article <4847146F.4020103@airemix.jp>,
永井@知能.九工大です.
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#34938] Ruby1.8.7 で Rails2.0.2 が動かない — okkez <okkez000@...>
okkez です。
[#34979] [Bug:ruby 1.9] cannot open file with big mode value — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#34990] [Bug:1.9] Rational("355/113") clear $& — Tanaka Akira <akr@...>
以下のように、Rational("355/113") とすると $& が nil になり
> 以下のように、Rational("355/113") とすると $& が nil になり
ワナベと申します。
[#34997] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
遠藤です。
まつもと ゆきひろです
遠藤です。
まつもと ゆきひろです
遠藤です。
ささだです.
ささだです.
まつもと ゆきひろです
ささだです.
[#35016] リリースプラン:1.9.0-2 — SASADA Koichi <ko1@...>
ささだです.
ささだです.
[#35020] Ruby 1.8.7-p17 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.7-p17 をリリースしました。
pegacorn です。
[#35034] Array#shuffle! returns nil ? — okkez <okkez000@...>
okkez です。
[#35044] deadlock detection for 1.9 — "Yusuke ENDOH" <mame@...>
遠藤です。
こんばんは sheepman です。
まつもと ゆきひろです
[#35054] SSE2版 strlen — "NARUSE, Yui" <naruse@...>
成瀬です。
In message <485000F3.2010302@airemix.jp>
[#35056] Wide Finder performance — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
ささだです.
[#35074] [Bug:1.9] irb fg — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#35108] Re: [ruby-list:44988] Re: 各ブランチの計画 — Urabe Shyouhei <shyouhei@...>
卜部です。
こんにちは、なかむら(う)です。
[#35131] /\p{Hiragana}/s may dump core when sizeof(int) differs from sizeof(long) — "Yusuke ENDOH" <mame@...>
遠藤です。
[#35133] [BUG] class variable — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
[#35141] Etc::Passwd, Etc::Group というクラスは存在しない — okkez <okkez000@...>
okkez です。
[#35148] [Feature:trunk] IO#binmode? — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#35152] PATCH for MySQL/Ruby — Nobuyoshi Nakada <nobu@...>
なかだです。
[#35158] Etc.passwd{} のなかでのEtc.getpwnamの呼び出しがループします。 — "Yutaka Kanemoto" <kinpoco@...>
金本と申します。
[#35165] return from proc — SASADA Koichi <ko1@...>
ささだです.
[#35194] IncompatibleEncodingError — Kouhei Sutou <kou@...>
須藤です。
成瀬です。
須藤です。
[#35200] Win32 Unicode console output — Tietew <tietew@...>
Tietew です。
成瀬です。
artonです。
成瀬です。
成瀬です。
こんにちは、なかむら(う)です。
[#35226] [PATCH] freeze required_paths in gem_prelude.rb — "Keita Yamaguchi" <keita.yamaguchi@...>
山口と申します。
遠藤です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
[#35227] [Bug:trunk] Re: [ruby-cvs:24798] Ruby:r17573 (trunk): * parse.y (primary): make functional-style not operator to act — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#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のほうはおさまっ
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
卜部です。
[#35272] some insns should be method? — SASADA Koichi <ko1@...>
ささだです.
[#35273] $SAFEの今後 — Urabe Shyouhei <shyouhei@...>
〜これまでのあらすじ〜
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
前田です。
山口と申します。
[#35274] [Feature:trunk] test-coverage measurement — "Yusuke ENDOH" <mame@...>
遠藤です。
まつもと ゆきひろです
[#35278] [BUG] test_win32ole_event.rb in trunk — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
artonです。
助田です。
artonです
助田です。
[ruby-dev:35149] Re: [BUG] class variable
永井@知能.九工大です.
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)
九州工業大学 大学院情報工学研究院 知能情報工学研究系