Entries from 2008-11-01 to 1 month

今日の復習

WEwLC Sensing & Separation 10割 Realtime GPU パイプライン 7割 WEwLC モンスターメソッド 10割 WEwLC Adapt Parameter 10割 パタヘネ 性能の定義 5割

最適化調査

Gauche や Ypsilon のコードを読み。最適化し忘れている部分をリストにして Wiki にまとめた。 意外と多くてびっくり。「最適化はほどほどにして先に進もう」と進んできてそのことを忘れていたようだ。 ちなみに Gauche 最適化のほどんどは pass2 で行われる…

ペンがない

ペンがない。さっきまで使っていたのに。どこにも見あたらない。そんな馬鹿な。 ↓で使用している英語問題集にはさまって本棚にしまわれていた。

今日の英語

原因・結果問題 2問中1問正解。10分/制限時間20分 トピックセンテンスの選定に失敗。正解に曖昧さがあるように思えてならない つなぎの装置問題 20問中20問正解。13.5分/制限時間30分 繰り返しに注目する問題 7問中8問正解。7分/制限時間8分

pass2/$local-assign をデバッグ中

やり残した最適化の1つを ON にしたらおかしくなった。 (display "GO\n") (define path 3) (let ((add (lambda (s) (set! path s)))) (add #f) (add #f)) s が free variables として認識されないようなバグがある。どうも pass2 で lambda を inline 展開す…

psyntax で and を if に展開せずバックエンドに渡す方法

1. (and (core-macro . and)) を builder-script の psyntax-system-macros に追加。 (and (macro . and)) を削除。 2. builder.ss に追加 (define-syntax build-and (syntax-rules () ((_ ae exp*) `(and . ,exp*)))) export に build-and を追加。3. expan…

今日の復習

WEwLC Test Harness でクラスをインスタンス化できない 10割 WEwLC Parameterize Constructor 10割 WEwLC コード変更したいがどんなテスト書けばよい? 10割 パタヘネ 性能の定義 2割 Realtime rendering GPU パイプライン 0割

Affine Transform

3d

Real-Time Renderingの 4章 のTransform に突入。 ついに念願のアフィン変換が出てきた。以前から id:nik9 先生が何度も IRC で「アフィン変換」とつぶやくのを見てきた。その当時は全く意味が分からなかったが、こういう事だったのか。 せっかく自分が Mosh…

Outputz Eclipse Plugin

id:Yoshioriさんによる、Outputz Eclipse Pluginが公開されています。ありがとうございます。 Eclipse は使っている人が多そうですね。

Aziz

comp.lang.scheme を読んでいると、時々 Aziz という言い回しが出てくる。 As is のことだと思っていたが、人のあだ名だった

qprof

qprof で VM のインストラクションレベルでプロファイルを眺める。速くできそうなところはない。 速くするには プログラムの命令数を減らす→コンパイラにおける最適化 allocationを減らす→コンパイラにおける最適化、できるだけ静的にオブジェクトを埋め込む…

あれ?

書いた日記が消えた様な気がする。

今日の復習

全て10割。 WEwLC 7章 変更が永遠に終わらない Pull up Features Extract and override getter 速読におけるパラグラフ ぱたへね メモリクリアコード比較 配列 vs ポインタ

3. The Graphics Processing Unit - Real-Time Rendering

Real-Time Renderingの 3章 The Graphics Processing Unit。 マインドマップから再構成したまとめ GPU のパイプライン Vertex Shader(プログラマブル) Geometry Shader(プログラマブル) Clipping(設定) Scan Mapping(固定) Triangle Setup(固定) T…

Direct threaded と 1ワードに命令とオペランドをつめ込む件

よく考えたら、Direct threaded と 1ワードに命令とオペランドをつめ込む方法は相容れないのか。 「Directo threaded」と「Threaded + 1ワードに命令とオペランドをつめ込む」はどちらが速いのかなあ。 branch を作って試してみるか微妙なところ。それなりに…

Peephole Optimization 実装完了

Peephole Optimization 実装完了。 jump の destination が jump のときに destination を書き換える test(分岐)の false 時の jump 先が test か jump のときに destination を書き換える 昨日作ったベンチマークは結果変わらず。 だが実際にいろいろなコ…

Peephole optimization 検討中

jump 先が jump なら jump 先変える最適化だけが、Peephole optimization だと思っていたが違うみたい。 Peephole optimization - Wikipedia, the free encyclopedia ふむむ。実際に jump 先のケースがどれくらいあるのかを簡単にチェックできるようなコード…

autoreconf -ifv がうまくいかない

automake, autoconf, libtool を最新にしたらうまく動いた。 しかしココサブさんのところで悪影響が出るかも。

strict aliasing

strict aliasing 。個人的にタイムリー。doubleの0が +0.0 なのか -0.0 なのかを判別するのに uint64_t とかに cast したら怒られた。unionで回避。

今日の復習

WEwLC 25 Extract Override call 10割 WEwLC 18 テストコード邪魔 10割 パタヘネ DLLのロード 10割 速読におけるパラグラフとは 2割 パタヘネ メモリクリアの比較 ポインタと配列 0割

速度面で改善したいこと

Mosh の速度面で改善したいことを挙げる。さくっと立ち上がる事を目標に。 起動速度。もっさり起動するのはだめ。 中身が (import (rnrs)) だけの test.scm を実行したときの速度 この中には以下のものが含まれる VM 初期化 コンパイラのロード 基本ライブラ…

Outputz ファイルシステム登場

Gauche-FUSEでOutputzファイルシステム - Gemmaの日記。 これはすごい><。

ギターの練習

特殊スリーフィンガーにも慣れてきた。YouTubeで教則ビデオを見つけた。運指の部分が参考になる。

今日の復習

パタヘネ アドレッシング 10割 Database SQLの実行 10割 WEwLC クラスのメソッドテストできない 10割 WEwLC 僕のアプリはAPI呼んでいるだけ 10割 WEwLC クラス大きすぎ 10割

パタヘネの翻訳者えらい

パタヘネ下巻。最初の章で頻繁に付録Bに言及するのでCD-ROMに収められた付録Bの PDF を取り出した。見てみたら70ページあまりあるのだが全て日本語に翻訳されてる。 本文と違いCD-ROMの付録は読まれる確率はかなり低いはずなのに本気で全て訳してあり感心し…

今日の英語

時系列メインアイディア把握問題 3問中3問正解。10分/制限時間30分 比較・対比メインアイディア把握問題 4問中4問正解。13分/制限時間40分 原因・結果問題 4問中4問正解。3分/制限時間12分 制限時間がとても緩いように思える。結果として自分の現時点の実力…

1章 Overview Of Database Systems - Database Management Systems

Database Management Systems の 1章 Overview Of Database Systems 。 マインドマップから再構成したまとめ 抽象化レベル External Conceptual Physical データ独立 トランザクション ロック Shared lock Exclusive lock ログ Write Ahead Log (WAL) Page -…

Database Management Systems を読む

注文していた Database Management Systems が届いた。M&Mコンビおすすめの本。洋書でかつ1000ページあるので効率よくため計画を立てよう。 まず序文を読み アプリケーションアプローチ システムや実装アプローチ の2つの読み方があることが判明。自分は後…

Tiny CLOS を追加

Mosh のライブラリに Tiny CLOS を追加しました。 現時点では実用的な速度では動かないので注意。以下のような短いスクリプトでも実行に 500msec ほどかかる。コンパイラ速度改善のためのベンチマークとして使えそう。 (import (rnrs) (clos user) (mosh str…

マクロのシリアライズ機能は延期

psyntax にはR6RSライブラリをプリコンパイルしてシリアライズし、後からロードする機能がある。この機能はプログラムの高速起動に役立つのだが、マクロのシリアライズには Record のシリアライズが必要。この実装が面倒で複雑になるので今回のリリースには…