すみません、ちょっと明日というか今日は、日中はメールが届かなくなります(MLシステムも同じ)。ご迷惑おかけします。9時5時で断続的に、か。ううむ、どうしよう。
って、この日記も見えなくなるんだよな。どうしよ。メール見れなくなると死んでしまうような気がする。ううん。
http://journal.mycom.co.jp/articles/2007/05/30/disney/001.html そうだよな。継続的な監視はプロファイリングには重要だよな。
しかし、プロファイリングにもオーバヘッドがかかるんだよなぁ。そこでマルチコアですか?
Fiber カッコいいのかなぁ。callcc で全部オーバヘッドなくいければもっとかっこいいんだけどね。でも私は性能を取りたい気がする。
なんか、もう折れそう。
callcc や fiber の対応をしていて、スタックの自動伸長をまじめにやったほうがいいかなぁ、やれるかもしれないなぁ、と思う。どうしようかな。
明日は本郷だ、と思っていたら、駒場だったという罠。危ない。
先週から,朝8時の帰りは1時という生活が続いていて,できれば週末は,と思っていたら結局週末も同じような感じだった.
高橋さんじゃないので死んでしまう.ううん.
そして,日常でも謝ってばかりで,もうなんというか.
そして continuation のバグは取れない.なんなんだ,これは.
昨日,JRubyの中の人に聞いてみた.
Rubinius は Fiber 相当として Task というものがあるらしい.しかし,そのタスク切り替えが Task.current= というのは,ちょっとどうなのかなと思った.スイッチするだけならいいんだけど,値を渡すには不向きだよね.
やっと Fiber についてまとめられた(http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30827)。Coroutine という名前にするんなら、どんなAPIが適当なんだろうか。cocall なんてあるんだろうか。
こういうのに夢中になっていたら、むにゃむにゃ。本当にごめんなさい。
JRuby の人に、YARV より速いの? って聞いたら、知らないけど、いくつかのベンチマークではそうなんじゃね? と言ってた。そりゃそうだろうけどさ。
メイリオきれいだなぁ。
最初、「パフォーマンス優先」にしたせいで、クリアタイプが有効になっていなくて(でいいんだろうか)、とても汚く、Vistaってなんでこんなに(ry と思っていた。
不思議現象 on Vista.
svn+ssh を plink 経由で実行したい.で,cygwin(bash)から plink を行うと,pageant(ssh-agent 相当)が動いてるのに,なぜかパスフレーズを聞いてくる.なので,ssh+svn が動かない.
コマンドプロンプトからだと,パスフレーズは聞かれないので動いた.なんで?
cygwin 上で cmd /c で動かしてもパスフレーズを聞かれた.ということは,bash 経由だと,ということか? うーん.
verboseでメッセージを見ていると,pageant <-> plink 間の通信が出来ていないようだ.何が悪いんだろう.うううん.
コマンドプロンプトで、cygwin の ruyby を使って、 ruby -e 'p system("./plink -v ...")' とやってみても同様なので、cygwin 環境がなんかまずいような気がする。しかし、なんなんだ、これは。
再起動したら治った。なんだこれは。
なんか,callcc は無いのかという声に対応するのがめんどくなったのでてきとーに対応.stack_extend 相当に気づくのが遅くなって一日仕事になってしまった.
まぁ,きっとSEGVるんだが,結局誰も使わないから気づかないよな.
http://pc11.2ch.net/test/read.cgi/tech/1173036694/898-901
shiroさんはやばい.超やばい.前にも書いたけど,凄すぎる.
昔,kahua のミーティング中に(shiroさんはふつうに議論に参加している)なんかPCでかちゃかちゃやっていたので,聞いてみたらミーティングで喋っているのとは別のドキュメントを書いていたという.
Rubyist であんな芸当が出来る人は,見たことが無い.というか,他で見たことが無い.見てないだけかもしれないけど.
というわけで,shiroさんはガチに凄い人です.
青木さんの議事録再現率も驚異的だよな.家に帰ってからあれだけ起こすのは脅威だ.
おぉ、強気だぁ ;) 対応お疲れさまです!
JRubyのJIT(なぜcompileを省略するんだろう)って意味がわかんないのだけど,何を指してるんだろう.Olaの成果かな?
まぁ,調べろってことか.聞くのが早そう.
職業柄,最近先生と呼ばれることが多い.面倒なのでそのままにしているだけど,どんどん自分が馬鹿になっていく気がしてしょうがない.
http://www.rubyist.net/~matz/20070512.html#p06
つまり、「主流の言語(established languages)」には手を入れず、それらで記述されたタスクを組み合わせる「協調言語(coordination languages)」が主流になるのではないかという予測。
結局,こうなるんじゃないかと思っています.で,その解として,MVMをやりたいなーと思っていたり.
色々と進まないので,しょうがないので末尾呼び出し最適化を正式にサポートしてみた(ただし,デフォルトでは使えない.スタックレイアウトが変わる→今までのソフトウェアが動かなくなる可能性があるため).
require 'benchmark' def rec n rec n-1 if n > 0 end def cnt n n.times{ } end def wlp n i = 0 while i < n i = i.succ end end Benchmark::bm{|x| MAX = 10000000 x.report("rec"){ rec(MAX) } x.report("cnt"){ cnt(MAX) } x.report("wlp"){ wlp(MAX) } } #=> user system total real rec 1.000000 0.000000 1.000000 ( 1.006695) cnt 1.470000 0.000000 1.470000 ( 1.469967) wlp 0.330000 0.000000 0.330000 ( 0.329661)
なんというか,rb_yield() がやっぱり遅いんだよな.
http://pc11.2ch.net/test/read.cgi/tech/1173036694/716
おお,名指しされてる.凄い.
すみませんすみません.
ところで,JRubyが速いといっているのは,どのベンチマーク結果を指して言ってるんだろう.自分ではチェックして無いんだよね.
おっきなデータ処理なんかは,ライブラリの性能であって,VMの性能関係ないような気がするんだけど.メモリ管理はちょっと関係するかもしれないけど,YARVではあんまり変わらない.
aRuby 笑った.
http://pc11.2ch.net/test/read.cgi/tech/1173036694/764
model 2 です.細粒度ロックにするためのコストをちょっと想像して欲しい.
ちなみに
rec = lambda{|n| rec.call n-1 if n>0 } rec.call(10000)
こんなコードは動かないので,やっぱり関数型っぽく使うのは無理っぽい(SEGVするのは,今の実装の弱さか...).
これを,きちんと末尾呼び出しの最適化で,何回やっても大丈夫ー,ということにするにはどうすればいいのか.うーん.色々と絡まっているので難しい.うーーん.
勉強会じゃなくて読書会だよー.多分.
あれ? Proc#call ってマシンスタック要らない? 本当? setjmp あるから要りそうなんだけどな.
ううむ,Proc#call での braek ハンドリングなどがようわからん.真面目に考えれば,Proc#call が随分速くなるかも.ならないかも.
バックトレースが消えてしまうんだなあ.
Proc.new{ puts caller(0) }.call #=> t.rb:4 t.rb:3:in `call' t.rb:3
これの,`call' の部分が無くなる.これは許容範囲かなぁ.backtrace のため性能を犠牲にするのもなんとも.
Ruby レベルから Ruby レベルの Proc を呼ぶに限り,(スタックトレースを気にしなければ)できる,のかな.
SEGVしなければよい、というのなら、スタックが溢れそうになった時にスタックの内容をヒープに避難させるとか。スタックコピー式call/ccが既にあればそんなに手間じゃないかと。(call/ccってなくなるんだっけ?)
その前の「(マシン)スタックが溢れそうになったとき」を検地するポータブルな方法がなさげです.
完全にポータブルに書くのは難しそうだけど、保守的GCでやっている程度のヒューリスティクスで何とかなりそうな気もしないでもない。ってまてよ。YARVでrec.call実行してもマシンスタック消費するの?
そうなんですよー.
ああ、もしかして既存のC extensionとの互換性のためかな。
バックトレースからメソッド名がいくつか落ちるくらい許容範囲じゃないかな
おー,許しが出た!
http://d.hatena.ne.jp/Artisan/20070515/1179250669
実は私は松本さんに命令されてYARVを作っていた! どうでもいいけど,日本語がよくわからなかった.開発停止を命じ,なら意味が通るんだけど.
-------------------------------------------------------------------- 第8回仮想化実装技術勉強会 日時: 2007年5月22日 (火) 18:00 〜 場所: 秋葉原ダイビル13F 東大秋葉原拠点 大会議室 (http://www.i.u-tokyo.ac.jp/map/index.shtml#aki) 題目: 「リッチクライアント技術を用いた仮想マシンモニタの提案と実装」 講演者: 高橋一志(金沢工業大学 工学部 情報工学科) 講演概要: 近年,リッチクライアント技術を用いたWeb アプリケーションが普及してい る.しかし,従来より開発されてきた膨大なソフトウェア資産はブラウザ上でそ のまま利用することはできないため再実装が必須であり,また必要なソフトウェ アすべてを再実装するのは現実的ではない. そこで本研究ではVMM とAjax を組み合わせることで,Web ブラウザ上で既存 ソフトウェアを動作させるシステムを提案する.本システムでは既存のIA-32 アーキテクチャ向けのソフトウェアをブラウザ上からそのまま利用できるため, 再実装のコストは不要である.本システムを実現するにあたり,Linux Kernel 2.8.18 上にてデバイスドライバとして動作するVMM の開発を行った.勉強会で は,主に本システムの概要およびこのVMM の実装方法について説明する. -------------------------------------------------------------------- http://www.atdot.net/~ko1/vimpl/
こんなのをやります.
hatena の ruby キーワードに spam がよくひっかかるようになった気がする.
この数日でMS Wordの使い方をちょびっとだけ学習した.
就職してからはじめて電車を乗り過ごしてしまった.気づいたら,新宿で降りるはずが中野についてた.面倒になったので,立川経由でぐるっとまわって帰ったが,定期が効かないので(京王線まわりなら無料の駅だが)500円以上かかった気がする,が,SUICAなのでいくらかかったのか良くわからなかった.
vimplの飲み会でErlangの話が出て,CPU使いまくりな富豪的プログラミング環境になるのか,という話をしていた.
RubyはメモリやCPU時間なんかは頓着しないんだけど,今後はそれがCPU数になる,と.さて,どうなんだろうね.通信時間ってのもあるからな.
shiroさん来日してたのかー.いいなぁ.やっぱり行けばよかったなぁ(shiroさんがskype出演というのが,行かなかった理由のひとつだった).
ううむ,JRubyそんなに速くなってたのか.すごいなぁ.
vimpl webpage http://www.atdot.net/~ko1/vimpl/ 興味がある人はご参加ください.
ちょこっと jruby で fib ってみたんだけど,1.8 CRuby よりも速いってことは無さそうだけどなぁ.気のせいか(fib が遅いから jruby は遅い,というつもりは無い).
Javaバイトコードにコンパイルしたjrubyプログラムと比較してるんじゃないですかね?>1.8 CRubyよりも速い
たぶんみずしまさんのいう通りだと思います.jrubycする必要があるかと.
オフィシャルな情報として「私がSkype出演」という話が流れたことは一度も無かったのだけれど、勘違いしてた人は実は多いのかなあ。
去年のLLで出演&shiroさんはハワイ→Skype出演という連想?
オフィシャルなアナウンスにskype出演と書いてあったような.
ぱっと思い浮かんだのは,次のようなひねりのないもの.
(1..100).each{|e| print s = "Fizz" if e % 3 == 0 print s = "Buzz" if e % 5 == 0 print "#{s ? '' : e} " }
その後,ゴルフしてみたんだけど,ダメダメ.やっぱ俺頭悪い.
スレッドセーフなメソッドキャッシュ,ってなんか前提が全然違うけど.インラインメソッドキャッシュは流行らないのかな.うーん.
ちなみに,YARV/Parallelのグローバルメソッドキャッシュはこんな感じ.
たんぽぽ,じゃなくてオキザリスという花だそうです.
参考(このサイトのワンポイントの変遷):http://www.atdot.net/~ko1/css/base.css
GaucheNight 行きたかったなぁ.
私も行きたかったです。途中でSkypeの調子が悪くなって、ぜんぜん参加できませんでした。
すいません。参加してきますた。まつもとさんのSkypeはぜんぜん調子出ませんでしたねー。黒田さんとのやり取りが…
すいません。これに懲りて今後Skype出演は断るようにします(泣
あ、でも、娘さんの声がマイクに拾われて会場に流れたときは(会場が)和んだような。
あ、流れてたのか。はずかしい。
めがねを変えたんだけど,めまいがするくらい,変な感覚.慣れるんだろうか,これ.それとも,何かが根本的に間違っているんだろうか.
いつのまにか RubyConf の話が.今年は東海岸か.もう喋ること,ないんだよなぁ.見るだけにしとくかなぁ(お金でるかなぁ).
たんぽぽ、でかくなった?
2部の最後で誰かが死んでしまう.あとちょっとなんだけどなぁ.
しかし,アレです.休日を休日として楽しめない.やることが沢山ありそうな気がして.いや,あるからダメなんだけど.
今年のくらやみ祭は始まる前(4/29)と終わった後(5/5の23時ごろ)に行ってみた.終わった後は,やっぱり物悲しいような気がするけれど,祭の熱気はまだ残っていた.
gauche night はチケット取れなかったからなぁ.
早速5月病ですよ.
http://www.atdot.net/~ko1/vimpl/
ウェブページを作ってみた.
週末の2/3を(イベント以外で)外に出たのは,とても久しぶりじゃないだろうか.
Array#choice は find_all の別名かと思った.
Japan.internet.com Webビジネス - 民間刑務所で Ruby によるソフトウェア開発者を養成、アウトソーシング業務を
なんか凄いな。
というか、民間刑務所、というものを知らなかった。
普通に見えてるなあ