Entries from 2008-02-01 to 1 month
以前作ったひげぽん/会ってお話してみたい人リストがきっかけで rui さんとお会いすることができました。 rui さんはGaucheクックブックなどで知られる、Gauche/Scheme ハッカーなのですがやっぱりお話を色々聞いてすごく楽しかったし刺激になった。 型推論…
会社の同僚にすすめられてふわふわの泉を読んだ。 ジャンルは SF で、女子高生が「ふわふわ」というとても軽くて丈夫な物質を偶然作ってしまうところから始まります。 そこから話は会社を作るなど急展開し楽しいSF的要素を交えつつ、あっという間にラストを…
いろいろと細かい ToDo をこなす。 とりあえずバージョンをまるごと無視する 複数行の only などに対応 export の rename に対応 残るは level 対応(重そう) import したライブラリが import している場合のつじつまあわせ
はてな退職のお知らせ - d.aql この間飲んだのですが元気そうでなによりでした。 本当にお疲れさまでした! id:aqlとはよく2人で泣きながら(?)不可解なバグを追っていた思い出が。
map なのだけど特定の条件のときには結果のリストに含ませたくないというシチュエーション。 どう考えても filter-map の出番だ。←もっと早く思いつけよ。
やったことは pass1 においてライブラリの参照を解決すること pass2 はスルー pass3 では import をきっかけに ライブラリ body のコンパイル ライブラリのロードを実行 VM で使用している define 用の hash-table を多段にすること。 これで (library (hige…
過去に「今の状況は楽しくない。何か間違っている。」と何度か思ったことがある。 そんなとき楽しくなるであろう方向に舵を切る決断をするときにとても怖くなってしまうのはなぜなのだろう。 その怖さゆえに決断を先延ばしにすることがよくある。そして損を…
仕切り直し後の初回。簡単にたたき台を作りました。
R6RSを満たしている処理系で共通して使えるライブラリの配布が以前よりもやりやすくなると思うのだけど Perl の CPAN 的なものをやる計画はどこかにあるのかしら?
R6RSのライブラリのバージョン管理の仕組みは複雑過ぎではなかろうか。 必要な場面は多少あるかもしれないが、もっと小さい仕様でも良いよなあ。
Arcからの挑戦を受けて「Arcではこう書くけど他の言語ではどうなの?」というフォーラムの他の言語の投稿が面白い。
R6RSのライブラリの仕組みをどうするか? について考えた。 現時点での結論は以下の通り。 ライブラリの import/export はコンパイル時に行う。 実際の評価はマクロはコンパイル時、それ以外は実行時に必要時に行う。 評価のトリガーとなる命令をはさむ。 ま…
R6RSのライブラリの仕組みをどう実装するべきか。もやもやしている。 コンパイル時にすべて解決してしまうか?できるのか? それとも Gauche の module のように gref の中で module->imported の中を lookup するか? vm にカレントライブラリレジスタ見た…
Arc Forum | Arc2.tarからダウンロードできます。 実際に実行することも出来て僕の環境であれば mzscheme を apt でインストールしておいて arc を起動し (nsv) と入力。 % mzscheme -f as.scm Welcome to MzScheme version 360, Copyright (c) 2004-2006 PL…
土日はR6RSの7-8章の翻訳をしていた。 ライブラリとかトップレベルとか新しい概念があり英語だと頭に入らないのでまずは日本語に。 まだ一度も見直していないのでいろいろ揺れていますが Scheme/R6RS/翻訳/7.ライブラリ Scheme/R6RS/翻訳/8.トップレベルプロ…
monaos.org ドメインの有効期限が近かったので2年間更新した。
.riece/init に以下のように書く。 (setq riece-server-alist '(("freenode" :host "irc.freenode.net" :nickname "higepon" :coding utf-8)))
Gaucheコードリーディング項目洗い出しをしてみた。 Wiki に書いておいたのでご意見をお聞かせくださいませ> naoya_t さん、ココサブさん
道尾秀介の向日葵の咲かない夏を読んだ。 シャドウで見た道尾秀介の輝きがここにも。彼の作品ではミステリィにおける反則があったりするのだけども、本書は非常にバランスが良くて好き。 もうすこし道尾氏の本を読んでみよう。
はてな匿名ダイアリーの記事を読んでいて、この考えは自分の考えにかなり近いし内容も正しそうだと思うものがよくある。 興味からブックマークコメントを見にいくと9割方ものすごい勢いで否定・非難されていたりすることが多い。 僕は、ずれているのかもしれ…
R6RSの7、8章あたりをひたすら翻訳中。
named let を letrec に変換するようにした。今まではここには書けないような悲惨な方法で named let を実現していたのだがやっと排除できた。 これで約10%速くなった。 さて次は定数畳み込み。→一瞬で実装できてしまった。 $CONST な引数だけだったら事前に…
Firefox でとあるサイトのHTMLを読もうとする ViewSourceWith を会社のマシンに入れてないことに気づく 入れる gnuclient が動いていない apt-get remove gnuserve ソースから gnuserve をインストール INTERNET_DOMAIN_SOCKETS だと動かないので -D UNIX_DO…
会社に置いてあった日経サイエンス 2008年 03月号を読んだ。普段読むことのない種類の雑誌なのだが面白かった。 特に面白かったのが 極限宇宙をのぞくガンマ線宇宙望遠鏡GLAST 脳から宗教を考える の2つ。 前者は2008年以降新しい宇宙望遠鏡によるγ線の観測…
R6RSのトップレベルプログラミングとライブラリのあたりを熟読中。 syntactic abstraction とか訳しても意味が通じなそう。
以前から日記に書いていますがひらメソッドで展開している Gauche コードリーディングの方法を見直そうと思っています。 理由は あまりにシンボル、関数、マクロが多���ぎるため読み進めるスピードが遅い 進みが遅いためモチベーションも保てない など。 以下…
インライン展開できた。 インライン展開、不要変数削除、不要let 削除を重ねると結構コードが小さくなる。さてと次にやることは named let の最適化 定数の畳み込み あたり。
Scheme のインライン展開はローカル手続きには適用できるが、グローバルな手続きには適用しづらいという結論で良いのだろうか。 ローカル手続きであれば、呼び出される場所や set! されるかどうかなどの情報を簡単に解析できる。 一方でグローバルな手続きだ…
もうこんな時間か。 Gauche の pass2 の最適化ルーチンをほぼそのまま移植して embedded/jump の最適化を動かしているところ。 命令列を目視した限りでは動きそう。 いくつかインストラクションを追加して VM で動かしてみよう。 一発で動いた。これはなかな…
書いたコードは正しかったが pretty-printer が間違っていた。