[#38563] [Bug #1556] irb does not save history from 1.8.7-p83 and later — Nobuhiro IMAI <redmine@...>

Bug #1556: irb does not save history from 1.8.7-p83 and later

11 messages 2009/06/02

[#38571] [Bug #1582] IO.new Raises Other Errors between 1.8 and 1.9 — "ujihisa ." <redmine@...>

Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9

15 messages 2009/06/05

[#38607] [Feature: trunk] GC.stat — SASADA Koichi <ko1@...>

 ささだです.

21 messages 2009/06/14

[#38608] Fixnum#fdiv — Tadayoshi Funaba <tadf@...>

Bignum#fdiv には大きな数である場合の配慮があるようですが、Fixnum ではな

23 messages 2009/06/14
[#38636] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

fdiv では2つの異る解釈が混在しているように見えます。

[#38638] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/15

まつもと ゆきひろです

[#38639] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

> えーと、設計者は「fdivは結果がfloatになるdiv」くらいしか考え

[#38640] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/15

まつもと ゆきひろです

[#38641] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

> ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意

[#38657] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/16

> > ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意

[#38659] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/16

まつもと ゆきひろです

[#38660] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/16

> 私が気にしているのは「挙動の理解しやすさ」ですね。

[#38701] [Bug #1676] only last "return" is traced by set_trace_func — _ wanabe <redmine@...>

Bug #1676: only last "return" is traced by set_trace_func

10 messages 2009/06/22

[ruby-dev:38580] Re: [Bug #1556] irb does not save history from 1.8.7-p83 and later

From: Nobuhiro IMAI <nov@...>
Date: 2009-06-08 00:18:19 UTC
List: ruby-dev #38580
いまいです。

From: Yukihiro Matsumoto <matz_at_ruby-lang.org>
Date: Thu, 4 Jun 2009 18:21:02 +0900

> |ruby-1.8.7 系のバグのような気がします. ファイナライザーが呼び出されな
> |いような?
> 
> |1.8.7最新版のみファイナライザが実行されません. 他の, 1.8.8, 1.9系は呼
> |ばれます. ちなみに obj = nil を入れると呼び出されるので, その辺りの問
> |題では?
> 
> なるほど。調べてみます。
> 
> ただ、プロセス終了時におけるファイナライザの信頼できる実行は
> なかなか難しいので、将来的にはhistoryのセーブのような重要なタ
> スクはファイナライザからではなく、at_exitのようなフックで実現
> していただけると助かります。

irb のプロセスの寿命と、obj(IRB::Context の @io)の寿命とが同じぐらいな
のであれば、単純に at_exit を使うようにするだけでいいでしょうか。今の
ところ、手元では問題なく動いています。とりあえず ruby_1_8{,_[67]} ブラ
ンチにはそのままあたると思います。
--
Nobuhiro IMAI <nov@yo.rim.or.jp>
Key fingerprint = F39E D552 545D 7C64 D690  F644 5A15 746C BD8E 7106

Attachments (1)

irb18-save-history-at-exit.patch (693 Bytes, text/x-diff)
Index: lib/irb/ext/save-history.rb
===================================================================
--- lib/irb/ext/save-history.rb	(revision 23644)
+++ lib/irb/ext/save-history.rb	(working copy)
@@ -51,7 +51,7 @@
     include Readline
 
     def HistorySavingAbility.create_finalizer
-      proc do
+      at_exit do
 	if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) > 0
 	  if hf = IRB.conf[:HISTORY_FILE]
 	    file = File.expand_path(hf)
@@ -66,7 +66,7 @@
     end
 
     def HistorySavingAbility.extended(obj)
-      ObjectSpace.define_finalizer(obj, HistorySavingAbility.create_finalizer)
+      HistorySavingAbility.create_finalizer
       obj.load_history
       obj
     end

In This Thread