Entries from 2008-02-01 to 1 month

rui さんに会ってきた

以前作ったひげぽん/会ってお話してみたい人リストがきっかけで rui さんとお会いすることができました。 rui さんはGaucheクックブックなどで知られる、Gauche/Scheme ハッカーなのですがやっぱりお話を色々聞いてすごく楽しかったし刺激になった。 型推論…

ふわふわの泉を読んだ

会社の同僚にすすめられてふわふわの泉を読んだ。 ジャンルは SF で、女子高生が「ふわふわ」というとても軽くて丈夫な物質を偶然作ってしまうところから始まります。 そこから話は会社を作るなど急展開し楽しいSF的要素を交えつつ、あっという間にラストを…

ライブラリ名前空間の実装その2 - Scheme VM を書く

いろいろと細かい ToDo をこなす。 とりあえずバージョンをまるごと無視する 複数行の only などに対応 export の rename に対応 残るは level 対応(重そう) import したライブラリが import している場合のつじつまあわせ

id:aql お疲れさまでした!

はてな退職のお知らせ - d.aql この間飲んだのですが元気そうでなによりでした。 本当にお疲れさまでした! id:aqlとはよく2人で泣きながら(?)不可解なバグを追っていた思い出が。

map なのだけど特定の条件のときには結果のリストに含ませたくない

map なのだけど特定の条件のときには結果のリストに含ませたくないというシチュエーション。 どう考えても filter-map の出番だ。←もっと早く思いつけよ。

ライブラリ名前空間の実装 - Scheme VM を書く

