2010年11月14日日曜日

[newLISP]guiserverをインストールせずに使いたい

newlispに付属のGUI(GUI-Server)は各種ファイルが既にインストールされている状態で ないと利用できないので、なるべく任意のディレクトリで使うようにするための方法です。

※newlispのバージョンアップに伴い利用できなくなる可能性があります
※Linux環境(CentOS_5)にて動作確認

環境変数NEWLISPDIRにguiserver.{jar.lsp}が置いてあるディレクトリを指定してプロセスを起動させる
(ソースパッケージを展開した場合は"newlisp-10.x.x/guiserver"以下にあるはず)

% pwd 
/home/kosh/src/newlisp-10.2.16/guiserver
% NEWLISPDIR=`pwd` newlisp table-demo.lsp
newLISP-GS v.1.42 on Linux
(guiserverが起動する)

いちいちタイプするのが面倒なら設定ファイル ~/init.lsp (または .init.lsp)に以下のコードを記述する

(env "NEWLISPDIR" "/path/to/guiserver"))

guiserverディレクトリ内にあるデモスクリプトを眺めるのはこれでOK

newLISPエディタを起動させる

エディタを起動させる場合にはもう少し手を加える必要がある。
guiserver-edit.lspを編集してハードコートされているnewlispのパスを書き換える。

% sed 's!"/usr/bin/newlisp "!/path/to/newlisp!g' newlisp-edit.lsp > newlisp-edit-alt.lsp
% newlisp newlisp-edit-alt.lsp

また、main-args関数にはnewlispが実行されたときの引数がリストとして格納されているので

"/usr/bin/newlisp " -> (main-args 0)

のように置換しても良い。

2010年11月8日月曜日

newLISP v10.2.X インストールメモ

以前書いた情報 がすっかり古くなったので書き直し。

現在(2010年11月時点)の安定版はnewlisp v.10.2.8
開発版はnewlisp v.10.2.17です。

このページは以下のURLと配布ファイルに同梱しているREADMEを参考に作成しています。

newLISP - Downloads

ダウンロードページ

配布されているtarballの中身

newlisp-xx.yy.zz
|-- makefile_XXX - 各種Makefile
|-- newlisp.c - newlispのソースコード
...
|-- doc/ - ドキュメント・マニュアル
|   |-- MemoryManagement.html
...
|   `-- newlisp_manual.html
|-- example/ - サンプルスクリプト
|-- guiserver/
|   |-- guiserver.jar - GUI-Server本体
|   |-- guiserver.lsp - GUI-Serverとの通信用スクリプト
    ...
|   |-- images/ - 各種アイコン
|   `-- java/ - guiserver.jarのソースコード
|-- modules/ - モジュール
|-- qa-specific-tests/ - テスト用ファイル
|-- util/ - その他
...
|-- configure
|-- configure-alt
`-- README

インストーラからインストールする

WIn32/MacOSX/Ubuntuには公式でインストーラが配布されているので導入は楽

ただしWin32のUTF-8版バイナリはインストーラとは別に配布されている

wget http://www.newlisp.org/downloads/UTF-8_win32/newlisp.exe

公式のダウンロードページの下部には有志によるDebianリポジトリも作成されているので、これを利用して自動更新する方法もある。

apt and dpkg repository for newLISP

ソースからmakeする

野良ビルドの基本としてconfigureスクリプトがあるが、代わりに同梱されている configure-alt スクリプトを利用すると自分の環境に合わせたmakefileを作成して くれる。

具体的には以下

  • OSの判別
  • データ型モデル(LP64/ILP32)の判別
  • UTF-8の利用(デフォルトはyes)
  • readlineライブラリの有無
  • IPv4/6利用の選択(デフォルトはIPv4)
  • インストールディレクトリの選択 (--prefix=/usr/local)
  • などなど

※newLISPではこの辺をautomakeを使わずに自前で用意している。
※configure-altも失敗する可能性があるので、その時はconfigureスクリプトを使う

guiserverはソースと共にjarファイルが同梱されているのでjavaコンパイラは必要ない。もちろんguiserverを起動させる場合にはjava仮想マシン(JVM)がインストールされている必要がある。

実際にコンパイルしてみる

% wget http://www.newlisp.org/downloads/newlisp-10.2.X.tgz
% tar zxvf newlisp-10.2.X.tgz
% cd newlisp-10.2.X
% ./configure-alt
% make
% make check
% sudo make install

最小インストール

Win32,UNIX系OSどちらも実行バイナリ単体で動作する。

% sudo cp newlisp /usr/local/bin/newlisp

開発版と安定版を使い分ける場合はバージョン番号で管理すると便利。

% sudo install -m 755 ./newlisp /usr/local/bin/newlisp-10.2.16
% sudo ln -sf /usr/local/bin/{newlisp-10.2.16,newlisp}

% ls -l /usr/local/bin/newlisp*
    lrwxrwxrwx 1 root root     30 11月  1 11:59 /usr/local/bin/newlisp -> /usr/local/bin/newlisp-10.2.16
    -rwxr-xr-x 1 root root 270520 11月  1 11:57 /usr/local/bin/newlisp-10.2.16