2004 | 12 |
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 |
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面白そうです!
■
コメントを書く