LISPUSER

LISPMEMOLisp is a programmable programming language. -- John Foderaro

(top)  (memo)  (rss)

CLISP 2.39 リリース : CLISP + SLIME + LTK パッケージ公開

リリースノート翻訳 ( 原文 ),ついでに Takashi Hiromatsu さんの NTEmacs のバイナリ と組み合わせて簡単に CLISP + SLIME + LTK による GUI までを体験できるパッケージ を用意しました.詳しくは CLISP のページ を御覧ください. 手軽にフルセットの Lisp 開発環境が体験できます!! Happy Hacking!!

今回は何気に Win32 上での I/O の高速化 が大きいと思います.

Win32 上での I/O の高速化

このバージョンから win32aux.d の DoInterruptible が 改良 されました. 今迄割り込み可能な I/O 毎に CreateThread でスレッドを生成するという聞く からに遅いコードから,イベントを使うコード(CreateEvent を試してだめだっ たら CreateThread へ…となりました)になりました.ちなみに作者の Bruno 氏も Windows で動けばいいやと考えて Thread API の 勉強がてら適当に作った と ML で認めています.パッチ作者の Arseny Slobodyuk に感謝!!

効果は I/O 回数に比例するので Bufferd I/O ではあまり影響がないようです が,非 Bufferd I/O (:bufferd を nil) だと大幅に性能が向上しているようです.

Release Name: 2.39

Notes:

Common Lisp は高水準、汎用目的のプログラミング言語です。GNU CLISP はド イツの Karlsruhe 大学の Bruno Haible、Munich 大学の Michael Stoll らに よって開発された Common Lisp の実装です。ANSI Common Lisp に規定された 標準に加えて、多くの拡張を備えた Lisp です。CLISP はほとんどの GNU や UNIX ライクなシステム(Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Tru64, HP-UX, BeOS, NeXTstep, IRIX, AIX, など)、そのほかのシステム (Windows NT/2000/XP, Windows 95/98/ME)で動作します。最小限必要なメモ リは 4MB です。

CLISP は GNU GPL ライセンスの元で配布されるフリーフソフトウェアです。 プロプライエタリな商用ソフトウェアをCLISP と共に配布することも可能 です。

ユーザーインターフェースは英語、ドイツ語、フランス語、スペイン語、オラ ンダ語、ロシア語、デンマーク語が提供されており、実行時に変更することが できます。CLISP はインタプリタとコンパイラ、デバッガ、CLOS、MOP、FFI、 国際化メッセージ、正規表現、ソケットインターフェース、ここに列挙した以 上のものを含んでいます。CLX、Garnet や CLUE/CLIO を通じて X11 インター フェースが利用可能ですし、コマンドラインの行編集機能が readline ライブ ラリによって提供されています。また、CLISP は Maxima や ACL2 といった Common Lisp パッケージを動作させることができます。

より詳細な情報は

<http://clisp.cons.org/>,
<http://www.clisp.org/>,
<http://www.gnu.org/software/clisp/>
<http://clisp.sourceforge.net/>.

ソースコードバイナリは匿名 ftp

<ftp://ftp.gnu.org/pub/gnu/clisp/>

そのミラーサイトから入手できます.

寄贈されたバイナリ配布物:

clisp-2.39-win32-mingw-no-readline.zip

  Jack Unrue <jdunrue@gmail.com> によってビルドされました.
  migw を使ってビルドされ i18n と readline は省されており,
  rawsock, dirkey, bindings/win32 が組み込まれています.
clisp-2.39-win32-with-readline-and-gettext.zip

  Yaroslav Kavenchuk <kavenchuk@gmail.com> 氏によってビルドされました.
  mingw を使ってビルドされており,4 つ全ての標準モジュール
  rawsock, dirkey, wildcard and bindings/win32 が組み込まれています.

2.39 (2006-07-16)

ユーザーに見える変更点

  • SAVEINITMEM 関数は :SCRIPT 引数を受けとれるようになりました.これは, 第一引数をスクリプト名として受けとる機能を無効にできます.また,:DOCUMENTATION 引数は新しい -help-image コマンドライン引数で表示するメッセージを指定できます. 詳細は http://clisp.cons.org/impnotes/image.htmlhttp://clisp.cons.org/impnotes/clisp.html#opt-help-image を参照してください.
  • FFI:UINT64 や FFI:SINT64 は C の long long 型と互換性を持つようになりました.
  • スタックオーバーフロー検知・回復が UNIX 上でうまく動作するようになり ました.このために libsigsegv ライブラリが必要が MS-Windows を含む全 てのプラットフォームで必要になります.CLISP は無限再帰に落ちいった場 合に終了すべきでもクラッシュすべきでもありません.もし,お使いのディ ストリビューションで libsigsegv 無しでビルドされていたら,それは機能 不足としてメンテナーに報告してください.libsigsegv 2.4 が必要なことに 注意してください.libsigsegv 2.3 にはバグがあります!
  • ジェネリック関数にデフォルトのメソッドコンビネーションが指定できるよ うになりました.DEFGENERIC フォームに :METHOD-COMBINATION が明示され なかった場合に,ジェネリック関数クラスの initarg 指定子 :METHOD-COMBINATION キーワードで指定されたものが適用されます.
  • Readline 補完が UTF-8 のような非 1:1 端末エンコーディングでも動作するようになりました.
  • WITH-KEYBOARD は SLIME が *TERMINAL-IO* 場合でも UNIX tty 上で動作するようになりました.
  • Win32 の I/O 操作がより高速になりました.
  • POSIX::FFS, POSIX::PATHCONF 関数が追加されました.
  • 基盤:
    • トップレベルの configure は新しいオプション with-gmalloc を受け付けるようになりました. これは libc が提供する malloc のかわりに GNU malloc の実装を使用します.これは古い HP-UX や 最近の OpenBSD で必要になるかもしれません.詳しい情報は unix/PLATFORMS ファイルを参照してください.
    • CFLAGS 環境変数の値が利用されるようになりました.
  • バグ修正:
    • SOCKET:SOCKET-SERVER :INTERFACE はドキュメント通りの動作をするようになりました.
    • EXT:READ-BYTE-NO-HANG や SOCKET:SOCKET-STATUS はバッファリングされたソケットで使われるようになりました.
    • DESTRUCTURING-BIND (a . b) が巡回を含むリストやドットペアも許すようになりました.
    • ADJUST-ARRAY を長さゼロの文字列に適用できるようになりました.
    • TIME はヒープサイズが 4GB を超えた場合でも正しい結果を報告するようになりました.
    • RAWSOCK 関数は :START/:END 引数と正しく取り扱えるようになりました.
    • BDB:DBC-GET は :READ-COMMITTED や :READ-UNCOMMITTED を受けつけるようになりました.
    • POSIX:GROUP-INFO や POSIX:USER-INFO はエラーを正しく扱えるようになりました.
  • 移植性の向上:
    • DragonFly BSD がサポートされるようになりました.

バージョンアップめでたい。

posted: 2006/07/22 21:42 | permanent link to this entry | Tags: LISP

(top)  (memo)  (rss)