Text
Page: 1
Ruby 考古学
消された機能編
Archaeology of Ruby:
Removed Features
Kazuhiro NISHIYAMA
RubyKaigi2014
2014/09/19
Page: 2
Self introduction
one of Ruby Committers
Mr. fix typo (by Chikanaga)
I use Ruby since 1.4
Page: 3
Agenda
リリースに⼊った後、消された
機能
Some features removed after release
開発版のみに⼊っていた機能
Some features only in development branch
Page: 4
Safe Level
is obsolete since
2.1.0
不完全な Sand Box
Safe Level 自体の削除の話も何
度かあった
Page: 5
Safe level
Feature #8468 Remove
$SAFE
Matz agreed at GitHub Tokyo
drinkup (on 2013)
tDiary, which is the only
application using $SAFE == 4,
also agreed
is a fail-safe feature to
detect bugs of applications
Page: 6
Safe Level
is obsolete since
2.1.0
raise ArgumentError
since 1.9.1
is deprecated since
2.1.0
its behavior is same as taint
Page: 7
from
security reason
same as does not
contain since 1.9.2
use instead
Page: 8
from to Encoding
(m17n)
#=> nil # warning:
variable $KCODE is no
longer effective
# warning: variable
$KCODE is no longer
effective; ignored
Page: 9
Regexp options
Regexp literal options
(remains) :
Page: 10
(ignore case)
ruby 1.8.7: warning:
modifying $= is deprecated
ruby 1.9.3: warning: variable
$= is no longer effective;
ignored
Page: 11
between 1.6.7 and 1.8.0
→
→
→
→
→
Page: 12
until 1.8
: をつけられる隠し機能の削除
Page: 13
(recommend)
(deprecated)
Ruby 本体のメソッド名は出来るだ
け三単現のsを付けない
Page: 14
Agenda
リリースに⼊った後、消された
機能
Some features removed after release
開発版のみに⼊っていた機能
Some features only in development branch
Page: 15
Symbol < String in
2006 (1.9.0-dev)
Symbol が String を継承してい
た時期があった
Symbol < Stringも⽌める。
caseとかでのバグをたくさん⽣
んでしまう
http://www.rubyist.net/~matz/20061107.html#p03
Page: 16
Symbol < String (cont.)
継承は⽌めても String に似た扱
いは⼊った。
Page: 17
between 1.8 and 1.9
cannot call private
methods
,
since 1.9.1
private メソッド呼び出し用途が多
く影響範囲が広いため元の挙動に
Page: 18
Real multi-value
(to̲splat)
1.9.x
(!= ) (!= )
svalue, avalue, mvalue
e.g.
Page: 19
Symbol.find in 2.2.0-dev
Symbol.find(str)
-> symbol or nil
Return the related symbol if the
symbol already exists.
Return nil if not.
revision 47543
Removed because of Symbol GC
If you still want this, request
again on Redmine.
Page: 20
statfs in 2.2.0-dev
and
https://bugs.ruby-lang.org/
issues/9772
for tests
Reject at
DevelopersMeeting20140517
Japan
「Matz: ⾊々込み⼊ってるので core には⼊れないで test 配下
へ. 欲しいということがあったら gem にしてください.」
Page: 21
Conclusion
Some features only in
development branch
Some features cannot
introduce because of
compatibility