観察日記 2010-02-12

BigDecimal

精度の話題が続く。JavaBigDecimalスケールが有効数字と違うという話など。その後精度を気にしない場合の話や10進の話になって発散。結局、ユースケースがわからないとなんともいえないよねといういつものところに落ち着く。

Early return optimizations

http://code.google.com/p/rubyenterpriseedition/issues/detail?id=32&colspec=ID%20Type%20Status%20Priority%20Milestone%20Summary
{hermit} Issue 32 - rubyenterpriseedition - Patch: Early return optimizations ( Interpreter
level ) - Project Hosting on Google Code [text/html; charset=UTF-8]
rb_special_const_pはコンパイル時に静的に展開できるので、rb_gc_markをマクロにしてrb_special_const_pを外に出すと、
そゆうオブジェクトばっかつかうようなfib tak taraiあたりは速くなるよ
という話だと思われる。

better_caller

http://github.com/RISCfuture/better_caller ううむ。
{hermit_} RISCfuture's better_caller at master - GitHub [text/html; charset=utf-8]
外に出してないデータ構造はどうすんのかと思ったらヘッダファイルががっつりコピペされてきていた
無理に外部ライブラリとして作らないで core にパッチ送ればいいのに、ということもないのかな
反対してるひといたっけ
黒魔術だから意図的に使いにくくしてあるとかかな
bindingがとれるのは危険にも思われる。
$SAFEで保護しているはずのスレッドの中からこれ使って外のbinding取得できちゃったときにどうするのとか。
binding もついてくるのかあ
worse_caller
$SAFE なところでは evil_caller の呼び出しを禁止かな
禁止と言ったって取りたいから取ってるんでしょうきっと。
こういう拡張ライブラリを動かないようにするのはムズい。
coreに入れたらbindingとれなくなるなら、きっとcoreに入れるモチベーションがなくなると思われる。
ということなら勝手にやるのは正しいな
公開していないデータ構造を積極的に変えて攻撃したい
AOTをもしcoreにマージするなら絶賛変わりまくるところは含まれている。
仮にヘッダファイルをコピペされたとしてもアクセスされないようなデータ構造を作るにはどうすればいいか?
ポインタを二重にして二段目が指すアドレスを定期的に切り替えるとか?
あるいはメモリ領域自体がワンタイムパスワードで暗号化されているとか

better かどうかはともかく、世の中には面白いことをする人がいますね

ruby -x

-xって、使って得する事なんか有るんですか。
http://doc.okkez.net/191/view/spec/rubycmd
{hermit_} Rubyの起動 [text/html; charset=euc-jp]
-Sに参考例が。
まあちなみにこれがよく使われるのはshよりも.bat

POSIX べったりな Ruby にも、事実上 Windows 用の機構がいくつかあるというお話。

Hello, Ruby!

hello world も書けない初心者が書くメールじゃねーな
ていうか、hello, worldとかPerlとコード同じやん
もう perlも忘れた
じゃあ、C言語と同じ
驚愕したことに、以下がとおった ruby -e "printf 'hello world\n'"
これであなたもRuby入門者です

Ruby はエントリポイントを loop と書くだけ…とかいうのはちょっときびしいですかね http://shinh.skr.jp/t/hello_ruby.rb
すげー、rubyで実行できおった
感動した!

see also Hello ruby