Entries from 2007-08-01 to 1 month

マクロのマッチングを実装しよう - 2. On Lisp のマッチングコード

On Lispの「18.4 マッチング」に出てきたコードを理解し、Scheme で書き直す。 本丸の match は後回しにし、varsym? と binding を書く。 varsym? varsym? は簡単。 x がパターン変数かどうかを返す。あらかじめテストを書いておいた。 (define (varsym? x) …

マクロのマッチングを実装しよう - 1.スタート

背景 R5RSで定義されているマクロのマッチングを適当にC++で実装していたが、仕様に沿った実装にしたい。 マッチングとか適当にやると痛い目を見るので、落ち着いて困難を分割していこうと思う。 マクロ? マクロが使われている一例。 and をマクロで定義。 …

vectorの仕様が分からなくなった

Gaucheで以下のコードを試してみたのだけど vector の仕様が分からなくなってきた。 quote ありなしの違いは何だ? gosh> #(3 abc) #(3 abc) gosh> '#(3 abc) #(3 abc) gosh> (eval '#(3 abc) (scheme-report-environment 5)) #(3 abc) gosh> (eval #(3 abc)…

処理系書き換え峠を越える

Schemeインタプリタのデータ構造をきちんとS式にするってのを地味にやっていた。 先ほどテストが 600/1,000 ほど通るようになった。 ふぅ。もう少し落ち着いたらあれとあれをやりたい。

HUNTER×HUNTER 1年8ヶ月ぶりに連載再開

痛いニュース(ノ∀`):冨樫義弘『HUNTER×HUNTER』 1年8ヶ月ぶりに連載再開今週 HUNTER×HUNTER 載ってた?のが月曜の挨拶だったのに。 それはともかく楽しみ。

今日の変換ミス

親しみ深い → 親しみ部会

*scratch* バッファを作りたい

たまに間違って *scratch* バッファを kill してしまうのだけど再作成する方法ないかしら。 追記 id:echo_orzさんから教えていただいた↓が超便利。こりゃいいね。 *scratch*バッファを kill できないように

購入 BUBBLE Trip

心地よい。

assert-check-trueのマクロ

(define-macro assert-check-true (lambda (test-name . test) (if (null? test) #t `(if (assert-true ,test-name ,(car test)) (assert-check-true ,test-name ,@(cdr test)) (begin (display "test failed ") (print (quote ,(car test)))))))) 書いてみ…

コンパイラ―原理・技法・ツール

コンパイラ―原理・技法・ツール〈1〉 (Information & Computing)posted with amazlet on 07.08.28A. V. エイホ R. セシィ J. D. ウルマン 原田 賢一 サイエンス社 (1990/10)売り上げランキング: 21102Amazon.co.jp で詳細を見る ドラゴンブック読み終わった…

fread の戻り値について

Tremor の実験で発覚した fread の戻り値の問題。 Mona の fread はファイルが読めないときは -1 を返すが、手元の Linux の fread は 0 を返している。 こういうときは「man fread」 返り値 fread() と fwrite() は読み書きに成功した要素の個数を返す。エ…

Tremor on Mona のデバッグ

まずは Linux 上での動きを見る。 svn checkout svn co -r13614 http://svn.xiph.org/trunk/Tremor tremor-test Makefile TARGET = tremor-test SOURCES = \ main.c \ bitwise.c \ block.c \ codebook.c \ floor0.c \ floor1.c \ framing.c \ info.c \ mappi…

sf.net からのメールが遅延

sf.net からのメールが遅延しているな。 svn のコミットメールが来て diff 見たら自分だったという。

omo

omo氏の読書スピードが半端じゃない気がする。 オフラインモードが有効なんだろうな。

続Traditional Macro

Traditional Macroの実装に悩むふむ。なんとか実装できたかな。

千葉県マジで?!

ねたミシュラン 千葉県マジで?!うぉぃ。 千葉県出身だが、今の今までそれが普通だと思っていたよ。 5月生まれなので前の方だった。

続 Tremor移植

例の undefined reference to `__divdi3' のリンクエラーはとりあえず場当たり対処。 libgcc.a をリンクすればよろし。 /usr/lib/gcc/i586-mingw32msvc/3.4.5/libgcc.aTremor のサンプルプログラムのコンパイルも通った。 ov_open_callbacks(fp,&ovf,NULL,0,…

Traditional Macroの実装に悩む

Traditional Macro の実装をどうするか考えるために Gauche の define-macro の動きを調べていた。 Gauche のマニュアルによれば define-macro name procedure When a form (name arg ...) is seen by the compiler, it calls procedure with arg .... When …

バラの新芽

夜は知人夫婦とお食事会なので、それまではスタバでお勉強とコーディング。 2人席のソファ側に座る。 冷房が効きすぎていることが多いので店員に温度を上げてもらうことを繰りかえすうちに長袖の服を持参することを覚えた。 よく見まわせば長時間居座る人々…

Tremor移植できるかな?

Tremor は整数演算だけで Ogg Vorbis を decode してくれるライブラリ。 trunk/Tremor The source code to the integer-only Ogg Vorbis decode library named 'Tremor'.そもそも trunk だけで安定版リリースがないのが不安だ。 Tremor-r13614/vorbisfile.o:…

つながった

Reading SigSchemeを手伝ってくれていたココサブさんは、id:YasuyukiMiuraさんと同一人物で、あろはさんの後輩で、gccのコードを読んでいる。タイムリーな事に Q: いっかいshiroさんに伺いたいとおもってたんですが、プログラミングとくにコンパイラはとても…

SennaにScheme

Mさん経由で知りましたが Senna に Schemeが。 以前、中の人にお会いしたときに聞いていたのですがもう実装されてる! 問合せ言語にはSchemeライクなLISPの方言を使っています。(SennaQLと呼んでいます)

ポインタ

c

リニアアドレス決め打ちでとか良くやるのでポインタに対する感覚が麻痺しているな。 アドレス決め打ちで構造体のポインタにキャストして宝探し的な。 Hoge* p = (Hoge*)0xA0000000; いまだにぱっと頭に浮かぶのは32bitな旧世代というのも哀しい。 追記 こん…

ドラゴンブック2

ドラゴンブック2を読みはじめました。 1より内容が実戦的で面白い。

Wordで段落

Word初心者を卒業できるかどうかは、Wordの段落という概念を理解できるかどうかにかかっていると思っています。やばい挫折しそう(w 追記 第6章 Word入門 (7)文字の配置(インデント) ここの説明が分かりやすい。

id:shotaro_tsuji:20070820:1187593748 遂にきましたか。素晴らしい。 手元で試してみましたが確かにきれいに再生されます。 ずっと苦労して最後の詰めの部分にかなり悩まされ続けていましたが遂に山を越えましたね。 id:shotaro_tsujiさんの最後までやりき…

Re:X60の無線が切れやすい

X60の無線が切れやすい> 通りすがり 『SuperAGの圧縮をオフにしてみては?』とコメントを頂いたので、無線LANのアクセスポイントの設定を変えて様子を見ている。 BUFFALO Air Station WHR-G54S 項目「フレームバースト」を 「フレームバーストEx」 =>「使用…

X60の無線が切れやすい

ぷちぷちきれる。 何これ。はてのくんも同じような事いってたな。 解決法もとむ。

本屋に行ってきます

妻の中の人に「勉強のために読みたい本がたくさんあるので本屋につきあって」と言われてうれしかった。 好きなだけ買って読みまくれば良いと思う。

真夏の屋外プール

最近目黒区民プールに通っているのだけど。 真夏の屋外プールにいる人はみな本当に幸せそう。