もう残暑だなんて信じられないです。
35度も行ってるみたいで。
仕事中は空調が効いていたので気付かなかったのですが、外に出た途端にぐらっと。
これはキツい。
元々、今日は朝から調子が悪かったのですが、熱が内にこもってたんだろうなぁ。
Maximaの最新版はWindows版のbinaryがないんですよね。
でも、たまたまMaximaのソースツリーを見てたら、なんかCommon Lispだけでビルドできるみたいなことが書いてあります。
元々、最新版がないのでMinGWでコンパイルしようつしつつ、必要なツールのmakeでつまづいていたのですが、Common Lispとgnuplotだけがあればいいのならなんとかなりそう。(もっとも、公式サイトではwgnuplotとのインターフェースはうまくいかないとありましたが。。)
とりあえず、手持ちでbinaryがある、GNU CLISP 2.49 を使ってみることにしました。
ソースツリーの上のところで、configure用のLispスクリプトをloadしてから、comfigureを評価します。
そしてから、一旦Lispを抜けてからsrcディレクトリーに移動して再度Lisp起動。build用のスクリプトを読み込んでbuildを開始します。まぁ、要はMaximaをドライブするためのLispファイルをコンパイルするわけです。ただ、GNU CLISPはコンパイルとは言っても、テキストベースの中間言語に変換するだけだし、その実行自体もやたら時間がかかりました。全体をコンパイルするのに何時間かかっただろうか。
おもしろかったのは、ソースツリーにFortranのコードが含まれてて、それをCommon Lispのコードに変換したものが使われているのです。(同じ要領で、パッケージにはLapackとかもありました。)
で、一旦また抜けてから再度Lispを起動して、buildスクリプトからdumpをかけます。それであとはWindows環境ではmaxima.batでmaximaを起動できます
gnuplotについては、maximaを立ち上げてから、gnuplot_command: "c:/PROGRA~1/gnuplot/bin/wgnuplot.exe"$ を実行してからplotコマンドを試してみたら、ちゃんとgnuplotが動作しました。maximaの設定として、パスに空白は許容しないので、dir /x で表示される、昔なつかしWindows 95以前の8文字に短縮したディレクトリー名を指定したところOKでした。
一応、maximaのソースツリーにあったtestケースをチェック。全てOK。ただげちゃ遅い。
平行して調べていたのですが、Steel Bank Common Lispはコンパイル時にバイトコードに変換するので動作が早い、ということだったので、GNU CLISPでのチェックのあとで Steel Bank Common Lispをインストールしてみました。
ちょっとクセがあって、ディレクトリーの移動とかが難しいですね。標準にインストールするところと違うところにインストールしたのですが、sbcl.exeを直接叩く分には問題ないのですが、他のディレクトリーからsbcl.exeのフルパスを指定して実行しても、sbcl.coreファイルがみつからない、とエラーになってしまって実行できません。これでは上記の方法でbuildできないではないですか。
調べてみたら、coreファイルについては --core オプションのあとにcoreファイルのパスを指定すればいいみたいです。
これで動きました。
何か嘘みたいに高速にコンパイルが終わりました。嘘?
別のサイトでgnuplotのver5RC1のWindows版binaryを入手しておきました。
そして、これらをいっきょに集めて実行しようとしたのですが、どうもmaxima.batがそのままでは動作しないみたいです。やっぱりcoreファイルがみつからないみたいなんです。
ということで、中見を少々書き替えて実行。
なんとか動作しましたし、gnuplotとの連携もうまくいってるみたいです。
ところが、testケースを試してみたところエラーでまくりです。
ちょろちょろ、っとmaxima.batをいじったのがまずいのか、buildする過程が悪かったのか。。
ただ、buildそのものの時間はかからないから、まだ試してみる時間はあるな。
maximaの公式で配布しているcommon Lispよりも、感触としてはSteel Bank Common Lispの方が早そうなので、この方法がうまくいけばXMaximaは使えないからメニューは使えないですが、そもそもそんな高級なメニューは入ってないから問題ないか。wxMaximaの方はそもそも使ってないし。
ブートアップ用のファイルはどう設定するんだろ。gnuplotのパスはそこで設定するようにしないといけないよなぁ。
まぁ、なんとかなりそうです。
特集で重力理論についてやっていて、ちょろっとアインシュタインの一般相対性理論以外の重力理論についての紹介があったものですから買っておきました。
当然、少しの記述しかないので、得られる知識は非常に限定的になりますが、理論の名称がわかるだけでも中見を調べるためのたよりにはなるかなぁ、と。
まぁ、それらしい話を作るには、やっぱりこういうのが大事だよなぁ。
「お話」では、事実よりも、事実っぽいこと、の方が大事だから。
昨日のエントリーでShimejiとあったのは しめじ というアプリですね。
Shimejiはあの百度が出していて、情報を収集していたという話で一挙に使用者が減ったIMEですね。
ちなみに、あのあとでUbuntuくんでも しめじ が動くの確認しました。
私の場合、Net Beans IDEというJava開発環境を公式からインストールしたときに、いっしょに純正のJreがインストールされてたからなのですが、他のJVMで しめじ が動くのかどうか不明。
Ubuntu用のJreってなんかかなり古いやつのままだったような気が。。
ちなみに、このNet Beansっていう名前は昔のCoffee Beans だったかJAVA Beansだったかの名前の開発環境から来てるのかなぁ。
Javaが公開された当時は、Java appletを使って、動的なWebが作れるということで一時期大流行したんですよね。ただ、そのあとでappletにセキュリティー上の問題があるということで一挙に使われなくなって、動的なWeb実現はFlashとかに主役の座をゆずったわけで。(今ならJavascriptですな。)
いや、あの当時、実のところJavaの入門書を買っていたんですよ。
でも難しかったのと、そもそも目的意識がなかったので、すぐに投げ出してしまっていたのですが。ちゃんとやっときゃよかった。
そういうのいっぱいありますよね。Delphiとかもそうだし。Fortranより前にPascalの文法は知っていたから、ちゃんとやればよかったのですが、それこそオブジェクト指向が全然わからなくて。
そもそもからして、elispだって、ものすごく身近にあったんだから、ちゃんとやっとけばよかったものを。cmailとかSKKとかの開発現場の近くにいたんだし。ソース見る時間を取れるかなぁ。。。
まぁ、そもそもからして、ようやっと最近になってFortranのちょっとはましなプログラムが書けるようになったばかりだしなぁ。。
こらえ性がないので、なかなか色々とマスターできないでいるのでした まる。