概要

長く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環境で 構築したい方は是非参考にされたい。

ディレクトリ構成

maxima root

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環境で利用したい方はそちらを参照されたい。

ここでは他の主要なディレクトリについて概要を述べる事とする。

admin

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では色々と修正 する必要があるだろう。

share

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が随分と スパゲッティな状態であった事を考えると、整理された分、修正し易く なったと言えるだろう。

demo

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
    

interfaces

CVS/ Makefile  Makefile.am  Makefile.in  emacs/ xmaxima/
    

emacsで利用する為のelファイルや、xmaximaのソースがemacsやxmaxima にある。xmaximaに関しては、5.6のものと比べて格段に派手なものと なっている。文字のレンダリングを行わない事が商用の物と比較した時の 弱点だが、それ以外は非常に立派なもので、使い勝手の面でも劣る物では 無い。

lisp-utils

CVS/      Makefile.am  defsystem.lisp     maxima-run-lisp
Makefile  Makefile.in  make-depends.lisp
    

plotting

CVS/ Makefile  Makefile.am  Makefile.in  mgnuplot  omplotdata
    

ここにはグラフ表示用のスクリプトが格納されている。

srcディレクトリの扱い

以前はsrcファイルにCommon Lispのオブジェクトがそのまま置かれて いたが、5.9preでは別ディレクトリに纏められる。例えば、clispで コンパイルした場合、src/binary-clisp以下にオブジェクトファイルが 纏められている。その為、5.6等で一部のファイルを修正してコンパイルを 行うと、古いオブジェクトとの整合性の問題で、例えば、plot3dに失敗する と云った間の抜けた事は生じ難くなっている。無論、安易にmakeを実行すれ ば、全てをコンパイルする事になるので非力な計算機環境には辛いかもしれ ない。この場合、Maximaのlisp環境で修正した関数を定義して動作の確認を 行う様にすれば良いだろう。

maxima-5.9pre-cvsのコンパイル

コンパイルの手順は次の手続きで行う。

  1. bootstrap

    bootstrapを実行し、configureを生成する。

  2. configure

    configureでMakefileを生成する。この際、gcl,clisp等の指定も 行える。対応しているCommon Lispはgcl、clispとcmuclで、 オプションは--enable-clispの様にする。詳細は./configure --helpを 実行されたい。

  3. make all
  4. make install

    通常、/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のままとなっている為である。


Maximaで遊ぼうの目次に戻る
ponpoko
Last modified: Wed Aug 7 20:46:44 JST 2002