Entries from 2009-01-01 to 1 year

15 章「真珠の列」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの15章。 15.5.1 タグを無視すればよい。レイアウト情報の削除をする。 15.5.2 全ての単語を set/map に保持する。その分だけメモリが必要。 15.5.3 incword の中は探索に時間がかかっているのでそこまで速くならない。 15.5.4 略。 15.…

Erlang のプロセスメモリを追う その2

memsup メモリ周りなら id:voluntas さんに Rabbit MQ 見てみると良いとアドバイスを受け発見。 Erlang のメモリ使用量を監視して notify してくれる仕組み(supervisor)。 ユーザーが指定した上限か、物理メモリ上限に近づいたらデータを消していく仕組みに…

脱出失敗

ひげ太はバンボのベビーソファから脱出をはかるも失敗。

今日の復習

BUS domain specific language closure of operation j2ee goals

Erlang のプロセスメモリを追う

今作っている range search KVS が OOMKiller に kill されたのをきっかけに色々調べる。 結果として kill されたのはデバッグ用の dump 機能が悪さをしただけだったのだが、省メモリにこした事はないので少し深く突っ込んでみる。 前提 Erlang のメモリ関係…

今日の復習

BUS 2割 BD 必要? domain model SQL の実行

worker とか do_times とか

こんな感じかな。 do_times(0, _Fun, _Args) -> ok; do_times(N, Fun, Args) -> apply(Fun, Args), do_times(N - 1, Fun, Args). do_workers(N, Fun, Args) -> do_workers(N, N, Fun, Args). do_workers(Max, 0, _Fun, _Args) -> wait_workers(Max, done), o…

GDB スタブを書いてみよう その8

gdb

0x00002b87 in ?? () (gdb) bt #0 0x00002b87 in ?? () #1 0xa0001fd7 in main () (gdb) list 192 { 193 asm("int $3;"); 194 testSyscallMutex(); /home/taro/mona/test/monapi/mutex/mutex.cpp:193 { asm("int $3;"); a0001fd6: cc int3 /home/taro/mona/t…

GDB スタブを書いてみよう その7

gdb

fault0d ハンドラのエラーコードを見ると 0x1a だ。Intel のマニュアルに従って分解してみると IDT のエラーで IDT の Index = 3 だそうだ。 まずこのあたりのエラーをきちんと表示できるようにハンドラを改善。 結局は IDT に Gate Descriptor を設定すると…

今日の Mosh

JIT コンパイラが VM の中から呼べるようになった。 あと FFI call がネストしたときにスタックがずれるバグを修正。

今日の復習

definition completion

Erlang otp のビルドオプション

パフォーマンス系で下記以外につけておくべきオプションあるだろうか。 ./configure --enable-kernel-poll --enable-hipe --disable-jinterface --enable-threads --enable-smp-support

GDB スタブを書いてみよう その6

gdb

行番号が出ない件 推測:gdb に読ませた実行ファイルに行番号情報が付属していないのだろうか? 検証 objdump -Sl すると % /usr/bin/i586-mingw32msvc-objdump -lS test/monapi/mutex/TMUTEX.EXE | head -n 30 ... asm("int $3;"); a0001fd6: cc int3 /home…

今日の復習

マージソート specification コンセプトの輪郭 stand along classes

Erlang VM CPU 使いまくり

きっちり使ってもらえるのはありがたい。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 31877 taro 20 0 1695m 1.4g 2828 S 242 75.1 1:17.16 beam.smp

Ubuntu vnc 設定

flymake を使いたいので vnc 経由で開発する事にした。 rgb.txt が /usr/share/emacs/xxx あたりにあるので /etc/X11 にコピー。 /etc/xinetd.d/Xvnc service Xvnc { type = UNLISTED disable = no socket_type = stream protocol = tcp wait = no user = ro…

今日の復習

コンストラクションにおける設計チェック

GDB スタブを書いてみよう その5

スタブをほぼそのまま移植して動かしてみる。Mutex のテストコードの main.cpp で直接 debug 例外を上げる。 int main(int argc, char *argv[]) { asm("int $3;"); testSyscallMutex(); testClassMutex(); TEST_RESULTS(syscal_mutex); return 0; } するとな…

何か来た

(gdb) bt #0 0x00210140 in ?? () #1 0x0001273f in ?? () #2 0xa00219af in ?? () #3 0xa000104a in _fu0__monapi_memory_initialized () #4 0xa0001fc0 in testSyscallMutex() () #5 0xa0038424 in ?? ()

バナナ

ひげ太にバナナをやる。とうもろこしより好きみたい。1/2 本分も食べたよ。

GDB スタブを書いてみよう その4

いくつか既存の stub を見てみたがほとんどオリジナルの内容と同じだった。 そろそろ stub を移植したいところだが一応理解を整理するために処理の流れを書き出してみよう。 qemu 起動 -serial tcp で待ち受け gdb 起動 remote 接続 qemu 上で Mona が起動 M…

GDB スタブを書いてみよう その3

作業が無駄にならないようにいくつか下調べ。 シンボル クロスコンパイラで作った Mona 用アプリのシンボルを gdb が読めるか。 (gdb) symbol test/monapi/mutex/TMUTEX.EXE Reading symbols from /home/taro/monaos/mona/test/monapi/mutex/TMUTEX.EXE...do…

今日の復習

prameterize constructor 加算・減算

アルゴリズムイントロダクション 5 章「確率論的解析」

数学的基礎とデータ構造 (アルゴリズムイントロダクション)の 5章 斜め読み。

6ヶ月検診

74cm, 9200g 順調。 自分も健康診断の結果が返ってきてオールAだった。

io_lib:fread には改行周りにバグがある

io_lib:fread には改行周りにバグがあるのを発見してしまった。 22> io_lib:fread("~c\n", [65,10]). {ok,["A"],[]} この結果はどうみてもおかしい。 これか。 http://www.erlang.org/cgi-bin/ezmlm-cgi?3:msn:369

Emacs Tramp + flymake

Emacs の Tramp で編集しているファイルを flymake でチェックする。 Emacs 23 前提。 flymake.el の flymake-start-syntax-check-process にある start-process を start-file-process に置き換える。 flymake-xxx-init (xxx は言語名) の戻り値に使われる…

flymake error

;; verbose (setq flymake-log-level 3)

Erlang + flymake = 幸せ

d:id:kakipo:20081027:1225089604

JIT が動く小さなサンプル

(define (a) 3) (do ([i 0 (+ i 1)]) [(= i 20)] (test-equal 3 (a))) とかやると (a) の 10 回目の呼び出し時に JIT コンパイルされる。以降 JIT コンパイルされた手続きが呼ばれる。