2009-03-15 11 views
2

システムコールを介してGUIを書くために(Steel Bank)Common Lispを使用することについて教えてもらえますか?私はそこにいくつかの図書館があることを知っていますが、これは言語学習の練習なので、私はそれを自分でやりたいと思います。システムコールによる共通Lisp GUIプログラミング

私はKubuntu 8.10とSBCL 1.0.18を開発中です。

ありがとうございました。

答えて

3

あなたはsb-posix-packageを詳しく見てとることができます。しかし、ページsaisのように "パッケージSB-UNIXに含まれる機能はSBCL内部使用のみであり、その内容はバージョンごとに変更される可能性が高い"

もう1つの可能性 - 私が選択するのは、を介してC-syscall(2)命令を組み込んで実行することです。

ウィンドウ付きのGUIを作成するには、少なくともX11を使用してペイントするウィンドウを与えなければなりません。したがって、ウィンドウを作成するためのX11仕様を理解し、UnixドメインソケットにアクセスするためのSyscallsを実装するか、shmデバイスなどを起動する必要があります。

コンソール上にグラフィックスが必要な場合は、フレームバッファ装置/dev/fb*。あなたはそれを使うためにread(2)とwrite(2)のためにioctl(2)とsyscallsが必要ですが、まだこれはX11を使うよりもずっと簡単だと思います。作業)。たぶんあなたはlibFBのソースコード、またはそれを初期化する方法を見るのと同様のものを見てください。

これは本当にやりたいことですか?これはたくさんの仕事ですが、多くを学ぶことになりますが、SBCLについてではなく、Linuxシステムのインフラストラクチャについてもっと詳しく考えています。 SyscallsをSBCLで使用したい場合は、Linux-SyscallsだけでTCPソケットを開こうとするほうが良いかもしれません。それだけで何時間もの時間を要します。

+0

あなたは絵を描きますが、それは確かにスイングと同じくらい簡単ではありません;)別のシステムコールを見てみると、Lispがどのように動作するかを見て、そこに)後で。アドバイスをいただきありがとうございます。 – BlueBadger

3

システムコール経由でGUIを書くことは、Gtk +やQtなどのGUIツールキットを使用しないことを意味しますか?そのような場合は、ソケット経由でXサーバに直接話して、その上にすべてのX11プロトコル(またはCLXを使用)とGUIを実装する必要があります。 X11は複雑なので、これは最も簡単な作業ではありません。

あなたはX11に掘ることにした場合は、仕様のためのいくつかのリンクがあります。http://www.xfree86.org/current/specindex.html http://www.freedesktop.org/wiki/Specifications?action=show&redirect=Standards

関連する問題