[#32185] Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...>

こんにちは、山本と申します。

26 messages 2007/11/08
[#32186] Re: Date#+に大きな数字を与えるとおかしな日付に — Tadayoshi Funaba <tadf@...> 2007/11/08

> Dateオブジェクトに+で大きな数字を与えるとおかしくなるようです。

[#32188] Re: Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...> 2007/11/09

山本です。

[#32191] Re: Date#+に大きな数字を与えるとおかしな日付に — tadf@... 2007/11/09

> アルゴリズムの意味がわからないで書いた、表層的なパッチなので

[#32194] Re: Date#+に大きな数字を与えるとおかしな日付に — Yukihiro Matsumoto <matz@...> 2007/11/09

Hi,

[#32200] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Tadayoshi Funaba <tadf@...> 2007/11/10

> 1.9ではRationalとComplexを組み込みに、という話はありましたが、

[#32225] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Shin-ichiro HARA <sinara@...> 2007/11/12

原です。

[#32198] [提案] Array#tail — "Yusuke ENDOH" <mame@...>

遠藤と申します。

21 messages 2007/11/09
[#32199] Re: [提案] Array#tail — Yukihiro Matsumoto <matz@...> 2007/11/10

まつもと ゆきひろです

[#32352] 1.9.1のリリース時期について — KIMURA Koichi <hogemuta@...>

木村です。

16 messages 2007/11/24
[#32353] Re: 1.9.1のリリース時期について — Yukihiro Matsumoto <matz@...> 2007/11/24

まつもと ゆきひろです

[#32403] Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Takahiro Kambe <taca@...>

こんばんは。

32 messages 2007/11/29
[#32414] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/11/30

卜部です。

[#32444] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Yukihiro Matsumoto <matz@...> 2007/12/03

まつもと ゆきひろです

[#32488] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/12/08

卜部です。

[#32525] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/10

遠藤と申します。

[#32643] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/19

遠藤です。

[#32409] Re: [ruby-cvs:21293] Ruby:r14056 (trunk): * signal.c (trap_signm): SIGVTALRM no longer used for green — SASADA Koichi <ko1@...>

 ささだです.

10 messages 2007/11/30

[ruby-dev:32175] Re: autoload_delete

From: Hidetoshi NAGAI <nagai@...>
Date: 2007-11-06 09:50:22 UTC
List: ruby-dev #32175
永井@知能.九工大です.

From: Nobuyoshi Nakada <nobu@ruby-lang.org>
Subject: [ruby-dev:32173] Re: autoload_delete
Date: Tue, 6 Nov 2007 16:38:43 +0900
Message-ID: <20071106073846.43E90E04BF@mail.bc9.jp>
> これは[ruby-dev:31932]と同じくバグです。直したつもりだったんです
> が、コミットしていませんでした。

あ,そうだったんですね.
[ruby-dev:31932] の修正がなされないようだったことに加え,
類似例で 1.8 で二重 load が発生したもので,
「仕様」として考えなければならないのかなと思ってのことでした.

> > # 1.8 でこれをやると,対象ファイルを2回読んでしまうらしいことに
> > # 初めて気が付きました.(^_^;
> 
> 1.8ではそういう問題は再現できないようなんですが、いつのバージョ
> ンでしょうか。

あれ?と思ってもう一度試してみたんですが,発生条件があるようです.

テスト用のファイルは
----------<zzzz.rb>----------------------------------
class ZZZ 
  $XXX ||= 0
  $XXX += 1
  p ['$XXX', $XXX]
end
-----------------------------------------------------
で,ruby のバージョンは

$ ruby -v
ruby 1.8.6 (2007-09-26 patchlevel 5000) [i686-linux]

です.

例えば
---------------------------------------------
autoload(:ZZZ, './zzzz.rb')
require 'zzzz.rb'
---------------------------------------------
は
---------------------------------------------
["$XXX", 1]
["$XXX", 2]
---------------------------------------------
となります.

それに対し,
---------------------------------------------
autoload(:ZZZ, './zzzz.rb')
require './zzzz.rb'
---------------------------------------------
は
---------------------------------------------
["$XXX", 1]
---------------------------------------------
です.

逆に
---------------------------------------------
autoload(:ZZZ, 'zzzz.rb')
require './zzzz.rb'
---------------------------------------------
は
---------------------------------------------
["$XXX", 1]
["$XXX", 2]
---------------------------------------------
で,
---------------------------------------------
autoload(:ZZZ, 'zzzz.rb')
require 'zzzz.rb'
---------------------------------------------
は
---------------------------------------------
["$XXX", 1]
---------------------------------------------
です.

また,
---------------------------------------------
autoload(:ZZZ, "#{Dir.pwd}/zzzz.rb")
require './zzzz.rb'
---------------------------------------------
も
---------------------------------------------
["$XXX", 1]
["$XXX", 2]
---------------------------------------------
になります.

同一性のチェックが不完全ということでしょうか.

> > 要は,対象ファイル中の定数定義に対して autoload が起動してしまうのが
> > 問題ですから,対象ファイルの頭で autoload 定義を殺してやれば
> > 利用者の利便性を阻害することなく回避できるはずです.
> > しかし,現状では明示的に autoload 定義を取り除くメソッドが
> > 存在しないように見受けられます.
> > そこで Kernel#autoload_delete, Module#autoload_delete を
> > 追加するというのはいかがでしょうか?
> 
> autoloadは透過的に使えるべきだ思うので、そういう回避方法は望まし
> くはないと思いますが、autoloadを取り除くメソッドの追加自体には反
> 対しません。

「回避策」については私の誤解からの話ですので
望ましくない方法であるということに同意します.
したがって,バグとして修正されるのであれば
autoload_delete も必要ではありません.

# まぁ,あってもいいのではとは思いますが.(^_^)
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread