2005-07-01から1ヶ月間の記事一覧

case文実装

完了。ちまちまといきますよ。

最適化

結構早くなった。callgrind -> kcachegrindの定番技。まだまだいけるだろうけど、まぁとりあえずこの辺りでいいや。 ubuntu% time ./sscm test/fib.scm 832040 ./sscm test/fib.scm 2.63s user 0.00s system 97% cpu 2.698 total ubuntu% time ./sscm test/l…

loop.scm

ubuntu% cat test/loop.scm (define loop (lambda (i l) (if (< i l) (loop (+ 1 i) l) l))) (print (loop 0 8000)) ubuntu% time ./sscm test/loop.scm 8000 ./sscm test/loop.scm 2.49s user 0.01s system 98% cpu 2.532 total ubuntu% time uim-sh -B < t…

amazon:Lisp In Small Pieces

#scheme@irc.freenode.netで、処理系実装に参考になる書籍は無いっすか?と聞いてみたらこれが返ってきたので早速注文。

勝手にベンチマーク (fib.scm編)

唐突にベンチマーク取ってみた。 ubuntu% cat test/fib.scm (define (fib n) (if (<= n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))) (print (fib 30)) ubuntu% time ./sscm test/fib.scm 832040 ./sscm test/fib.scm 4.08s user 0.00s system 99% cpu 4.114 tot…

かっこう

amazon:カッコウはコンピュータに卵を産むがブックオフで105円 * 2で売っていたので衝動買い&衝動読み。ほんとセキュリティに関して考えさせられる本です。GNU Emacsの脆弱性を突いていたというリアルな例が出て来て衝撃を受けた。

SigScheme開発録 (10)

force, delayをSICP的に 実装。手抜きです、はい。次はport回りを整理かなぁ。その後はマクロ。

map, for-each

実装完了。Cで書くのだるぃ。

2005年度 Lisp セミナー in Japan

こんなの有るのか。行こう。

SigScheme開発録 (9)

char, string系関数を実装。ただし、比較に関しては char=? と string=? しか実装していません。sigscheme/testディレクトリにchar.scmとstring.scmを作り、きちんとマルチバイト処理が出来てる事を試してみました。現在4500行。 char, string系関数 char?. …

目標

「打倒SIOD」。これで行こう。gimpに載ったりしたら楽しいなぁ。

C Scheme

基本的な関数もSchemeで書きたくなってしまいますね。でも、やっぱりCプログラマの方が多いので組込み関数は全部Cで書くというポリシーで行きます。

Real-time Specification for Java

ふむ。

休憩

apply実装。勉強の休憩にちまちまとコーディングするのって実は良いかもしれない。細かい部分をじわじわと埋められる。

英一飽きた

vector実装。vector?, make-vector, vector, vector-length, vector-ref, vector-set!, vector->list, list->vector, vector->fill!、完了。

構造体系変更

完了。すっきりすっきり。これで vector なんかも加えられるぞ。とりあえず今日はこの辺りで終了して英一の勉強しよう...

構造体系変更

sigschemetype.hを変更。現状だと影響が全域に及びそうなのでかなり時間がかかりそう...

テスト勉強

本日は相方とテスト勉強。気が重い...

アドバイスを頂きました。

Yamakenさんからアドバイスを頂きました。実に的を得た意見なので非常に参考になります。簡素化した状態で開発ってのはやっぱり経験値が高いなぁと思わされましたよ。しかしtagged pointerを使っている関係上、内部オブジェクトのアドレスの開始値が8の倍数…

Why Ruby Uses Mark-and-Sweep GC?

これも参考に。

GarbageCollectionInRealTimeGames

lua user's wikiより。なるほど、luaがそういう目的の言語だったか。ソースコード必読だな。ちなみにIncremental GCは現在開発版の5.1で実装中みたいっす。以下抜粋。 Incremental collectors: the problem of making the stock mark-and-sweep algorithm in…

HLA

なんかmuアンテナに流れていた。懐かしいなぁ。高二ぐらいの時にArt of Assembly ProgrammingのDOS版を四章まで読んだ。プログラミングを始めて大体一年ぐらいでCPU&ハードウェアがどう動いているかなんて全くしらなかったので、3. System Organizationに出…

alignされた領域の確保

8 byte alignedの場合は次の様にすればよいんじゃないかとどっかで見たのを思い出した。posix_memalignはなんだか怪しげなので... char *handler = (char*)malloc(sizeof(AnyStruct) * num + 7); char *ptr = (char*)((handler + 7) & ~7); ptrをごにょごにょ…

SigScheme開発録 (6) - 0.0.0公開 -

この辺りでとりあえず公開します。肉の日に出そうと思ってたんですけど、gcのバグが取れんかった。makeファイルもまだべた書きです。SIODとの違いとしては、tagged pointerを使っている点とR5RS互換(にしようとしている)点かな。後はincremental Mark&Sweep…