24 Feb '13, 10am

読んでる→Rubyist Magazine - Ruby 2.0.0 の DTrace の紹介

以下のプログラムを t.rb というファイルとして保存します。 class Foo def hello puts :hello end end 5.times do foo = Foo.new foo.hello sleep 1 end ruby:::method-entry という probe には、 呼ばれたときにクラス名とメソッド名が渡されます。 以下のコードが書かれた x.d というファイルを作ります。 ruby$target:::method-entry { printf("%s#%s\n", copyinstr(arg0), copyinstr(arg1)); } そして以下のコマンドを実行します。 sudo dtrace -q -s x.d -c"ruby t.rb" 出力がたくさん表示されるはずですが、そのうち以下のような出力が始まります。 hello Foo#hello hello Foo#hello hello Foo#hello hello Foo#hello 今回の D プログラムでは、 arg0 にはクラス名、arg1 にはメソッド名が入っています。 Ruby の起動時にはたくさんのメソッドが実行されるので、 ファイル t.rb の結果に絞りましょう。 arg2 がファイル名なので、 以下のように D プログラムを変えてテストを足せばよいです。 ruby$target:::method-entry /copyinstr(arg2) == "t.rb"/ { printf("%s#%s\n", copyinstr(arg0), copyinstr(arg1)); } すると、メソッドが t.rb に含まれる時だけ probe が発火するようになります。 プログラムを再実行すると、以下のような出力だけが得られるはずです。 hello Foo#hello hello Foo#hello hello Foo#hello hello Foo#hello

Full article: http://jp.rubyist.net/magazine/?0041-200Special-dtrace

Tweets

Ruby 2.0.0

jp.rubyist.net 24 Feb '13, 9am

Rubyist Hotlinks 【第 31 回】 樽家昌也さん Rubyist へのインタビュー企画。今回はたるいさんにお話を伺いました。(難易度:ポケコン) Ruby 2.0.0 リリース特集 編集:ささだ 2013 年 2 月 24 日に...

Rubyist Magazine - Ruby 2.0.0 リリース特集

jp.rubyist.net 24 Feb '13, 9am

I've known Ruby since she was just 4 or 5 years old. Of course, I knew her parents, Smalltalk and Perl, and had a nodding ...

Rubyist Magazine - Ruby 2.0.0 のキーワード引数

jp.rubyist.net 24 Feb '13, 12pm

このメソッドは引数無しで呼び出すと、level: "ERROR", time: Time.now が渡されたのと同じように動きます。 log("Hello!") #=> Mon Feb 18 01:46:22 2013 [ERROR] Hell...

ruby2.0に対応させるときの注意点まとめ / “Rubyist Magazine - Ru...

jp.rubyist.net 24 Feb '13, 10am

Magic Comment を書いていないファイルの文字列リテラルのエンコーディング (default script encoding) が UTF-8 に変更されました。[#6679] Ruby 1.9 においては、default scrip...

“Rubyist Magazine - Ruby 2.0.0 の require”

“Rubyist Magazine - Ruby 2.0.0 の require”

jp.rubyist.net 24 Feb '13, 12pm

files=2000 begin files.times{|i| file = "req/file#{i}.rb" open(file,"wb"){} } rescue end 100.times{ $LOAD_PATH << "/" } #g...

Yay, #Ruby 2.0.0 is out! With lots of goodies.

ruby-lang.org 24 Feb '13, 6pm

The default encoding for ruby scripts is now UTF-8 [#6679]. Some people report that it affects existing programs, such as ...

Ruby 2.0

ruby-lang.org 24 Feb '13, 9am

The default encoding for ruby scripts is now UTF-8 [#6679]. Some people report that it affects existing programs, such as ...

"Ruby 2.0.0 is ready for practical use, and wil...

ruby-lang.org 24 Feb '13, 5pm

The default encoding for ruby scripts is now UTF-8 [#6679]. Some people report that it affects existing programs, such as ...

Ruby 2.0.0 MetaCasts Video Free This Week!

rubyflow.com 25 Feb '13, 3pm

Ruby 2.0.0 MetaCasts Video Free This Week! Posted by markbates on February 25, 2013 — 0 comments To celebrate the release ...

2.0.0 特集がおおいけど、咳フリークの人に「咳フリーク以外が読んで楽しめるのか?」と言わし...

jp.rubyist.net 24 Feb '13, 9am

class BDBError < RuntimeError def initialize(bdb) super(bdb.errmsg(bdb.ecode)) end end class BDB < TokyoCabinet::BDB def e...

「Ruby 2.0 に入るはずだった Refinements」Oh.../Rubyist Ma...

jp.rubyist.net 24 Feb '13, 10am

$ ruby -e 'module M; refine String do end; end' -e:1: warning: Refinements are experimental, and the behavior may change i...

Becoming a Rubyist

rubyflow.com 26 Feb '13, 1pm

Becoming a Rubyist Posted by bryckbost on February 26, 2013 — 0 comments Just like learning a new spoken language, learnin...

Today's Ruby Weekly is the most release heavy e...

rubyweekly.com 28 Feb '13, 2pm

Last Sunday marked the 20th anniversary of work commencing on Ruby way back in 1993 and it was celebrated in style with th...

Google Waveの記事 / “Rubyist Magazine - parse.y の歩...

jp.rubyist.net 23 Feb '13, 7am

static NODE* cond_gen(struct parser_params *parser, NODE *node, float maybe) { NODE *mcond; if (node == 0) return 0; if (m...