やったことは pass1 においてライブラリの参照を解決すること pass2 はスルー pass3 では import をきっかけに ライブラリ body のコンパイル ライブラリのロードを実行 VM で使用している define 用の hash-table を多段にすること。 これで (library (hige…

なぜ怖いのか?どうやったら克服できるのか?

過去に「今の状況は楽しくない。何か間違っている。」と何度か思ったことがある。 そんなとき楽しくなるであろう方向に舵を切る決断をするときにとても怖くなってしまうのはなぜなのだろう。 その怖さゆえに決断を先延ばしにすることがよくある。そして損を…

Reading Gauche

仕切り直し後の初回。簡単にたたき台を作りました。

R6RSのライブラリ配布サイト?

R6RSを満たしている処理系で共通して使えるライブラリの配布が以前よりもやりやすくなると思うのだけど Perl の CPAN 的なものをやる計画はどこかにあるのかしら?

R6RSのライブラリのバージョン管理の仕組みは複雑過ぎでは

R6RSのライブラリのバージョン管理の仕組みは複雑過ぎではなかろうか。 必要な場面は多少あるかもしれないが、もっと小さい仕様でも良いよなあ。

Arcからの挑戦の件

arc

Arcからの挑戦を受けて「Arcではこう書くけど他の言語ではどうなの?」というフォーラムの他の言語の投稿が面白い。

R6RSのライブラリの仕組みをどうするか? - Scheme VM を書く

R6RSのライブラリの仕組みをどうするか? について考えた。 現時点での結論は以下の通り。 ライブラリの import/export はコンパイル時に行う。 実際の評価はマクロはコンパイル時、それ以外は実行時に必要時に行う。 評価のトリガーとなる命令をはさむ。 ま…

ライブラリの仕組みをどうするか?

R6RSのライブラリの仕組みをどう実装するべきか。もやもやしている。 コンパイル時にすべて解決してしまうか?できるのか? それとも Gauche の module のように gref の中で module->imported の中を lookup するか? vm にカレントライブラリレジスタ見た…

Arcで書かれたポールグレアムの News.YC がオープンソース化

Arc Forum | Arc2.tarからダウンロードできます。 実際に実行することも出来て僕の環境であれば mzscheme を apt でインストールしておいて arc を起動し (nsv) と入力。 % mzscheme -f as.scm Welcome to MzScheme version 360, Copyright (c) 2004-2006 PL…

R6RS翻訳と伝統的なマクロの実装 - Scheme VM を書く

土日はR6RSの7-8章の翻訳をしていた。 ライブラリとかトップレベルとか新しい概念があり英語だと頭に入らないのでまずは日本語に。 まだ一度も見直していないのでいろいろ揺れていますが Scheme/R6RS/翻訳/7.ライブラリ Scheme/R6RS/翻訳/8.トップレベルプロ…

monaos.org 更新した

monaos.org ドメインの有効期限が近かったので2年間更新した。

Riece で utf-8

.riece/init に以下のように書く。 (setq riece-server-alist '(("freenode" :host "irc.freenode.net" :nickname "higepon" :coding utf-8)))

Gaucheコードリーディング項目洗い出し

Gaucheコードリーディング項目洗い出しをしてみた。 Wiki に書いておいたのでご意見をお聞かせくださいませ> naoya_t さん、ココサブさん

向日葵の咲かない夏を読んだ。

道尾秀介の向日葵の咲かない夏を読んだ。 シャドウで見た道尾秀介の輝きがここにも。彼の作品ではミステリィにおける反則があったりするのだけども、本書は非常にバランスが良くて好き。 もうすこし道尾氏の本を読んでみよう。

ずれ

はてな匿名ダイアリーの記事を読んでいて、この考えは自分の考えにかなり近いし内容も正しそうだと思うものがよくある。 興味からブックマークコメントを見にいくと9割方ものすごい勢いで否定・非難されていたりすることが多い。 僕は、ずれているのかもしれ…

R6RSの7、8章

R6RSの7、8章あたりをひたすら翻訳中。

named let と定数畳み込みを実装 - Scheme VM を書く

named let を letrec に変換するようにした。今まではここには書けないような悲惨な方法で named let を実現していたのだがやっと排除できた。 これで約10%速くなった。 さて次は定数畳み込み。→一瞬で実装できてしまった。 $CONST な引数だけだったら事前に…

Emacs22 + gnuclient + ViewSourceWith

Firefox でとあるサイトのHTMLを読もうとする ViewSourceWith を会社のマシンに入れてないことに気づく 入れる gnuclient が動いていない apt-get remove gnuserve ソースから gnuserve をインストール INTERNET_DOMAIN_SOCKETS だと動かないので -D UNIX_DO…

日経サイエンス2008年3月号を読んだ

会社に置いてあった日経サイエンス 2008年 03月号を読んだ。普段読むことのない種類の雑誌なのだが面白かった。 特に面白かったのが 極限宇宙をのぞくガンマ線宇宙望遠鏡GLAST 脳から宗教を考える の2つ。 前者は2008年以降新しい宇宙望遠鏡によるγ線の観測…

えいえいご

R6RSのトップレベルプログラミングとライブラリのあたりを熟読中。 syntactic abstraction とか訳しても意味が通じなそう。

Gauche コードリーディング仕切り直し検討中

以前から日記に書いていますがひらメソッドで展開している Gauche コードリーディングの方法を見直そうと思っています。 理由は あまりにシンボル、関数、マクロが多すぎるため読み進めるスピードが遅い 進みが遅いためモチベーションも保てない など。 以下…

インライン展開 - Scheme VM を書く

インライン展開できた。 インライン展開、不要変数削除、不要let 削除を重ねると結構コードが小さくなる。さてと次にやることは named let の最適化 定数の畳み込み あたり。

Schemeのインライン展開についての疑問

Scheme のインライン展開はローカル手続きには適用できるが、グローバルな手続きには適用しづらいという結論で良いのだろうか。 ローカル手続きであれば、呼び出される場所や set! されるかどうかなどの情報を簡単に解析できる。 一方でグローバルな手続きだ…

インライン展開再び - Scheme VM を書く

もうこんな時間か。 Gauche の pass2 の最適化ルーチンをほぼそのまま移植して embedded/jump の最適化を動かしているところ。 命令列を目視した限りでは動きそう。 いくつかインストラクションを追加して VM で動かしてみよう。 一発で動いた。これはなかな…

ありゃ

書いたコードは正しかったが pretty-printer が間違っていた。