ぎょーむ日誌 2000-08-28
2000 年 08 月 28 日 (月)
- 0720 起床.
くもり.
ちと眠い.
- 朝飯・弁当作り.
朝飯.
シャワー・ひげそり.
- 0807 自宅発.
ゴミ捨て.
0825 東京モノレイル流通センター発.
外気温 28 ℃.
0845 研究所着.
- 昨晩わずらわされていた
C++ 製 Plugin 問題あっさり解けた.
ま,
答えの見当はついてたんだけど.
- 整理してみると
……
- 問題 :
C++ で書いた plugin
(プログラム実行時に呼び出す
小さな副プログラム・モジュール,
かな?)
を dlopen → dlsym
連続ワザのコンビネイションで
召喚しようとしても
(dlopen で 開けられる)
モジュール内で
関数の所在を見つけられない
(ので undefined symbol
なる実行時エラーが出る).
- 解決 :
C++ コンパイラー
(g++ など)
が関数名を勝手に変えちゃってるんで
ソースコードどおりの
関数名を詠唱してもダメ.
Unix 系ならば GNU なんかの nm
コマンドで
(コンパイルされた)
オブジェクトファイル内の
関数名をしらべて,
それを使って呼び出しを行う.
- ということで,
またしても C++ な呪いでありました.
上に書いているように
nm
というコマンドで
調べてみると,
例えば
string を返す
function( const string& )
function__FRCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0
などという
奇怪きわまりない改名ほどこされてしまっている.
もはやアキれはてました.
- 解決策としては,
この長ったらしい名前で dlsym するしかない,
そういうことみたいである.
- 腹だたしいのは,
このいやらしい関数の変態命名法は
コンパイラー依存だろう,
と推定されるところである.
つまりコンパイラー作者がそれぞれ
勝手にルールを決めてるらしい.
- 昨日のぎょーむ日誌読まれた
竹中さん
からメイルいただき,
コンパイラーに関数名が変えられてるから
見つけられないんでは,
という素早く的確なご指摘と,
「C++のコンパイラは,
関数のオーバーロードを実現するために,
ユーザが定義した関数名のうしろに
引数の型情報をあらわす文字列を足したりするので」
という親切な解説をいただく.
うーむ,
またまた勉強になりました.
- コンパイラー生成する腐れ関数名を人間が調べるのも
シャクなので,
<cstdlib> の system という
邪道な呪法というべき関数を用いて
nm を呼び出し,
これをもって
実行プログラムの内部で
この名前を調べさせるようにしてみる.
いまはまだ dlopen/dlsym などの
挙動を調べる短い試験コードの中で
ごちゃごちゃやってるんで,
いろいろな趣向を実験してみることができる.
まぁ,
このあたりは無理矢理 C++ でやらなくても
Perl その他と組み合わせる,
という手もあるんだが.
- 北大のメイルサーヴァーおかしいんじゃないか,
という問題.
どうも地環研の earth は
機能回復しているようにも見える.
むしろこっち側のメイルサーヴァーがヘンなのか ?
ともかく,
earth→地球フロンティアのメイルが届かないみたい.
とりあえず earth の .forward を切る.
こいつを置いとくと自動的に浜松町にトバされるんで.
- いろいろやってるうちに正午.
一休みして昼飯を食う.
ネット上をふらふらと徘徊する.
ふーむ,
しばらく前に JAVA バグ騒ぎを起こしてた
Netscape の Navigator (stand alone)
ver.4.75 がリリースされてるな.
どうしようかなあ.
インストールすべきか.
いま使ってるのは 4.73.
- 加工食品への異物
(たいてい虫けらの死骸)
混入なんかが頻繁にニュースに
取り上げられるようになった.
近ごろでは
ヤマザキパンだの
どこかのソーセイジだの.
- なんでも雪印が引き起こした食中毒事件以来,
消費者が企業の対消費者窓口だけでなく
保健所にも通報するようになってしまったんで,
これまではオモテざたにならずにすんでいた
食いもの工場の不潔さずさんさが
次々と暴露されている,
ということらしい.
いやー,
さすがはバケツでウラン,
の
お国がら,
と申しましょうか.
- 食品とは関係ないけど,
三菱自動車のリコール隠しと
埼玉県警の酔っ払い放置事件隠し,
という二つの隠蔽工作もまた追及されてる.
みんなみんな失態隠しが大好きなのである.
研究者だって
……
と来ると,
九大時代があれこれと思い出されますなあ.
うーん,
なぜだろう.
- さて,
どーにかこーにか
「走ってるプログラムに外部の
plugin モジュール読ませる」
という技法が使えるようになったんで,
何か役にたてたいんだけど
……
そもそもは小川モデリング関連で
使うために調べ始めたことなのである.
しかしいきなりあの複雑そうな系に
放りこむのもしんどそうなんで,
独立して動く最尤推定プログラム
mlfitting の尤度関数部の
plugin モジュール化を試してみよう.
- 今週金曜日,
広島テクノプラザ
なるところに招集の令状.
森林衰退の会議である.
どうなることやら.
- 汎用最尤推定プログラム
mlfitting の尤度関数の plugin
モジュール化できた.
オーヴァーヘッドが大きくなって
速度が遅くならないかと心配してたけど,
それほど影響はなさそう.
よしよし.
- しかし従来のコードの中に
plugin モジュールを開いて読み込む処理を
つっこむと,
かなり見てくれが汚らしくなる
(ということは実用上もよろしくない).
- やはり plugin モジュール関係のように,
ひとまとまりの面倒な処理は,
一つの独立したクラスとして書くのが
世のため人のため明日のためであろう,
というのが
今日の結論.
しかし腹も減ったので,
その仕事はまた今度.
撤退撤退.
- 1750 研究所発.
一文無し状態を脱するべく
銀行の ATM で金を下ろす.
本屋 dan にトラップ.
SoftwareDesign や LinuxJapan の今月号出てるな.
買おうかな.
でも高いしなあ.
結局,
買わずじまい.
1834 東京モノレイル流通センター発.
八百屋で買物.
安い.
ナス 5 個 80 円とか
キャベツ一個 50 円とか.
1915 帰宅.
- 2210 なんとなく夜の大森町駅商店街に買物にでかける.
すぐ隣の巨大交差点で
近ごろ深夜騒音源たる
道路工事やってる.
[深夜工事]
第一京浜 (国道 15 号)・
産業道路 (国道 131 号)
分岐の三叉路で何やら
しきりに路面をほじく
りかえしてる.
- 商店街の店はほとんど閉まっている
(当り前だ).
セヴンイレヴンで 2 ヵ月ぶんの
水道料金 3759 円を支払う.
うーん,
高い
……
と思ったんだけど,
ぎょーむ日誌によると二月に札幌で
支払ったときには 4000 円ちょっと.
まぁ,
同じくらいか.
- 深夜 0200 まで開店してる本屋
Tsutaya で新刊本や新着雑誌など
ぱらぱらと見る.
結局,
何も買わずに撤退.
何しにきたんだ.
- 0000 まで営業してます,
という気合いのスーパーマーケット
「マルエツ」で買物.
昨晩はお金が足りなくて
無念と恥辱の敗退を喫している.
今日こそは,
と 3000 円ほどあれこれと買う.
レシート見ると
……
コーヒー 398 円 (400 g),
食器洗剤 158 円,
ゴマ 138 円 (200 g),
怪しげな浄水蛇口フィルター 265 円,
だし煮干 548 円 (500 g),
見捨てられた一部黒ずんだ枝豆 40 円 (600 g),
オリーヴオイル 938 円 (900 g),
スパゲッティー 148 円 (500 g),
パンケイキの素 238 円 (900 g).
- 2330 帰宅して枝豆を茹でる.
以前のぎょーむ日誌を参照しつつ,
茹で時間は 2-3 分,
水洗いしない,
という経験則らしきものを適用.
600 g というと中鍋 7 割ぐらいの
かさがある.
鮮度よろしくない枝豆ではあるが,
昆虫の残骸混じる加工食品よりは
マシなおやつになりそう.
- 今日の食卓
- 朝 (0740):
昨晩の味噌汁の残り.
タマネギ・ピーマン・トウガラシの
炒めもの.
- 昼 (1220):
タマネギ・ピーマン・トウガラシの
炒めもの.
- 晩 (2010):
具だくさんの味噌汁の残り.
キャベツ半個を強引に炒めてみたものの
……
うーん,
たくさん残ってしまった.
明日の朝昼もキャベツだな.