長くMaximaの管理を行われていたSchelterさんが2001年の夏に亡くなって 以来、Maximaの管理はsourceforgeでMailing Listのメンバーを軸に行わ れている。Schelterさんが管理していた頃は、GCL環境を第一に想定して いたが、次期バージョンの5.9ではCLISPやCMUCLの方に軸を置いている。 この5.9版は平成14年7月25日現在開発中であるが、いよいよ正式版 としてリリースされそうである。ここでは簡単に5.9preの概要等を述べる。 尚、私はCLISP 2.8でコンパイル(SuSE Linux for Intel及びPowerPC)を 行っているが、他のCMUCLやGCLに関してはチェックを行っていない。
尚、gcl-2.4.3に関しては、安宅さんからレポートを頂いており、 安宅さんの御好意により インストールレポートにその内容を公開している。GCL環境で 構築したい方は是非参考にされたい。
AUTHORS Makefile.am archive/ demo/ mkinstalldirs*
COPYING Makefile.in bootstrap* doc/ plotting/
COPYING1 NEWS common.mk install-sh* share/
ChangeLog README config.log interfaces/ src/
INSTALL README.lisps config.status* lisp-utils/ tests/
INSTALL.cvs aclocal.m4 configure* maxima-local* xmaxima-local*
Makefile admin/ configure.in missing*
上に示す様に、ディレクトリ構成は以前と比べると歴然としている。 ここでコンパイルを行う為には、bootstrapを./bootstrapで実行し、 configureを最初に生成する必要がある(上ではコンパイルを行った後の 状況である!)。その次に、configureで環境に合せた設定を行ってMakefile を生成し、それから安易にmakeを実行するだけで良い。
ここで、コンパイルに使えるCommon Lispに関しては、附属のREADME.lisps に註釈が載せてある。先ず、clispに関しては、2.6でclisp自身のバグの為に コンパイルに失敗するが、2.28では問題が無い。個人的にもMaxima5.6の コンパイルでさえも、CLISP 2.6で失敗する事がある。その為、2.8以降が 良いだろう。次に、CMUCLでは、CMUCL 18cでハングアップする事がある。 しかし、18dでは問題が無いらしい。最後に、GCLでは2.4.1と2.5.0(開発版) で動作する事が確認されている。又、このファイルにはGCLがMaximaの プラットホームとしての立場を終えた事が明記されている。このGCLの コンパイルは困難なので、上記のCLISPかCMUCLを用いる事を考えた方が 良いだろう。尚、GCLを用いたコンパイルに関しては、安宅さんから レポートを頂いていており、御好意によってレポートと利用したパッチ を安宅さんのレポートにて公開して いる。CGL環境で利用したい方はそちらを参照されたい。
ここでは他の主要なディレクトリについて概要を述べる事とする。
CVS/ configure* idea makefile msg
README.binary configure.in* info/ maxima-5.5-2.spec o/
README.orig deliver/ install.tcl maxima-5.6-0.spec readme.plot
bin/ doc/ majvers maxima.gif share/
従来のmaxima-5.6相当が含められている。こちらのコンパイルでは configureを実行すれば良い。尚、ここでのconfigureではgcl向けの Makefileを生成するので、clisp等の他のCommon Lispでは色々と修正 する必要があるだろう。
CVS/ calculus/ integequations/ numeric/ sym/
Makefile combinatorics/ integration/ physics/ tensor/
Makefile.am contrib/ macro/ share.usg trigonometry/
Makefile.in diffequations/ matrix/ simplification/ utils/
algebra/ graphics/ misc/ specfunctions/ vector/
shareディレクトリも大幅に変更されている。項目毎に分類されており、 maxima-5.6以前のごった煮状態と比べると分り易くなっている。但し、 虫取りは不完全で、その上、ディレクトリ変更に伴なう修正が不十分 に見える。例えば、symのディレクトリの変更による修正が、検索経路を 指定する関数の中に抜けていたりする。とは言え、5.6が随分と スパゲッティな状態であった事を考えると、整理された分、修正し易く なったと言えるだろう。
CVS/ array.dem eaton2.dem macro.dem rombrg.dem
Makefile cf.dem ezgcd.dem manual.demo subscr.dem
Makefile.am demo.dem hypgeo.dem newfac.dem sumcon.dem
Makefile.in eaton1.dem macex.dem plots.mac trgsmp.dem
CVS/ Makefile Makefile.am Makefile.in emacs/ xmaxima/
emacsで利用する為のelファイルや、xmaximaのソースがemacsやxmaxima にある。xmaximaに関しては、5.6のものと比べて格段に派手なものと なっている。文字のレンダリングを行わない事が商用の物と比較した時の 弱点だが、それ以外は非常に立派なもので、使い勝手の面でも劣る物では 無い。
CVS/ Makefile.am defsystem.lisp maxima-run-lisp
Makefile Makefile.in make-depends.lisp
CVS/ Makefile Makefile.am Makefile.in mgnuplot omplotdata
ここにはグラフ表示用のスクリプトが格納されている。
以前はsrcファイルにCommon Lispのオブジェクトがそのまま置かれて いたが、5.9preでは別ディレクトリに纏められる。例えば、clispで コンパイルした場合、src/binary-clisp以下にオブジェクトファイルが 纏められている。その為、5.6等で一部のファイルを修正してコンパイルを 行うと、古いオブジェクトとの整合性の問題で、例えば、plot3dに失敗する と云った間の抜けた事は生じ難くなっている。無論、安易にmakeを実行すれ ば、全てをコンパイルする事になるので非力な計算機環境には辛いかもしれ ない。この場合、Maximaのlisp環境で修正した関数を定義して動作の確認を 行う様にすれば良いだろう。
コンパイルの手順は次の手続きで行う。
bootstrapを実行し、configureを生成する。
configureでMakefileを生成する。この際、gcl,clisp等の指定も 行える。対応しているCommon Lispはgcl、clispとcmuclで、 オプションは--enable-clispの様にする。詳細は./configure --helpを 実行されたい。
通常、/usr/local/share/maxima/以下にインストールされる。
5.9pre-cvsはMaxima本体に関しては虫が取れている様だが、shareに含まれる 古いライブラリに関しては色々と残っているだろう。5.6と共通の虫も散見 される。尚、大きな虫では、5.6であった3^log(x)の積分の虫が取れている。 但し、sqrt(x+1/x-2)の虫は残っている。又、symに関しては "虫取物語"等の虫がそのまま残っており、 他に、file-search-pathも間違っている。これはmaxima-5.6ではinit_max1.lisp で指定したが、5.9pre-cvsではinit-cl.lispで定義している。ここで、symが shareに含まれている事を無視して、symのままとなっている為である。