ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

LispWorksでアプリケーションを配布する

LispWorksならCommon Lispで作ったアプリケーションの配布も簡単です。

1)lispファイルと同じフォルダーにスクリプトを作る

arrow_delivery.lspで保存しました。

(in-package "CL-USER")
(load-all-patches)
(compile-file "arrow"   :load t)
;(load (current-pathname "arrow" nil))
(deliver 'draw-arrow-demo "draw-arrow-demo" 5 :interface :capi)

arrow.lspがアプリケーションが記述されたlispファイル名、draw-arrow-demoが起動時に呼び出す関数名です。

2)アプリケーションビルダーでスクリプトを読み込む

Build script に先ほど用意したarrow_delivery.lspを指定します。
Saved imageは最後に作った実行ファイルを表示しているので、exeファイルを作るまでは、関係のないファイルが表示されています。左上の Build the application using the script ボタンを押すと自動的にexeファイルが作成されます。

コマンドラインからも同じ事が出来ます。

c:\home\Dropbox\clisp>"c:\Program Files (x86)\LispWorks\lispworks-5-1-0-x86-win32.exe" -build arrow_deriver.lsp

3)exeファイルの完成

http://dl.dropbox.com/u/12131668/arrow_demo.zip

動作させるのに必要なランタイムライブラリが無い場合は、こちらをみてください。
LispWorks Delivery User Guide 7.1 Runtime library requirement

4)はまったところ

最初はこのようなエラーが出て、exeファイルを作ってくれませんでした。

SYSTEM::START-FUNCTION
Quitting because of error: In a call to MP:ENSURE-PROCESS-CLEANUP: NIL is not of type MP:PROCESS.

arrow.lspの最後でアプリケーションを呼び出していたので、その部分をコメントアウトしたらexeファイルが作成されました。

; アプリケーション起動
;(draw-arrow-demo)