トップ «前の日記(2009-03-05) 最新 次の日記(2009-03-08)» 編集

Route 477



2009-03-06

[scheme] (Petite) Chez Schemeを動かしてみよう

Chez Schemeはscheme.com(!)で配布されている、商用/フリーのSchemeインタプリタである。

余談だが、「Chez」は「シェ」と読む。フランス産なので、末尾のzは読まない。「○○の家で」といった意味の前置詞らしい

メインプログラマは3imp.pdfのKent Dyvbig(ディビッグ)である。「プログラミング言語Scheme」の英語版も、同ドメインで公開されている。

Chez Schemeは商用なので、フリー版のPetite Chez Schemeをダウンロードしよう。 沢山あって迷うが、pcsv7.4-i3osx.tar.gz でいいはず。OS 10.4とか書いてるけど、大丈夫かな。

解凍したら、custom/ReadMe(変わったファイル名だ)に従ってインストールを行う。

./configure --installprefix=/Users/yhara/bin/scheme/chez/
sudo make install

homeに入れてるのに、sudo付けないとなんか怒られる。

終わったら、環境変数を定義するらしい。おい、めんどくさいぞ。

例の通りやってもうまく動かなかったので、適当にシェルスクリプトを書いた。

~/bin/chez-scheme:

SCHEMEHEAPDIRS="/Users/yhara/bin/scheme/chez/lib/csv7.4/i3osx" /Users/yhara/bin/scheme/chez/bin/petite

-hも-helpも--helpも効かないが、^Hには対応している。印象+1。

Petite専用のリファレンスはないが、きっとChez Schemeのドキュメントを見ればいいはず。

[softs] Dropboxを始めてみませんか

容量アフィリエイトと聞いて!

以下のリンクからDropboxに登録すると、僕とあなたに250MBのディスク領域がボーナスとして加算されるらしいです。まだDropboxに 登録していない人はぜひ。

Dropboxは、一言で言うと「全自動オンラインバックアップソフト」です。 Windows/Mac/Linuxに対応していて、それぞれのOS用の専用クライアントを入れると、 ディスク内の特定ディレクトリがDropboxのサーバに同期されるようになります。

同期はCPUが空いたときに随時行われるので、バックアップについて何も意識する必要がありません。まさに全自動。 また、各ファイルは更新時に上書きされるのではなく、Subversionのように各バージョンが保存されるため、間違った編集をしてしまっても安心。

それって容量とか大丈夫なの?と思われそうですが、僕は昨年の秋から使ってて、2GB中の4分の1(500MB)しかまだ使っていないようです (Dropboxに置いてるのはソースコード関連なので、テキストが主です)。足りなくなったら、適当に古いファイルを消せばいいかな、と思っていたり。

あと複数台のマシンでデータを共有したり、別のユーザとデータを共有したりもできるそうです(僕は使ってないですが)。

まあ、とりあえず、登録して使ってみるといいとおもうよ…!

余談

似たようなものとして、ZumoDriveというサービスもあります。 Dropboxがシンクロするファイルを全てローカルにも置いておくのに対し、ZumoDriveは基本的にサーバ側にしかデータを置かず、 ローカルではファイルの一覧だけが見えていて、使いたくなったときにシームレスにダウンロードされるようです(自前でファイルシステムを書いてるんだと思う)。 「大量のデータを」「多数のマシンで」共有したい場合は、ZumoDriveもいいかも知れませんね。

[ruby] 「gemのインストールを10倍高速化する方法」

from http://buddingrubyist.com/2009/02/14/how-to-speed-up-gem-installs-10x/

~/.gemrcの末尾に

gem: --no-ri --no-rdoc

という行を追加すると、riやrdocのリファレンスがインストールされないので速いよ!とのこと。

コメント欄見ると「rdocはともかくriは要るだろjk」とか書いてあって面白い。

[scheme] Ikarus Schemeを動かしてみよう(2)

前回のあらすじ:コンパイルは通ったしすげー速いけどSRFIの一部がロードエラー

毒を食らわば皿まで、ということでMLで聞いてみた。

> Ikarusのバージョンいくつ?古いの使ってるだろ?(意訳)

いや、確かに1年前のやつ使ってたけれども、それ最新のリリース版だから…!

さっさと0.0.4リリースしろよ(あと完成度に比べてバージョン番号が小さすぎるだろjk)と思いつつ(とても親切だったのでそんなことは言わない)、trunkをダウンロード。

教わったとおりにconfigure (port install libffiが必要だった)。

./configure --prefix=/Users/yhara/bin/scheme/ikarus --enable-libffi CFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib

あとはmake, make installでおk。やったーIkarus 0.0.4-rc1+できたよー

→SRFI動いた!きた!これで勝つる!

[scheme] Larcenyを動かしてみよう

LarcenyはSchemeのコンパイラで、もともとGCと最適化コンパイラの研究のために作られたが、現在はR5RS/ERR5RS/R6RSに対応しているとのこと。

IA32かSPARC用のネイティブコードを生成するLarceny、C言語のコードを生成する(ゆえに多くの環境で動く) Petit Larceny、 .NETの中間言語を生成する Common Larcenyの3バージョンがあるらしい。

とりあえず、一番速そうなLarcenyを試す。Mac用にビルド済みのパッケージがあったので これをダウンロード。

(続く?)