際際滷

際際滷Share a Scribd company logo
Rationalを┐發Δ舛腓辰硲恷m晒してみた
般戮燭世 Tadashi Saito
Asakusa.rb
¢
恬Iのs雰
¢
^肇のLT畽
¢
恷m晒K阻瘁の撹惚
¢
とっても堀い
¢
まとめ
囮瞳
┐發Δ舛腓辰硲
¢
RubyKaigi 2015のLTで恷兜のk燕
般戮Rational(C)恷m晒のs雰
¢
2015定業Ruby Association廁撹署プロジェクトに魥
¢
k、CRuby云悶へのマ`ジを朕峺して恬I
¢
RubyKaigi 2015のLTで嶄gk燕
¢
なんとかギリギリ2016定挑のRuby 2.4に秘った
¢
mrknさん & vSコミッタ`峻さんのおかげ
¢
そして書晩のTalk
ふりかえってみる
¢
まずRubyKaigi 2015のスライドを┐兇辰り
畽
¢
LTを哈喘するのでスライドのスピ`ドが
貧がります
Rational
嗤尖方ライブ
ラリ
1
2
+
2
3
=?
Floatでは燕F
できない嗤
娼業、2M方
BigDecimalで
も燕Fできない
麗尖メモリは
嗤泯
Rational
1/2r + 2/3r
1/2r + 2/3r
#=> (7/6)
岷湖議な潤惚
Ruby 1.0か
ら贋壓
廣: rational.rb
圻恬宀&メンテナ`
書晩いらっしゃる墳Vさん
┫鵑な田返
Ruby 1.9で
Mみzみクラ
スに
Ruby 1.9.2で
はTimeの坪何
燕Fに聞喘
Ruby 2.1で
はリテラルが
秘1/2r
どんどん嶷勣
なクラスに
それほど堀く
ない
rb_funcall()
Cなのに
Rubyレベルのメ
ソッド柵び竃し
をしている
¢
卞峅スピ`ド?
¢
Cで謹Bをg廾する
のが寄笋世辰?
Rubyレベルのメ
ソッド柵び竃し
が贋壓していた
prof(1)でプ
ロファイルを
函ってみる
rb_funcall()
がたくさんの
rgをM
Cレイヤ`のみで
の殆岷な麻で崔
きQえたい
Ruby
Association 廁
撹署プロジェク
トに魥
http://www.ruby.or.jp/ja/news/20150803.html
Ruby
Association 廁
撹署プロジェク
トにk!!1
http://www.ruby.or.jp/ja/news/20151116.html
¢
2015-10-30 kY惚の巷燕
¢
2016-1-4 嶄g鷂
¢
2016-3-4 恷嶮烏御
¢
2015-10-30 kY惚の巷燕
○ HERE! #ragrant2015
¢
2016-1-4 嶄g鷂
¢
2016-3-4 恷嶮烏御
どのくらい堀く
なったか?
(恬I嶄)
Integer#gcd +
+
huge
rational
+
float
+
fixnum
+
bignum -
- huge
rational
- float
- fixnum
- bignum *
* huge
rational
* float
* fixnum
* bignum /
/ float
/ huge
rational
/ fixnum
/ bignum
0.000
0.500
1.000
1.500
2.000
2.500
3.000
3.500
4.000
f
a
s
t
e
r
恷寄で3蔚參貧
堀くなった!
Ruby 3x3!!!
畽おしまい
¢
ここまでがRubyKaigi 2015r泣での撹惚
¢
スライドのスピ`ドが鯛ちます
その瘁
¢
2016定3埖にRuby Association廁撹署プロジェ
クト恷嶮烏御を戻竃┰K阻
¢
バグを△靴弔BTSにissueを鞠h、弼?あり
つつマ`ジされる
¢
2016定クリスマスにRuby 2.4.0リリ`ス
¢
恬Iの撹惚は屡に峻さんの返圷に
恷K議には
¢
どこまで堀くなったか?
¢
リリ`スgみの2.3.3 と2.4.0で曳^
2.3.3 vs 2.4.0┗硲
蛍かること
¢
恷寄で3.6蔚念瘁の互堀晒
¢
返を秘れた何蛍畠悶の峠譲でも1.6蔚樋の
互堀晒
¢
60メソッド栽蛍けのレ譴埜瀚抻
¢
乾った何蛍でとてもWくなった侭はなかった
レ譴慮瀚抻の圭隈
¢
児云議にrb_funcall()を崔きQえただけ
¢
哈方を育う栽(Rational.+(Integer)など)、
仇祇にクラスの方だけ栽蛍け
C 梨れると軸SEGV
¢
クラスに鬉犬翠v方を岷に柵び竃し
C 駅勣なら屡贋v方をexport
なんで匯何だけ3蔚參貧も堀く?
¢
rb_funcall()の崔きQえに紗えて
¢
s蛍の指閲
¢
屡贋の嗤尖方v方を旋喘するため、(屁方)を
(屁方/1)という嗤尖方として怎し麻?哈き麻していた
¢
s蛍が辛嬬か? チェックが飴慝澆
¢
恷兜から徭薦で宥蛍して指閲
グラフその2
とても堀い(?)
¢
140蔚除く堀い(?)
¢
ところでベンチマ`クの圭隈
¢
1昼g畠薦で麻をRり卦す
¢
それを5指やる
¢
畠悶では5昼ちょっとかかる、はず
g佩の徨
とても堀い(?)
¢
なぜ´´
2.4.0のバグでした
¢
Bug #13084: String cast to Rational on 2.4.0p0 results in
SegFault with Mathn required
¢
g佩余嶄でSEGV´´ (String#to_r)
¢
?
¢
櫃鼎とn0kadaさんが岷してくださった
¢
鷂罎ら9rgでfix (!)
¢
mathnとRationalを聞う繁は2.4.1に豚棋
まとめ
¢
般戮Rational恷m晒はo並K阻
¢
2.4.0でマ`ジ
¢
60パタ`ンのレ譴如恷寄3蔚階?
峠譲1.6蔚堀の互堀晒
¢
うっかり秘ったバグは2.4.1で岷ります
¢ ?
Questions?

More Related Content

檎温岳庄看稼温鉛を(もうちょっと)恷癖晒してみた