Source of Nothingness - clisp

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* 2009-04-05 :

clispもバージョンアップしておこうと思ったけれど、ビルドに失敗。
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 :

(ReadMore...)

* memo : 暫定まとめ

自分が置いているCL系の情報にアクセスしやすいよう、もう一つ上の階層にページを作る予定なのだけれど、とりあえず列挙。

* SLIME勉強会

(ReadMore...)

* 2008-04-17 :

* 2008-03-09 :

(ReadMore...)

* 2008-03-05 :

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 を使う

さくらのサーバにインストールした clispasdf を使うための一連の作業をメモ。

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 :

* 2008-02-11 :

* 2008-02-04 :

* memo : clispさくらインターネットにインストール

clispはサーバーのOSバージョンが上がっても動いていたけど、clispの方もバージョンが上がっているので入れなおしてみた。
いまいちうまくいっていないのでもう一回入れなおそう。

必要なライブラリである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がバージョンアップするそうだから、ビルドしなおさないといけないな。
svnは念のためdumpしとくかな。

* そこそこまとまっていて役に立つかもしれないもの

* clispインストールのまとめ


(ReadMore...)