From: naruse@... Date: 2017-03-11T14:20:56+00:00 Subject: [ruby-dev:50010] [Ruby trunk Bug#13089] r57227 の変更ではリークが起きるようです Issue #13089 has been updated by Yui NARUSE. Backport changed from 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED to 2.2: REQUIRED, 2.3: REQUIRED, 2.4: DONE ruby_2_4 r57846 merged revision(s) 57236. ---------------------------------------- Bug #13089: r57227 の変更ではリークが起きるようです https://bugs.ruby-lang.org/issues/13089#change-63440 * Author: Makoto Kishimoto * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.2: REQUIRED, 2.3: REQUIRED, 2.4: DONE ---------------------------------------- きしもとです 手元の環境で、最新版(r57227 の変更以降)で、以下のような スクリプトを実行しながら、topコマンドでインタプリタのプロセスを 見ていると、リークがあるようで、SIZE, RES がじりじりと増えて ゆきます。 ```ruby # fdiv_leak_sample A = 0x4000_0000_0000_0000 B = 0x4000_0000_0000_0000 def f A.fdiv B end t = true while t do f GC.start end ``` r57227 は、計算前に約分するので、私が現在コードを書いている 変更とは相互に影響しないのですが(bignumの変更についても、 さきほどGitHubのほうにpushしました)、情報を失わないような 左シフトだけを使って実装することで、浮動小数点リテラルの 特異な場合(次を参照)、 ( https://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3A%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0%E3%82%92%E3%81%A9%E3%81%93%E3%81%BE%E3%81%A7%E8%AA%AD%E3%82%80%E3%81%8B ) に対処する、というような応用にも使えるように改良することを 意図した改造を作業中なのですが、反対とかありますでしょうか? (大きい数になるので、除算コストが大きい、というのは あるかもしれません) -- https://bugs.ruby-lang.org/