「YARV」を含むブログ

ruby-trunk-changes r35756 - r35758 nagachikanagachika 2012-05-22

今日は ISeq の内部構造のリファクタリングがありました。 ko1:r35756 2012-05-22 17:31:38 +0900 rb_iseq_t (YARV の命令列を表現する構造体)のファイルパス、行番号などを表現するメンバを rb_location_t という構造体にまとめるリファクタリングをしています。また basename というメンバを追加して、 name にはメソッド名などが...

Reit VM 読み tociyukitociyuki 2012-04-23

...ブジェクト・スペースにフレーム・インスタンスを作ってダイナミック・リンクするのですが、Reit VM はスタックは一本で、スタック・ベースを移動していきます。ここは ruby-1.8.7 以前と同じ。YARV はどうなっていたのでしたっけ?コルーチン (ファイバ・ジェネレータ) のかけらはまったくなし。デバッガ用の trace フック・ポイントはないようです。GC は、Lua VM と同じく...

軽量Rubyの状況まとめ machautmachaut 2012-04-08

4/28追記:まだ正式ではないけど公開されたよ! https://github.com/mruby/mruby神よ 未だ生まれぬ神よ 御身への想い押さえがたきに 我が身は今やはりさけぬ 古橋秀之「ブライトライツ・ホーリーランド」 現在保持してるアイディアは、(1)mruby+libuv=node.mrb, (2)numpy,scipyのRuby版、科学技術分野でPython,R,Excelに挑戦。...

ruby-trunk-changes r34535 - r34560 nagachikanagachika 2012-02-11

今日は Zlib::Inflate のユーザ辞書の利用についての修正/機能追加と defined? で例外の発生するケースの修正などがありました。 marcandre:r34535 2012-02-11 02:37:28 +0900 Array#select! の rdoc のサンプルコードで new_ary or nil を返すという記述になっていたので self(ary) または nil を返...

Nodeで動かして完結編 takeshinodatakeshinoda 2012-02-11

終わる終わる詐欺ではありません。アクエリアスと体当たり爆沈して終了です。 Haskell vs F# ↑のエントリを見て、↓の2つのエントリを書いた。今日はその完結編。 HaskellとF#の解読の練習とちょっとした疑問でRubyに移植してみた Cに書き直して満足して終了 元エントリの中の人とゆかいな仲間達の間では道具選びの結論が出て、既にアルゴリズム改良にいそしんでいます。が、その裏で、未だにワ...

HaskellとF#の解読の練習とちょっとした疑問でRubyに移植してみた takeshinodatakeshinoda 2012-02-07

Haskell vs F# ↑の記事とそのトラックバック先の記事では関数型言語が1秒未満の世界で競ってる。なんだか凄い。 でも、これ、そのままRubyで書き直すとどの位になるんだろう。せめてHaskellの3,4倍くらい遅い感じで動くと嬉しいな。勉強にもなるし♪と思って書き直して動かしてみたら桁が違ってあわわとなったメモ。甘ちゃんでごめんなさい。 追記など 他のRuby実装について追記しました。 ...

Mac に RVM で Ruby 1.9.2 と Rails 3.2.1 をインストールした inouetakuyainouetakuya 2012-02-05

...処理速度に差はないようです。Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた:bookmark「Ruby 1.9は1.8より平均5倍速い」、YARV笹田氏 − @IT:bookmark とはいっても、前述の Rails の参考書によると、Rails 4.0 では Ruby 1.8.7 はサポートされないそうです。また、scaffol...

ruby-trunk-changes r34132 - r34140 nagachikanagachika 2011-12-27

今日はキーワード引数の実装が追加されました。仕様はまだ正式に決定したわけではなくて叩き台ということなのでどんなものかチェックしてみてください。キーワード引数についての簡単な解説も書きました。 shirosaki:r34132 2011-12-26 22:49:31 +0900 mswin 版の IO#read で読み込みサイズを指定した時に、一時的にバイナリモードに変更して読み込みし、そのために読...

ruby-trunk-changes r34016 - r34032 nagachikanagachika 2011-12-13

今日は Proc への引数の処理の不具合修正、Ripper のマジックコメント処理の修正、WEBrick の一部のステータスでの接続を Keep-Alive にする変更、複数Thread で同じファイルを require する時のレースコンディション修正、NameError 例外の文字列化の不具合修正、メソッドチェーンをつなげた時の行番号が正確になるようにする修正など、たくさんありました。 shu...

ruby-trunk-changes r33912 - r33923 nagachikanagachika 2011-12-01

