Source of Nothingness - memo

* Menu

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

* memo : 暫定まとめ

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

* memo : MacPorts で SBCL をインストール

ソースを消されないようにキープモードでインストールする。
$ sudo port -k install sbcl

upgrade の時は注意。

* memo : xyzzy lisp FFI

いつかちゃんとまとめたい。

* 2008-03-24 :

* memo : apacheの設定メモ

userdirを使えるようにするために毎回調べているのでメモ。
cd /etc/apache2/mods-enabled/
ln -s ../mods-available/userdir.conf .
ln -s ../mods-available/userdir.load .

cgiやら.httacessやらを許可するためにuserdir.confの方を書き換える。
面倒なので両方Allで。
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride All
                Options All
        </Directory>
</IfModule>

参考: http://x68000.q-e-d.net/~68user/webcgi/server-config.html

* 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)
ロードするものが多くなって起動に時間がかかるようになったら、メモリイメージを保存して起動時にこっちを読み込むようにする。

* memo : 調べる

* 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 : w3mさくらインターネットにインストール

thread無しとimage無しがポイントだった。
cd local/src/
wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.0.tar.gz
tar xf gc-7.0.tar.gz
cd gc-7.0
./configure --prefix=$HOME/local --enable-cplusplus --enable-threads=none
make
make install
cd ..
wget http://jaist.dl.sourceforge.net/sourceforge/w3m/w3m-0.5.2.tar.gz
tar xf w3m-0.5.2.tar.gz
cd w3m-0.5.2
make distclean
./configure --prefix=$HOME/local --with-gc=$HOME/local --enable-image=no
make
make install

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

案の定、昔入れたSubversionが動かなくなっていたので、以下のページを参考にインストールしなおしてみた。

空繰再繰 - Subversionさくらインターネットにインストール
http://nyarla.net/blog/subversion1

何とかうまくいった模様。
mkdir -p $HOME/local/src
cd local/src/
wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.33.tar.gz
tar xf swig-1.3.33.tar.gz 
cd swig-1.3.33
which python
./configure --prefix=$HOME/local --with-python=/usr/local/bin/python
make
make install
cd ..
wget http://ftp.riken.jp/net/apache/apr/apr-1.2.12.tar.gz
tar xf apr-1.2.12.tar.gz 
cd apr-1.2.12
./configure --prefix=$HOME/local --disable-static
make
make install
cd ..
wget http://ftp.riken.jp/net/apache/apr/apr-util-1.2.12.tar.gz
tar xf apr-util-1.2.12.tar.gz 
cd apr-util-1.2.12
./configure --prefix=$HOME/local --with-apr=$HOME/local --disable-static
make
make install
cd ..
wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2
wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2
tar xf subversion-1.4.6.tar.bz2 
tar xf subversion-deps-1.4.6.tar.bz2 
cd subversion-1.4.6
which apr-1-config
./configure --prefix=$HOME/local --without-brekelay-db --with-swig=$HOME/local/bin/swig --with-apr=$HOME/local/bin/apr-1-config -with-apr-util=$HOME/local/bin/apu-1-config --disable-static
make
make install

* memo : sakura server

http://support.sakura.ad.jp/page/news/20071122-003.news
OSがバージョンアップするそうだから、ビルドしなおさないといけないな。
svnは念のためdumpしとくかな。

* memo :

現在位置と前と後ろと目標位置との関係を調べて、近いほうから進む?

* memo :

なんか最近Lisp書いてないので書き捨ててみた
C++用
(defun foo ()
  (interactive)
  (let ((l nil))
    (save-excursion
      (goto-char (point-min))
      (while (scan-buffer "\\bstd::\\(\\sw\\|\\s_\\)+" :regexp t :no-dup t)
        (pushnew (match-string 0) l :test #'string=)))
    (dolist (x l)
      (insert (format nil "using ~a;~%" x)))))

(defun bar ()
  (interactive)
  (perform-replace "\\bstd::\\(\\(\\sw\\|\\s_\\)+\\)" "\\1" nil t nil nil))

* memo : 汎用Makefile

(ReadMore...)

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


(ReadMore...)