2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |
2010-07-26
ABCL/1 ABCL/R2をビルドする
今回のABCLは、JVM上で動くCL処理系ではなくて、LISPベースの並列オブジェクト指向言語の方です。
今日、deliciousから流れてくるLISP関係のものを眺めていて、
というのをみつけました。
中に配布されているソースが書かれているのですが、もしかしてと思って、上のディレクトリを覗いてみると、abcl/1や、abcl/r2のソースがありました!
abcl/fはソースが配布されているのを見たことがあったのですが、abcl/1やabcl/rは配布されていることを知りませんでした。
物は試しということで、早速、ビルドに挑戦。
Makefileもあるのですが、手直ししないと動かないようなので、ターゲットの一つであるKCLの直系のGCLを起動して、処理系からビルド用のファイルを読み込むことにしてみました。
といっても非常に簡単です。(環境は、Ubuntu 10.4 x86_64で試しました。)
abcl/r2の場合
$ mkdir abclr2 $ cd abclr2 $ wget http://venus.is.s.u-tokyo.ac.jp/pub/abclr2/abclr2-dist.tar.Z $ gzcat abclr2-dist.tar.Z|tar xvf - $ gcl GCL (GNU Common Lisp) 2.6.7 CLtL1 Feb 15 2010 17:57:54 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE BFD UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files set to /tmp/ >(push :kcl *features*) ;KCLということにする (:KCL :COMPILER :NUMLIB :SDEBUG :DEFPACKAGE :GNU-LD :XGCL :UNEXEC :BFD :NATIVE-RELOC :READLINE :TRUNCATE_USE_C :CLX-LITTLE-ENDIAN :BSD :GNU :LINUX :X86_64 :SGC :IEEE-FLOATING-POINT :UNIX :GMP :GCL :AKCL :COMMON :KCL) (load "defabclr2.lsp") Loading defabclr2.lsp Loading defsystem.lsp Finished loading defsystem.lsp Finished loading defabclr2.lsp T >(build-and-dump) ;ビルドして実行可能ファイルを作成 Loading /home/mc/Desktop/abcl/abclr2/src/abclr2.system... ...
とすると、saved_abclr2というものができます。
これを実行すると
$ ./saved_abclr2 Welcome to ABCL/R2 Gesi version (Jul. 7, 1995, 0.59) ABCL/R2>[[object (script (=> [:hello] !(print "Hello, World!")))] <== [:hello]] "Hello, World!" "Hello, World!" ABCL/R2>
abcl/r2が起動できます。
abcl/1のビルド
abcl/1もabcl/r2と同じようにできますが、途中でちょっとひっかかるので、そこは飛します。
>(push :kcl *features*) (:KCL :COMPILER :NUMLIB :SDEBUG :DEFPACKAGE :GNU-LD :XGCL :UNEXEC :BFD :NATIVE-RELOC :READLINE :TRUNCATE_USE_C :CLX-LITTLE-ENDIAN :BSD :GNU :LINUX :X86_64 :SGC :IEEE-FLOATING-POINT :UNIX :GMP :GCL :AKCL :COMMON :KCL) >(load "init-abcl") Loading init-abcl.lsp ABCL-USER>> (load "maksys") Loading maksys.lsp Finished loading maksys.lsp t ABCL-USER>> (load "defabcl") Loading defabcl.lsp Finished loading defabcl.lsp t ABCL-USER>> (maksys 'abcl1) Loading file declare.o...... start address -T 0x10bbfe0 done. ABCL-USER>> (abcl::enable-debug) ABCL-USER>> (abcl::gbc-message-on) ABCL-USER>> ; (si:catch-bad-signals);飛ばす ABCL-USER>> (setq si:*indent-formatted-output* nil) ABCL-USER>> (defun system:top-level nil (abcl::abcl-top-level)) ABCL-USER>> (if abcl::*distribution* (setq si::*break-enable* nil)) ABCL-USER>> (gbc t) ABCL-USER>> (si:save-system "saved_abcl1")
まだ、マニュアルをちょっと眺めただけですが、abcl面白そうです!
■
2010-01-21
ABCLをソースからビルドするためのメモ ant編
ABCL | |
ちょっと前のことになりますが、なにかのきっかけでABCLがちょっと盛り上がり、このブログにABCLのビルド方法で検索して辿り着いている方が増えていたようでした。
それらのエントリーは、
なのですが、これを書いた当時、自分はJavaのantを全く知らなかったため、SBCL等でビルドするという方法を書いておりました。
しかし、antだと
$ tar xvf /usr/local/abcl/abcl-src-0.18.1.tar.gz $ cd abcl-src-0.18.1 $ ant abcl $ ./abcl Armed Bear Common Lisp 0.18.1 Java 1.6.0_16 Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM Low-level initialization completed in 0.339 seconds. Startup completed in 0.992 seconds. Type ":help" for a list of available commands. CL-USER(1):
これだけの手順で、abclが生成されるのです…。
SBCLを使ってのビルドがややこしくて、ABCLのビルドに挫折していた方がいたとしたら、ごめんなさい…。
■
2009-04-05
ABCLをソースからビルドするためのメモ
Common Lisp, ABCL | |
※antを使う方法が一番楽なようです
----
今日、ABCLの0.14.0がリリースされたようです。
リリース頻度が随分高くなっているように思えるのですが、やはり同じJVM上で動くClojureに負けてられないということなのでしょうか(*'-')
それはさておき、毎回ソースからビルドするたびに手順を忘れるのでメモ
$ cd ABCLのソースディレクトリ
customizations.lispを作成
(in-package "BUILD-ABCL") ;; Standard compiler options. (setq *javac-options* "-g") (setq *jikes-options* "+D -g") ;; *PLATFORM* will be either :WINDOWS, :DARWIN, :LINUX, or :UNKNOWN. (case *platform* (:windows (setq *jdk* "C:\\Program Files\\Java\\jdk1.5.0_11\\") #+(or) (setq *java-compiler* "jikes") ) (:darwin (setq *jdk* "/usr/") (setq *java-compiler* "jikes") #+(or) (setq *jar* "jar")) ((:linux :unknown) (setq *jdk* "/usr/lib/jvm/java-1.5.0-sun/") ;; jdkの場所 (setq *jar* "jar")))
他のCL処理系でビルド
echo "(load \"build-abcl.lisp\")(build-abcl:build-abcl :full t :clean t)"|sbcl
■
2008-01-07
ABCL 0.0.10をインストールしてみる
※antを使う方法が一番楽なようです
----
私は、割とOSや処理系のインスコ厨です。
特に使う目的もない処理系をインストールして、それで満足して終了、ということを繰り返しているのですが、今回は、ABCLをインストールしてみることにしました。
ABCLはJavaVM上で動くCommon Lispの処理系です。
に詳しい解説があります。
私のインストールポリシーとしては、
- /usr/local/abcl/0.0.10以下にファイルを置く
ということ位です。
必要なもの
- とりあえず、JDKが必要です。ubuntu 7.10 x86_64には、sun-java5-jdkがあるので、パッケージで導入しました。
- Common Lisp処理系。コンパイルするのに必要になります。今回はSBCLを使用しました。
インストール
- READMEを読んで、customizations.lispを設定します。
(case *platform* (:windows (setq *jdk* "C:\\Program Files\\Java\\jdk1.5.0_11\\") #+(or) (setq *java-compiler* "jikes") ) (:darwin (setq *jdk* "/usr/") (setq *java-compiler* "jikes") #+(or) (setq *jar* "jar")) ((:linux :unknown) (setq *jdk* "/usr/lib/jvm/java-1.5.0-sun/") (setq *jar* "jar")))
- ホストの処理系でbuild-abcl.lispをロードします。
(load "build-abcl.lisp")
- ホストの処理系でコンパイル開始
(build-abcl:build-abcl :clean t :full t)
しばし待つとabclという起動の為のスクリプトが生成されるので、これで完了です。
なんとなく分かったこと
分からないこと
- UTF-8でSLIMEと通信できない模様。ただ、処理系はUTF-8なので、日本語が表示できないというわけではない様子。
- イメージのダンプとかできるんだろうか。とりあえずは、初期化ファイルを作って、swankまで起動させて、SLIMEと通信して使用してみています。起動は、
/usr/local/abcl/0.0.10/abcl --load init-abcl.lisp Armed Bear Common Lisp 0.0.10 (built Mon Jan 7 2008 16:27:15 --900) Java 1.5.0_13 Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM Control-C handler installed. Low-level initialization completed in 0.398 seconds. Startup completed in 1.822 seconds. 〜〜 ;; Swank started at port: 4013. Type ":help" for a list of available commands. CL-USER(1)
といった感じ。