〜2003年1月下旬〜
RubyやPerlではEOSと"EOS"が変数を展開するけど、 b-shell系ではEOSのときだけで、"EOS"と'EOS'は展開しないことに気づいた。 あ、\EOSもあるか。
それにしてもvimは展開される変数の色が変わるので、 実行しなくてもわかってしまう。まじですごい。
これもやばめなので更新。
更新。
更新。
大丈夫みたい。
市ケ谷駅に着いたのは12:40だったのに目的地に着いたのは14:00ってのは一体なぜ? 途中で日本テレビとか九段下とか法政大学とか東京理科大学とか全然関係ないものを見たような気がする。 だいいち理科大は飯田橋あたりにあったはずだ。 どこを歩いてるんだ、おれは。
入口には電話で呼び出せとあった。 目の前に電話ボックスはあるんだが、電話が撤去されてる。 中央大学の前まで行ってやっと抜殻ではないボックスを発見。10分ほどまた無駄に。
結局のところ「交番を右」「トヨタカローラ」だけではなかなかたどり着かないらしい。 駅のそばには交番は1つだけとは限らないし、 知らないところへは地図を持って行くべきだし、 そもそもその交番で道を尋くってことになぜ気づかない? 携帯電話も必需品らしい。公衆電話がこれほどまでにないとは思わなかった。
akrさんが言ってたsingletonの件が気になった。
% grep FL_USER0 *.[ch] re.c:#define REG_CASESTATE FL_USER0 ruby.h:#define FL_SINGLETON FL_USER0 ruby.h:#define FL_USER0 (1<<(FL_USHIFT+0))
どっちもFL_USER0だからまずそうな気もするんだけど、実際はちゃんと動いてる。 不思議だ。
localeをyesにすると、例によって
../../../include/bits/uClibc_locale.h:95:37: \ bits/uClibc_locale_data.h: No such file or directory
となってしまうのは 変わらない。
The biggest piece of news with this release, thanks to Manuel Novoa's continuing hard work, is that we now have fully standards compliant locale support (optional of course).
と0.9.17の目玉のはずなんだけど。
どこでdhcpcdを呼んでるかわからなかったんだけど、 man interfacesを読んでやっとifupが呼んでることがわかった。 dhclientとかpumpを使いたいときにどうやって指定するのかはよくわからないが。
地味に2.62がリリースされてる。
更新。Cで書き直されたらしい。
あまり重要ではない記事が気になって見に行ってみたら、見覚えのある名前だ。 あ、 ツッコミどころ満載の人か。なるほど。
Wineのole32.dllは
% ls -l /usr/local/lib/wine/ole32.dll.so
のようにlibがprefixされてないので、-lでリンクするようには作られてない。 まさかフルパスで指定して使うとも思えないし、 locate old32.dllしてもそれしか出てこないので、dlopen専用のようだ。
vineじゃなっくなったと思ったら、erubyのソースがそのまま表示されてる。 まあ、滅多に見られないし、そのまま保存しとこう。
ruby/extconf.rb.inでライブラリを追加するのに$LDFLAGSをいじっているのが原因。 正しくは$LOCAL_LIBSへ追加しないといけない。 というよりhave_library('mecab')を使うべきだ。mswin32で困るし。
have_library('stdc++') have_library('pthread') have_library('mecab') && create_makefile('MeCab')
String#indexがKarp-rabinアルゴリズムを使うようになった。 string.cに URLが出てるけど英語だ。日本語の解説をGoogleで探してみてると これがわかりやすい。ハッシュ法を文字列検索に応用したものらしい。
でも、実際に比較してみるとあまり変わらない。
% time ruby -ne 'print if $_.index "HOGE"' ruby-talk.0101 11.26s real 10.99s user 0.30s sys 100% cpu % time ./miniruby -ne 'print if $_.index "HOGE"' ruby-talk.0101 11.50s real 11.06s user 0.29s sys 98% cpu
やはり正規表現のほうが速い。
% time ruby -ne 'print if /HOGE/' ruby-talk.0101 6.35s real 6.00s user 0.43s sys 101% cpu
再現しませんが、asmをなんとかしないともう限界というか、いい潮時というか。