[#46026] Re: [ruby-cvs:43788] shugo:r36612 (trunk): * insns.def (invokesuper): don't skip the same class. instead, use — Urabe Shyouhei <shyouhei@...>
このコミットで壊れました。
3 messages
2012/08/03
[#46037] Re: [ruby-core:47138] [ruby-trunk - Bug #6861][Open] ERB::Util.escape_html is not escaping single quotes — Shugo Maeda <shugo@...>
咳さん
12 messages
2012/08/13
[#46038] Re: [ruby-core:47138] [ruby-trunk - Bug #6861][Open] ERB::Util.escape_html is not escaping single quotes
— Masatoshi SEKI <m_seki@...>
2012/08/13
=1B$B31$H$$$$$^$9!#=1B(B
[#46039] Re: [ruby-core:47138] [ruby-trunk - Bug #6861][Open] ERB::Util.escape_html is not escaping single quotes
— Shugo Maeda <shugo@...>
2012/08/13
前田です。
[#46043] Re: [ruby-core:47138] [ruby-trunk - Bug #6861][Open] ERB::Util.escape_html is not escaping single quotes
— fujioka <fuj@...>
2012/08/13
xibbarこと藤岡です。
[#46051] [ruby-trunk - Feature #6875][Open] Make test/unit default gem — "kou (Kouhei Sutou)" <kou@...>
19 messages
2012/08/15
[#46055] Fwd: 『RubyKaja』登録のお知らせ — SASADA Koichi <ko1@...>
ruby-dev 開発者からも誰か推すといいと思いますが,いかがでしょう.
10 messages
2012/08/16
[#46065] [ruby-trunk - Bug #6901][Assigned] SEGV with tail call optimization — "shugo (Shugo Maeda)" <redmine@...>
4 messages
2012/08/21
[#46081] [ruby-trunk - Feature #6936][Assigned] Forbid singleton class and instance variabls for float — "naruse (Yui NARUSE)" <naruse@...>
17 messages
2012/08/26
[#46082] Re: [ruby-trunk - Feature #6936][Assigned] Forbid singleton class and instance variabls for float
— SASADA Koichi <ko1@...>
2012/08/27
(2012/08/27 8:12), naruse (Yui NARUSE) wrote:
[#46086] Re: [ruby-trunk - Feature #6936][Assigned] Forbid singleton class and instance variabls for float
— "U.Nakamura" <usa@...>
2012/08/28
こんにちは、なかむら(う)です。
[#46087] Re: [ruby-trunk - Feature #6936][Assigned] Forbid singleton class and instance variabls for float
— Kenta Murata <muraken@...>
2012/08/28
むらたです。
[#46084] Re: [ruby-trunk - Feature #6936][Assigned] Forbid singleton class and instance variabls for float
— KOSAKI Motohiro <kosaki.motohiro@...>
2012/08/27
>> 後者の具体的手法はいくつかあると思いますが、即値は最初から frozen にしておくとかもありかなと思っています。
[#46288] [ruby-trunk - Feature #6936] Forbid singleton class and instance variabls for float
— "matz (Yukihiro Matsumoto)" <matz@...>
2012/10/26
[#46289] Re: [ruby-trunk - Feature #6936] Forbid singleton class and instance variabls for float
— SASADA Koichi <ko1@...>
2012/10/27
(2012/10/27 8:38), matz (Yukihiro Matsumoto) wrote:
[#46291] Re: [ruby-trunk - Feature #6936] Forbid singleton class and instance variabls for float
— SASADA Koichi <ko1@...>
2012/10/27
(2012/10/27 9:05), SASADA Koichi wrote:
[ruby-dev:46030] [ruby-trunk - Bug #595] Fiber ignores ensure clause
From:
"wanabe (_ wanabe)" <s.wanabe@...>
Date:
2012-08-05 04:05:32 UTC
List:
ruby-dev #46030
Issue #595 has been updated by wanabe (_ wanabe).
File ensure_fiber2.patch added
ワナベと申します。
(1) GC で mark と sweep の間に、mark されていない Fiber を対象に
(2) ruby_cleanup 中に、メインスレッドに所属するすべての Fiber を対象に
(3) 子スレッド終了時(vm->living_threads から外されるとき)、所属するすべての Fiber を対象に
の 3 つのタイミングで、throw/catch により ensure 節を実行するパッチを書きました。
[ruby-dev:41035] で遠藤さんがおっしゃっているような「yield 中の Fiber は GC しない」
という手法もやってみたのですが、test/ruby/test_fiber.rb がとても終わりそうにないことや
Fiber のマーク処理の重さや Fiber 自体のメモリ消費量などにより、断念しました。
そのため上記(1)のように、rb_gc_marked_p() という関数が必要になるなど強引な手段を使っています。
また、以下のようにして速度低下を計ってみました。
require "benchmark"
GC.start
Benchmark.bm(4) do |x|
tms = Benchmark::Tms.new
10.times do |i|
tms += x.report(" #{i}:") do
30000.times do
Fiber.new{Fiber.yield}.resume
end
end
end
puts " sum:#{tms}"
end
素の r36623 :2.980000 3.120000 6.100000 ( 6.107164)
パッチ適用後:3.580000 3.480000 7.060000 ( 7.061093)
と、無視できない程度に(約 14%)速度低下してしまいました。
とはいえこれ以上の方法は思いつかないのですが、いかがでしょうか。
----------------------------------------
Bug #595: Fiber ignores ensure clause
https://bugs.ruby-lang.org/issues/595#change-28655
Author: ko1 (Koichi Sasada)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 3.0
ruby -v: -
=begin
Ruby プロセス終了時,Fiber が ensure を無視します.
これは,前から直そうと思って手がついていなかった問題です.
10月末までには直そうと思います.結構複雑なので,後回しにしていましました.
fib = Fiber.new{
begin
Fiber.yield :ok
ensure
puts "should be print out"
end
}
p fib.resume
=end
--
http://bugs.ruby-lang.org/