前田です。 In message "[ruby-list:9613] can't clone Fixnum" Kikutani Makoto <kikutani / sprintmail.com> wrote: |前田さんのruby-jedパッチをJed 0.98.7+J0.5.3に無理やりあてて |makeしたんですが、ruby_shellモードが動きません。 |何かruby文を入れても「can't clone Fixnum」と言われてます。 すみません、とりあえずこのパッチをあててみてください。 --[[application/octet-stream; type=patch Content-Disposition: attachment; filename="buffer.rb.diff"][7bit]] --- buffer.rb~ Mon Jun 22 23:18:19 1998 +++ buffer.rb Mon Sep 21 18:32:54 1998 @@ -26,7 +26,11 @@ if defined? @#{name} @#{name} else - @#{name} = DEFAULT_VALUES['#{name}'].clone + begin + @#{name} = DEFAULT_VALUES['#{name}'].clone + rescue + @#{name} = DEFAULT_VALUES['#{name}'] + end end end --[[text/plain]] In message "[ruby-list:9621] Re: can't clone Fixnum" Yukihiro Matsumoto <matz / netlab.co.jp> wrote: |現在のcloneのデフォルトの定義はFixnumのようにcloneという操作 |が定義できないものに対しては例外を発生させます(「1」のコピーっ |てなに?).これについては | | * clone操作が定義できない場合はcloneせずにそのものを返す | |とか, | | * とりあえずFixnumについてはcloneとはそのものを返すことで | あると定義する | |とかのRuby側の対処法が考えられますし,ruby_shell側で無闇に |cloneを行わないという選択肢もありえます. immutableなオブジェクトの場合、cloneで自分自身を返しても たぶん問題ないですよね。 とするとそうした方が例外処理しないでよい分便利かな。 ただメソッド名と内容が一致しないのが気持ち悪いですが...。 -- 前田 修吾 <shugo / aianet.ne.jp>