MinGW でのビルドエラーの修正や Proc#arity の不具合修正などがありました。 kosaki:r33912 2011-12-01 07:17:48 +0900 configure で sys/prctl.h というヘッダの有無をチェックして、Linux で prctl(2) というシステムコールを呼んでタイマースレッドのプロセス名を "ruby-timer-thr"...

再び MagLev と Matz Ruby (Ruby1.8)、YARV(Ruby1.9)を戦わせてみる sumimsumim 2011-11-07

MagLev 1.0.0 リリース記念。 MagLev is a fast, stable, 64-bit open source implementation of the Ruby programming language and libraries built on top of VMware’s GemStone/S 3.1 Virtual Machine. The MagLev VM ...

Proc#call vs. yield nagachikanagachika 2011-11-05

ご存知の通り Ruby では仮引数の最後に '&' を前置した「ブロック引数」を宣言することで、メソッドに渡されるブロックをProcオブジェクトとして受け取ることができます。つまりメソッドに渡されたブロックを呼ぶ方法には2通りあります。 def m1 yield :m1 end def m2(&block) block.call(:m2) end m1{|a| p ...

ruby-trunk-changes r33546 - r33551 nagachikanagachika 2011-10-29

...2011-10-29 09:05:11 +0900 True64 が except、try、leave、finally というマクロを定義いしているために compile.c のコンパイルに失敗する(YARV の instruction とぶつかってる?)ため thread_pthread.h でこれらを #undef するようにしています。 svn:r33547 2011-10-29 ...

ruby-trunk-changes r33225 - r33237 nagachikanagachika 2011-09-09

.../yarvarch.ja のエンコーディングを UTF-8 に変更しています。 yarvarch.(en|ja) って何だろう……と grep してみると tool/instruction.rb で YARV のドキュメントを生成するために読んでいるようですね。 nobu:r33231 2011-09-09 10:22:06 +0900 rb_thread_select() で error ...

関数型言語Sapphire MatthewMatthew 2011-09-08

...Rubyの場合、他のVMでRuby処理系が開発されることが「流行」したが、純粋にRubyのVMで他の言語が動くようにはされてこなかった。私が気づいてないだけであるのかもしれないが。Ruby VM / YARV の取り込みが最近になってから、Ruby VM / YARV が単独で存在していない(?)というのもあろう。様々な理由はあるのだろうが、速度とか最新の機能はさておき、Ruby VM / ...

ruby-trunk-changes r33010 - r33013 nagachikanagachika 2011-08-20

...on.h の日付更新。 ktsj:r33013 2011-08-20 13:26:20 +0900 RubyVM::InstructionSequence.disasm で Proc オブジェクトを YARV の命令列にして文字列でダンプする処理で rb_iseq_t* 型で受けるべきところ VALUE の変数で受けてしまって値を壊していたのを修正しています。いつのまに……

セキュリティ&プログラミングキャンプ2011に参加した Glass_sagaGlass_saga 2011-08-15

...sdb.so(各エンコーディング間のトランスコーダ)のrequire である。 preludeのRubyコードはprelude.cにCの文字列として埋めこまれていて、rubyは起動時に毎回このコードをYARVの命令列にコンパイルして実行している。 preludeの内容は一旦ビルドしてしまえば変わらないので、前もって命令列にコンパイルしておいて(precompile)、インタプリタの起動時には...

ruby-trunk-changes r32666 - r32672 nagachikanagachika 2011-07-26

...いたテスト用のデータファイルを追加しています。 mame:r32669 2011-07-25 23:29:28 +0900 rb_method_entry_t というメソッドの情報を保持する構造体は YARV の control frame stack から参照されるので thread をマークする時に mark されて通常のオブジェクトとは別に free list のような構造で管理されて...

JRubyの性能 thiuchidathiuchida 2011-07-25

...は標準の Ruby リファレンス実装よりも遅い。 例えば、Rails 処理をインタプリタモードで行うと Ruby 1.8 のリファレンス実装に比べて 50% から 70% 遅い。 Ruby 1.9 (YARV)ベンチマークを Java 6 で使ってみると、JRuby は Ruby の4倍の遅さである(立ち上げ時間を含む)。 JITモード JITモードは JRuby 1.1 から利用可能である...

RubyKaigi 2011 終了 ku-ma-meku-ma-me 2011-07-18

参加してました。コミッタ特権でタダ飯を食らえるのも残念ながら最後です。 今まではマジタダ飯にならないように何かしら発表することを心がけてたんですが、今回はネタ準備できず、ついに聞くだけ。"1.8 and 1.9" でちょびっとだけ壇上出たけど、その分弁当もらってしまったし。申し訳ない。なのでせめて見た発表ごとの一言感想を書きました。最後に。 そして Ruby とかなり関係ない ...