macport で CCL 1.10 を OSX 10.11(El Caption)にインストールする
前日に日記にもかいていたがいろいろやってみると、macports で CCL 1.10 を El Caption にインストールできた。
現時点で、macports にある、ccl 1.10 を Mac OSX 10.11(El Caption)にインストールすると カーネルのリビルドで失敗する。
10.11 では、アセンブラが clang に変更されていて、.stabs ディレクティブを解釈しないようになったとのこと。解釈させるには、ASFLAGS に -Q オプションを加えればいいらしい。
つぎのようにすると ccl 1.10 をインストールできる。なお 1.11 では、対応ずみらしい。
続きを読む実用Common Lisp を購入した
実用Common Lispを買った。買ってしまった。
しかたないんよ。10000円に近いお値段。それ以上の価値がある、はず。
これ、電話帳ぐらいの厚さがある。
quicklisp が壊れたので再インストールした
Windows7 32bit上で Clozure CL 1.10 で quicklisp を使用していたが、ql:quickload や ql:system-apropos で Errorがでるようになってしまった。外部に接続する際にゴミがはいっているもよう、どこか壊したらしい。
とはいうものの、どうしてよいかわからなかったので強制的に再インストールした。
具体的には、C:/Users/you/quicklisp などの quicklisp のあるフォルダを 別の名前に変更して、もういちど quicklisp をインストールするだけ。
それから、ql:quickload slime-quicklisp-helper を実施する。これでエラーがでなくなったので安心する。
あとは、古いquicklisp のフォルダをみながら、ql:quickload を実施していけばいい。
プロジェクトの作成までのまとめ
Mac OSX (64lbit)での common lisp の プロジェクトの作成までのまとめを作成してみた。あちこち間違っていると思うので、指摘してください。
続きを読むMac で iolib に依存した cl-iconv を利用する
Mac OSX で cl-iconv をインストールする際のメモ。依存関係で iolib が要求する libfixposix をインストールする。
続きを読むmy Clozure CL environment setting Memo
1.1 get ccl by macports for Mac Only
sudo port install ccl
1.2 or get ccl by subversion
#for mac x86/x86_64 svn co http://svn.clozure.com/publicsvn/openmcl/release/1.10/darwinx86/ccl
#for linux x86/x86_64 svn co http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl
#for windows x86/x86_64 svn co http://svn.clozure.com/publicsvn/openmcl/release/1.10/windows/ccl
1.2 or go to http://ccl.clozure.com/download.html and download tarballs
2 run ccl64 ("ccl64" is clozure cl command for macports)
3 get quicklisp from http://beta.quicklisp.org/quicklisp.lisp
4 install quicklisp and slime
(load "path-to-downloaded/quicklisp") (quicklisp-quickstart:install) (ql:add-to-init-file) (ql:system-apropos "slime-helper") (ql:quickload "quicklisp-slime-helper")
5 obeying the above result tomodify your ~/.emacs.d/init.el
#NOTE: in some environment, $HOME is different emacs and ccl
guess で 文字コードを判定させてひらく
guess という、日本語の文字コードを推定するライブラリがhttps://github.com/zqwell/guess あった。
common lisp は、clozure clで 使ってみた。
二回開いているので無駄っぽい。
普通に、vectorを 文字列に変換しましょう→自分
しかし、先頭の3行だけ欲しいような場合は、自分で文字列から行をパースせないかんのかしら。
clozure clは Shift_JIS を :CP932 で表すので :SJIS を変換しないといけない、はず。
直接編集するのもなんなので利用側で変換するかな。
(defun file-vector (file) (with-open-file (s file :direction :input :element-type '(unsigned-byte 8) ) (let ((buf (make-array (file-length s) :element-type '(unsigned-byte 8)))) (read-sequence buf s) buf))) (defun guess-code (file) (let ((encode (guess:ces-guess-from-vector (file-vector file) :jp ))) (if (eq encode :SJIS) :CP932 encode))) (defun open-with-guess-code (file &optional (max-line 30)) (let ((encode (guess-code file))) (with-open-file (fs file :direction :input :external-format (ccl:make-external-format :character-encoding encode)) (loop for line = (read-line fs nil nil) while line collect line))))