4

ご存知のように、MaximaはCommonLispに基づいています。Maximaで動作するLispプログラムを書いています。Maximaの手順を使用します。引数「maxima-pfoo.lisp」を押してlispファイルをロードすると、うまく機能します。しかし、私はプログラミングが苦手なので、私のプログラムには多くのバグがあります。プログラムをデバッグしたいのですが、それほど簡単ではないことに気づきました。

私は、vimのlispサポートを拡張するためのvim-scriptであるslimvに慣れました。Slimvは、slimvとlispインタープリターを接続するためのswankを含む素晴らしいツールですが、MaximaのLispモードで「start-swank.lisp」をロードすると、エラーが返されました。

>> Error in CONDITIONS::CLCS-LOAD [or a callee]: The variable *LOAD-TRUENAME* is unbound.

gclによるものだと気づきました。そこで、maxima-sbclを検索するようになりました。ただし、maxima-sbclの公式パッケージはありません。がっかりしたよ。

最大値全体をsbclにロードできるかどうか疑問に思います。もしそうなら、私はswankのREPLでそれを読み、私のプログラムを首尾よくデバッグすることができます。

それとも、もっと良いアイデアを持っている人はいますか?

4

3 に答える 3

4

私はあなたが探しているものかもしれないこのプロジェクトに出くわしました
https://github.com/filonenko-mikhail/embeddable-maxima

これは、使用法のニュアンスに言及している開発者のブログ(ロシア語)です。

于 2012-03-01T11:26:12.013 に答える
3

Maxima のドキュメントを参照すると、ソース コードは SBCL でコンパイルできるようです。

Maxima の Lisp 実装に関する注意事項:

2 3 Clisp、CMUCL、Scieneer Common Lisp (SCL)、GCL (ANSI 対応のみ) 4 および SBCL は Maxima をコンパイルおよび実行できます

次の方法で牽引力を得ることができます。

[1] Load up your SBCL (and default core file).
[2] Load Maxima into that lisp session
[3] Save the core file
[4] Kill the swank server
[5] Replace the old core file with the new core file
[6] Restart the swank server

または、Maxima サイトの「ports」ページを確認してください。そこに OS X 用の Maxima の SBCL fink ポートを見つけました。

于 2012-02-27T18:34:38.293 に答える
2

LispだけでMaximaを再構築することについては、MaximaソースコードのINSTALL.lispを参照してください。 http://maxima.git.sourceforge.net/git/gitweb.cgi?p=maxima/maxima;a=tree

INSTALL.lisp で説明されている方法は defsystem を利用しています。または、ASDF を使用することもできます。ソースコードが解凍されていると仮定すると、次のことができるはずです

(require 'asdf)
(asdf:operate 'asdf:load-op :maxima)

そしてすぐに Lisp イメージをダンプするか、Maxima を起動します。

(cl-user::run)

注: おそらく、ASDF アプローチに関する詳細をいくつか省略しました。

返事が遅れて申し訳ありません。誰かが検索して見つけた場合に備えて、これをここに残します。

于 2012-05-31T18:28:04.750 に答える