* Menu
* 2009-04-05 :
clispもバージョンアップしておこうと思ったけれど、ビルドに失敗。
これってコンパイルできないというか、gccがエラーを出してるのかな?
ちょっと心配なエラーメッセージだ。妙にレスポンスが悪かったからその辺りが関係しているのだろうか。
FFIを有効にする方法とかちゃんと調べてもう一度チャレンジしよう。
(ReadMore...)
gcc: Internal error: Killed: 9 (program cc1) Please submit a full bug report. See <URL:http://gcc.gnu.org/bugs.html> for instructions. gmake: *** [io.o] Error 1
これってコンパイルできないというか、gccがエラーを出してるのかな?
ちょっと心配なエラーメッセージだ。妙にレスポンスが悪かったからその辺りが関係しているのだろうか。
FFIを有効にする方法とかちゃんと調べてもう一度チャレンジしよう。
(ReadMore...)
* 2008-11-17 :
- CLOCC の f2cl パッケージに BLAS と LAPACK があるのを見つけたので、試してみた。
- 結果: 動かなかった。
- sbcl の場合、FORTRANのソース内で変数名がTのところの、変数の型が違うとエラーが出る。
- でも、FORTRANのソースからトランスレートされたlispのソース内では「t$」になっていて、変数がTの所は見当たらず。(dlamach.f, dlamach.lisp)
- clisp の場合、ちょっと手を入れてロードまで成功。
- テストを動かしてみると何故か zero division error。
- よく分からないので放置。
* memo : 暫定まとめ
自分が置いているCL系の情報にアクセスしやすいよう、もう一つ上の階層にページを作る予定なのだけれど、とりあえず列挙。
* SLIME勉強会
- いろいろと便利な機能を教えてもらいました。
- 気に入ったのは M-x slime-scratch や M-x slime-selector。
- コンパイル主体の開発スタイルも、なるほどと思いました。xyzzyでのやり方に引きずられていたんだなと。
- あとsbclを主体にしないともったいないなと、clispでは使えない機能がいくつかありました。
- 少なくともclispのarglistの件はどうにかしたいな。要調査ということで。
- ビデオを見つつ復習。
- SLIME Quick Reference Card を知ったので、自分用を作ってみようかと。
- SLIME以外の話が半分くらい? colorize は試してみようと思います。
- http://cadr.g.hatena.ne.jp/g000001/20080427
- http://d.hatena.ne.jp/tsz/20080426
- http://cadr.g.hatena.ne.jp/mokehehe/20080426
* 2008-04-17 :
- 最近の ruby-dev の複素数の話が面白い。どう転ぶのか。
- ちなみに Common Lisp の定義は、と思って確認→12.1.5 Complex Computations
- 実部と虚部の型は同一にされるんだな、勘違いしていた。(ということはclispの動作間違ってるっぽい)
- 正準化があるのは有理数と同じなんだけど、虚部が有理数のときだけなんだな、これも勘違いしていた。
- ちなみに xyzzy の複素数の扱いも Common Lisp の仕様を満たしていないはず。
* 2008-03-09 :
- elisp を書く気はさらさらないので (requre 'cl) には拘らないです。
- 具体例として、現在の .emacs はこんな感じです。
- session.el
- tails-history.el
- キーバインドを覚えていないのですが、M-x の履歴で何とかしています。
* 2008-03-05 :
- マクロ展開が起こるのは評価時 or コンパイル時という理解でした。
- xyzzy の動作はまさしくこれですよね。
- sbcl はインタプリタがないので定義と同時にコンパイルされて、納得の結果。
- ecl はよく知らない。
- clisp の結果は自分にとってはちょっと不思議。
- 気になったので CLtL2 を確認してみたら、8章の最初のページにありました。
More generally, an implementation of Common Lisp has great latitude in deciding exactly when to expand macro calls within a program. For example, it is acceptable for the defun special form to expand all macro calls within its body at the time the defun form is executed and record the fully expanded body as the body of the function being defined.で、例えば defun での関数定義時にマクロを展開することもOKと書いてありました。
* memo : asdf を使う
さくらのサーバにインストールした clisp で asdf を使うための一連の作業をメモ。
clisp には asdf が付属していないのでソースを取得する。
ついでにコンパイルしておく。
ここからしばらく clisp での作業。
$HOME/local/lisp/ を lisp ファイル置き場にすることにしたので、ここをロードパスに追加する。
asdf.lisp をロード。
asdf:*central-registry* にパスを追加。$HOME/local/lisp/systems/ にした。
ここに *.asd ファイルへのシンボリックリンクを置くようにする。
この状態でGUESSを使えるようにする。
ソースをダウンロードして、展開、シンボリックリンクを張る。
clisp でロード。初回はコンパイルした上でロードしてくれる。
clisp での作業は初期化ファイルにでも書いておく。clispの場合は $HOME/.clisprc 辺り。
clisp には asdf が付属していないのでソースを取得する。
$ cd $HOME/local/lisp $ wget "http://cclan.cvs.sourceforge.net/*checkout*/cclan/asdf/asdf.lisp" $ clisp -c asdf.lisp
ついでにコンパイルしておく。
ここからしばらく clisp での作業。
$HOME/local/lisp/ を lisp ファイル置き場にすることにしたので、ここをロードパスに追加する。
[1]> (push (merge-pathnames "local/lisp/" (user-homedir-pathname)) custom:*load-paths*) (#P"/home/raido/local/lisp/" #P"./" "~/lisp/**/")
asdf.lisp をロード。
[2]> (load '#:asdf) ;; Loading file /home/raido/local/lisp/asdf.fas ... ;; Loaded file /home/raido/local/lisp/asdf.fas T
asdf:*central-registry* にパスを追加。$HOME/local/lisp/systems/ にした。
ここに *.asd ファイルへのシンボリックリンクを置くようにする。
[3]> (push (merge-pathnames "local/lisp/systems/" (user-homedir-pathname)) asdf:*central-registry*) (#P"/home/raido/local/lisp/systems/" *DEFAULT-PATHNAME-DEFAULTS*)
この状態でGUESSを使えるようにする。
ソースをダウンロードして、展開、シンボリックリンクを張る。
$ cd $HOME/local/src/lisp $ wget http://lispuser.net/files/guess.tar.gz $ tar xf guess.tar.gz $ cd ../../lisp/systems/ $ ln -s $HOME/local/src/lisp/guess_0.1.0/guess.asd .
clisp でロード。初回はコンパイルした上でロードしてくれる。
[4]> (asdf:oos 'asdf:load-op :guess) ; loading system definition from /home/raido/local/lisp/systems/guess.asd into #<PACKAGE ASDF0> ;; Loading file /home/raido/local/lisp/systems/guess.asd ... ; registering #<SYSTEM :GUESS #x20538B31> as GUESS ;; Loaded file /home/raido/local/lisp/systems/guess.asd ;; Compiling file /home/raido/local/src/lisp/guess_0.1.0/guess.lisp ... ;; Wrote file /home/raido/local/src/lisp/guess_0.1.0/guess.fas ;; Loading file /home/raido/local/src/lisp/guess_0.1.0/guess.fas ... ;; Loaded file /home/raido/local/src/lisp/guess_0.1.0/guess.fas 0 errors, 0 warnings NIL以上。
clisp での作業は初期化ファイルにでも書いておく。clispの場合は $HOME/.clisprc 辺り。
(push (merge-pathnames "local/lisp/" (user-homedir-pathname)) custom:*load-paths*) (load '#:asdf) (push (merge-pathnames "local/lisp/systems/" (user-homedir-pathname)) asdf:*central-registry*) (asdf:oos 'asdf:load-op :guess)ロードするものが多くなって起動に時間がかかるようになったら、メモリイメージを保存して起動時にこっちを読み込むようにする。
* 2008-02-12 :
- GNU libiconv を自前でビルドして、clisp をビルドしなおし。
- 2.44 も試したけどなぜか FFI が認識されず、断念。
- ports に来るまで待つとしよう。
- ということで、こんなのができた。
- http://raido.sakura.ne.jp/southly/lisp/ni/view.lisp
- 見せ方に関してはもう少し工夫が必要だな。
- なかなかルールベースのプログラミングが書けない。う〜む。
* 2008-02-11 :
* 2008-02-04 :
- うわっ、ほんとだ。clisp 2.44 出てるし。
- できたバイナリのタイムスタンプを見ると2日の朝になっているから、10数時間後に新しいバージョンが出たという感じみたい。
- FreeBSDのportsにlibsigsegv 2.5ができたくらいに再度ビルドしてみます。
- toggle-gatesはちょっと考えて、もうすでにgatesだしいいか〜ということでパスしました。一周したあとでまた考えるかもです。
- packaged-xyzzyの対象者として考えているのはNetInstallerを自力でセットアップできない人なんですよね。
- NetInstallerを使える人はそっちでやってもらった方が融通が利いていいと思っているので、siteinit.lを編集するというのは全く考慮してません。
- とは言いつつ、ライブラリは抜きやすいようにコメントを入れていますけど、実際抜けるかどうかは微妙だと思ってます。ライブラリの依存関係を把握しておかないといけないので。
- あのsiteinit.lはホームディレクトリに依存しないように特殊なことをやっているので、あんまり参考にして欲しくないかなあとか思ったり。
- siteinit.lを上書きされたくないってことであれば、packaged-xyzzyのsiteinit.lを $XYZZY/lisp/ に置くっていう手もありますが……
- どうしようかな〜
- ん? DLLの件は自分とこも関係あったのか?
- もうひとつ追加。zipじゃなくてlzhにしているのは好みッスね。
* memo : clispをさくらインターネットにインストール
clispはサーバーのOSバージョンが上がっても動いていたけど、clispの方もバージョンが上がっているので入れなおしてみた。
いまいちうまくいっていないのでもう一回入れなおそう。
必要なライブラリであるlibsigsegvがきっちり認識されない。
libsigsegvはコンパイルはできるがチェックでエラーが出る状態。
ということで --ignore-absence-of-libsigsegv を追加して作成。
本当は --with-module=bindings/glibc も指定する予定だったけれどうまくいかず、結局以下のような感じでインストール。
できあがった物。
いまいちうまくいっていないのでもう一回入れなおそう。
必要なライブラリであるlibsigsegvがきっちり認識されない。
libsigsegvはコンパイルはできるがチェックでエラーが出る状態。
$make check Making check in src Making check in tests make check-TESTS Test passed. PASS: sigsegv1 Test passed. PASS: sigsegv2 FAIL: stackoverflow1 FAIL: stackoverflow2 =================== 2 of 4 tests failed =================== *** Error code 1 Stop in /home/raido/local/src/libsigsegv-2.5/tests. *** Error code 1 Stop in /home/raido/local/src/libsigsegv-2.5/tests. *** Error code 1 Stop in /home/raido/local/src/libsigsegv-2.5.
ということで --ignore-absence-of-libsigsegv を追加して作成。
本当は --with-module=bindings/glibc も指定する予定だったけれどうまくいかず、結局以下のような感じでインストール。
cd local/src/ wget http://ring.sakura.ad.jp/archives/GNU/clisp/release/2.43/clisp-2.43.tar.bz2 tar xf clisp-2.43.tar.bz2 cd clisp-2.43 ./configure --ignore-absence-of-libsigsegv --prefix=$HOME/local --with-module=rawsock --with-module=wildcard cd src/ make make check make install
できあがった物。
$ clisp --version GNU CLISP 2.43 (2007-11-18) (built 3410886803) (memory 3410887057) Software: GNU C 3.4.4 [FreeBSD] 20050518 gcc -g -O2 -Igllib -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -DNO_GETTEXT -DNO_SIGSEGV -I. -x none libavcall.a libcallback.a -lreadline -lncurses SAFETY=0 HEAPCODES STANDARD_HEAPCODES SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libreadline 5.0 Features: (READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI UNICODE BASE-CHAR=CHARACTER PC386 UNIX) C Modules: (clisp i18n syscalls regexp readline) Installation directory: /home/raido/local/lib/clisp-2.43/ User language: ENGLISH Machine: I386 (I386) www658.sakura.ne.jp [59.106.19.88]
* memo : sakura server
http://support.sakura.ad.jp/page/news/20071122-003.news
OSがバージョンアップするそうだから、ビルドしなおさないといけないな。
OSがバージョンアップするそうだから、ビルドしなおさないといけないな。
- clisp
- svn
* そこそこまとまっていて役に立つかもしれないもの
- xyzzyのformatまとめ
- WSHでxyzzy起動
- clispインストールのまとめ
- コマンドプロンプト周りの環境改善 Cygwin無しでそれなりの環境を作る。
- 候補の絞込みをするpopup-list
- その他