ToDo:
http://d.hatena.ne.jp/good2nd/20080615/1213546471
http://www.nicovideo.jp/watch/sm3658688
(10:03)
なんかお客様が返した代替機に お客様の充電器がついてましたよ取りにおいで、 とかいう電話がきました。
この充電器というのはこうね、
つまりたぶん、
のどっちかかね。 ようわからんな。
なんにせよ三度手間で困る。
三度手間と言えば新生銀行も三度手間をやらかした。 二度手間生命体から三度手間生命体への ランクアップだかダウンだかが行われているんだと思う。
(22:58)
http://www.liarsoft.org/diary/20080615.html#20080615p2
僕もなんかアトピーが再発してやがって人事じゃない…
アトピーのつらいところは…
など、人にイマイチ理解してもらいがいたいところがあると思う。
まぁ僕とかしばらくしたら治るので全然いい方だと思うのであった。
(00:01)
プライオリチーを考える
すぐやろう
今日中にやろう
language shootout やりたいが
もうどっちもいいかという気がしてきた。 2,3時間で書いたコード適当に submit しても 60-70 位くらいは 取れてちょっとレート増えたりしそうな気もするが。
書いてみようと思ったけど 日本語 OCR は案外難しいことに気付いた。
まぁとりあえず後回し
(18:24)
今日は完全俺向け web サービスとかを作ったのだった。
あと break はできた、っていうか YARV が暴れないようにするのは rb_iter_break 呼ぶしかなさげで、 これ呼ぶんならむっちゃ簡単だった。
で return はちょっとめんだくさいができそう
(00:15)
よく考えるとどうやって スタックの unroll すればいいんだ… x86 はなんとでもなるが、 x86_64 はデフォではスタックフレーム作らんしな。
戻る先の DFP から スタックの深い方見ていって bp ぽいのがあればそれ採用〜とかでもとりあえずいいか、な?
まぁなんにせよ今日は web 系記念日
(09:03)
いいかげん見るかーと思って少し考えはじめた。
まず Yajit が呼んだ非 JIT Ruby/C 関数が例外投げた場合。 これはもう JIT 関数では例外受け取れません! とかでいい気がする。いいんだよそれで! この制約はたぶん、 Ruby で書いた Proc オブジェクトを JIT 関数から呼んだ場合の return とかが わけわからんことになる(たぶん落ちる?)を意味する…と思う。
まぁたぶんちゃんとやろうとすると、恐らくだけど、 前者は Ruby 側いじらんといけないと思うんだよね。 だからとりあえず忘れる。 後者は Proc object 動かす時は JIT してから呼ぶ、とかやればまぁなんとかならんでもない気もする。
いや rb_rescue とかでできたりするのかな… rb_rescue もまた rb_rescue2 とかあって萎えるな。 まぁいずれにせよめどいので忘れる。
でまぁとりあえず、その制限のもとでなら break とかはできるんじゃないかな。
あと raise があったら、とりあえず rb_raise 呼んでやるくらいは してあげてもいいと思う。 いかにも面倒そうな rescue だのなんだのはとりあえず忘れる方向で。
しかし未だに Ruby の例外がよくわかってない。 vm_throw の throw_state って色々難解だな…
http://rhg.rubyforge.org/svn/ja/chapter13.txt
(23:13)
http://d.hatena.ne.jp/hayamiz/20080607/1212837967
カレーのうまさは玉葱の量に正比例することが 数学的に証明されてる[要出典] ので全部入れればいいのに
(00:53)
> irb1.9 irb(main):001:0> Process.daemon i@u4 ~ > fg fg: no current job
あたりまえだけどこうなるんだな。
(01:15)
おそらく 10.5 では CoreFoundation に入ってるシンボルなんだろうけど、 10.4 では Foundation に入ってるみたいだ。
DYLD_FORCE_FLAT_NAMESPACE とかでうまくいかんかな、 と思ったけど bus error
そもそもうちで SDL ビルドすると CoreFoundation だの Foundation だのへの 明示的な参照はできないんだけどな。 Cocoa あたりから間接的に参照されそうなものなのだけど…
(03:22)
Ruby のこの定数の値変わってる…
ruby-1.9.0-0 とか -1 とか入ってるけど、 ヘッダの位置変えてなかったから それのせいでエラーが…
うーんインストールする場所は分けとくべきだったのか。
(05:52)
まぁ気持ち悪いけど、 x86_64-darwin とか正直知らんっすーという感じで とりあえず対応する命令増やして色んなコード動かしてみた方がいい気がするな。
(00:03)
http://anond.hatelabo.jp/20080603171436
http://anond.hatelabo.jp/20080604095249
http://d.hatena.ne.jp/companeet/
すばらしい文献をみつけた。 しかし実践は難しそうだ…
(00:19)
http://www.kernel.org/doc/man-pages/changelog.html#release_2.80
カスみたいな変更なのに名前乗ってるし。 丁寧なプロジェクト運営してるんだなぁ…
(01:50)
ary = [1,2] case 1 when *ary else end
へーこんな書き方できるのか… checkincludearray false が出るケースがよくわからんけどまぁ とりあえずいいとしよう…
(03:22)
本当に難しいのだろうか。 とりあえず
ってくらいでいいのではないのか。 なんかできる気がする。
(04:46)
http://www.atdot.net/~ko1/diary/200806.html#d7
みんな大好きな C だって Ruby にはできないようなことできるし許してあげてもいい気もする
#include <stdio.h> int main() { int i; goto i; for (i = 0; i < 3; i++) { break; i: printf("%d\n", i); } }
ついで
http://d.hatena.ne.jp/shinichiro_h/20050628#c1119962566
(13:43)
tree = '(Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip (LUpperLeg (LLowerLeg (LFoot)))))' tree.scan(/ \((\w+)/){puts"#$+ . #{a=$`.split*'';1while a.sub!(/\(\w+\)/,'');a[/\w+$/]}"}
書き捨てコードだったら本当にこんな感じに書きそうだと思う。
で、ゴルフしようとしてもあんまり縮まないんだよな… Perl みたいに再帰的な正規表現扱えると短くなりそうだ。
(14:04)
http://www.slideshare.net/hakobe/moose
via http://mono.kmc.gr.jp/~yhara/d/?date=20080601#p01
なんかスライド見た感じだと静的型チェック 本当にできるんだろうか…という感じだった。
そうそう Yajit 書いてて思うのは 型チェック欲しいねーという。
関数の引数だの返り値の型推論はまぁなくてもよくて、 引数に型が明示的に指定できると嬉しい。 無理矢理既存の Ruby を壊さずに オプショナルな型指定を入れるなら、
TYPE_fib = [Fixnum, [Fixnum]] def fib(a) a > 2 ? f(a-1) + f(a-2) end
とか定数につっこんどいたら 見てくれるとかそういうアドホックな感じでもいい気がするなあ。
fib で思い出したけど definemethod 実装してみたので ベンチしてみれるのだった。
> time ruby hoge.rb 1346269 ruby hoge.rb 2.13s user 0.28s system 99% cpu 2.423 total > time ruby1.9 hoge.rb 1346269 ruby1.9 hoge.rb 0.24s user 0.01s system 96% cpu 0.262 total > time ./rubyjit.rb hoge.rb 1346269 ./rubyjit.rb hoge.rb 0.36s user 0.00s system 97% cpu 0.368 total
なんか思ったより遅くないな。 まぁ既知の関数なら Ruby に戻らずに直接 call するような 最適化とかできると良いね。
(01:18)
tekezoさんが使ってると確認できたので Fx3 使いたいし移行することに。
だいぶいい感じな気がする。 基本的な使用感はかなり良い。 ただ Ctrl 系でたまに使うようなバインドは ヘタレのためになるべく残しておいてくれても 良いのになぁとは思った。 ^u の暴発とかをよくやる。
(00:13)
LIRっぽいのがうまいこと作れなかったので、 毎度スタックを通すんじゃなくて レジスタで渡したりとかできるように ダサい最適化をしょぼしょぼ加えてたんだけど、
> ./rubyjit.rb bench_loop.rb user system total real times: 0.920000 0.000000 0.920000 ( 0.920898) upto: 0.970000 0.000000 0.970000 ( 0.962793) while: 0.120000 0.000000 0.120000 ( 0.129037) for: 5.130000 0.480000 5.610000 ( 5.626509)
が while で 1.05 くらいにはなったものの、 ダサくてバグありそうだったので ロールバックした。
やっぱなんかLIRっぽいのを挟んだ方が うまくいきそうな気がするので、 頭ひねってどんな感じで作るか考えようかと思う。
まぁとりあえずその前に未実装の命令潰すか。
(01:08)
ふとしたことで半年くらい書いて 途中で放棄しちゃってるコードの存在を思いだした。
たしかだいたい動くところまでいったけど、 なにか一つ不具合があるのが気に入らなくて 書き直してる最中にめげたとかだったと思うんだけど、 これ何してるか読めない。
(02:01)
最近ほんとひどいな。
あと公平を期するってよく考えると難しい熟語だなぁと思いつつ 期すると、インフラにしか興味がない話は まぁ正直誤解しか招かなそうな話しかたしてる方にも 責任どう考えてもあるので少しは反省する…
そのへんkzk神の分析がただしいと思う。
http://twitter.com/kzk_mover/statuses/826432692
(22:47)
前 | 2024年 11月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ やぎ [アトピーは治るよ 住まいの環境をかえれば 絶対に治るよ ちょっとした改装が必要だけどね]