ujihisa
自分のRuby力を測定
- レベル1
- リファレンスマニュアルなどを読みながら、動作する小規模のコードが書ける
- 無限ループにwhile (true)と書き、たまにdoもつけてエラーになる
- レベル2
- 普段はMRI 1.9.3を使用し、JRubyやRubiniusも適切なシーンで使い分ける
- C実装のソースを読んでよくわからない組み込みのメソッドの挙動を確認する
- レベル3
- 1日に3回はRubyにコミットする
- 修正済みの問題へのバグ報告を聞いたとき、どのリビジョンで修正されたか即座に思い出せる
手っ取り早く移行する3の方法
- 処理系標準変更
- RubyからCへ
- パッチ
-
1.9.2は確かに便利
-
ぬるま湯から出る
$ ruby -v ruby 1.9.3dev (2011-...
- rbxのfibはmriの5倍くらい速い
- ノー互換性
- パッチチャンス (後述)
r = Random.new
p r.rand
Random#rand
は...?
random.c
rb_define_method(rb_cRandom, "rand", random_rand, -1);
static VALUE random_rand(int argc, VALUE *argv, VALUE obj)
$ gem install impl
$ impl ~/git/ruby193 'Random#new'
...!
$ impl -c ~/git/ruby193 >> tags
あとはVimのTag検索機能で。
- 問題が見つからないはずがない
- testを書いてパッチも書いて挑戦
- よくわからなければこの部屋にいるznzさんあたりに聞く
Q?