2011-04-01から1ヶ月間の記事一覧
Oracleになってからリリースされたバージョンを試すのは初めて。 うまくいくだろうか。MacのJavaは、他のJavaと多少異なるディレクトリ構成になっているので、 その点を他のJavaと合わせる必要がある。下記のブログを参考にした。 http://blogs.oracle.com/s…
クラスを生成した後でフィールドにアクセスするために accessor を使用していたが、reader と writer というものを使用して setter と getter を分割することもできると知った。Java をやっていた自分としてはこの方が使い易いと思う。 ? (defclass foo () (…
#+ccl とか #+clisp というのを使用すればできるようだ。以下のような感じ。 (defun open-socket-server () (make-socket :connect :passive :reuse-address t :local-port 7001)) (defun open-echo-server () #+CCL (let ((server (open-socket-server))) (…
かなり前回から間があいてしまっているが、再び書く機会があったので。インスタンスの初期化の方法について。具体的には initform と initarg の使い方を簡単にメモ。まずは initform から。 ? (defclass foo () ((a :accessor accessor-a :initform "Hello"…
Windowsマシンだと、デフォルトでSHIFT_JISが使用される。 自宅だとMacなのでこの文字コードをUTF-8にしたいなぁ・・・と思っていて、 数日前に自分の使っているエディタ(Xyzzy)で設定を変更。 変更方法は、%XYZZY_HOME%\site-lisp\siteinit.lに次の1行を…
文字コード以外の原因で文字化けしていたのでメモ。 TeraTermでUNIX/Linuxに接続した場合、気にするのはログインユーザのLANGと、TeraTermメニューの文字コードだと思う。今回、LANG=ja_JP.UTF-8になっていて、TeraTermメニューの文字コードもUTF-8。だが、…
ClozureCL で文字のバイト数を判定 - Shammerismで UTF-8 限定の関数を書いてみたが、改行の判定がうまくできず、改行を含む場合に行数分だけサイズが小さくなってしまうことがわかった。よくよく調べると、ClozureCL の標準関数で文字のバイト数を取得でき…
ClozureCLでマルチバイト文字のバイト数を判定する - Shammerismでは、encode-string-to-octets を使用したが、mutiple-value-bind を使用しないといけないなど、面倒な点があったので、純粋に文字のバイト数をカウントする処理を実装。UTF-8 のみに対応とい…
どうやらインタプリタとして動作させる場合と、バイナリにした場合とで引数の渡し方が異なるようだ。以下の実装だとスクリプトではうまく引数を処理してくれるが、バイナリにすると引数を取得できなかった。 (defun test () (if (equal 3 (length *unprocess…
compilation - Compiling Binaries with Clozure Common Lisp - Stack Overflowに例がある。Native の実行バイナリにしたいので以下のようにする。 ? (load "test.lisp") #P"/Users/xxx/test.lisp" ? (save-application "test" :toplevel-function #'test :p…