X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/792ab9c7660307d98dfede9ea81c0e19f7f8a4df..7be9fc0c9889a4bfaada6ec16e631dee2f024934:/README diff --git a/README b/README index 06932db..d580a7d 100644 --- a/README +++ b/README @@ -1,22 +1,23 @@ -This package contains Common Lisp bindings to GTK+ v2.0. It currently -only works with CMUCL 19a and SBCL. Ports to other CL implementations -may be added later. +This package contains Common Lisp bindings to GTK+ v2.x. It currently +only works with CMUCL 19a and SBCL (0.8.21), but ports to other CL +implementations may be added later. New versions ------------ -The most recent version of this package can be found: in CVS +The most recent version of this package can be downloaded from +http://sourceforge.net/projects/clg. Build instructions ------------------ -1. When building for SBCL (at least 0.8.19 or earlier) you first need - to add callback support, since SBCL does not yet has a native - callback facility. The following instructions are borrowed from the - Common Music installation guide: +1. When building for SBCL you first need to add callback support, + since SBCL does not yet has a native callback facility. The + following instructions are borrowed from the Common Music + installation guide: 1. Download Thomas Burdick's Alien Function package¹ and restore it to a directory on your machine. @@ -30,13 +31,16 @@ Build instructions $ mv /tmp/sbcl.core . - ¹ http://pinhead.music.uiuc.edu/~hkt/sbcl-af-2004-10-22.tgz + ¹ A slightly modified version which works with SBCL 0.8.21 or newer + could be found at + http://jupiter.td.org.uit.no/lisp/sbcl-0.8.21-af.tar.gz -2. Set up paths to reflect your system: +2. Set up paths to match your system: - Add a logical-pathname-translation to the clg root directory in - ~/.cmucl-init.lisp, ~/.sbclrc or some other startup file. Example: + ~/.cmucl-init.lisp, ~/.sbclrc or some other startup file, like + this: (setf (logical-pathname-translations "clg") @@ -47,27 +51,35 @@ Build instructions environment variable before starting lisp. - Make sure ASDF finds the system definition files: - $ cd ~/.clc/systems - $ find -name '*.asd' -exec ln -s {} . \; + + (push + #+sbcl(truename #p"clg:systems") + #+cmu(concatenate 'string (unix-namestring #p"clg:systems") "/") + asdf:*central-registry*) + + When checking out of CVS also do the following: + $ cd + $ mkdir systems && cd systems + $ find .. -name '*.asd' -exec ln -s {} . \; 3. Compile and load the system: (asdf:oos 'asdf:load-op :gtk) - In CMUCL this will currently fail with: + In CMUCL 19a this will fail with: Error in function KERNEL::%REDEFINE-DEFSTRUCT: Redefining class PCL::SLOT-INFO incompatibly with the current definition. Just accept the redefinition (restart 1) to continue building or - loading. To avoid doing this every time clg is loaded, one may - compile and load glib/pcl.lisp in newly started CMUCL process and - save an new core image. + loading. To avoid doing this every time clg is loaded, compile + and load glib/pcl.lisp in newly started CMUCL process and save a + new core image. If you are running SBCL with Slime you need to put the following - line in ~/.swank.lisp to prevent Slime from spawning multiple - threads, since Gtk+ is not thread safe: + in ~/.swank.lisp to prevent Slime from spawning multiple + threads, since GTK+ is not really thread safe: #+sbcl(setq swank:*communication-style* :fd-handler) @@ -81,8 +93,8 @@ Guidelines for using the GTK+ API documentation ----------------------------------------------- Here are some brief guidelines for using the GTK+ API documentation. A -lot of (both intentionally and unintentionally) inconsistencies -exists, so it is also wise to check the source code. +lot of (both intentional and unintentional) inconsistencies exists, +so it is also wise to check the source code. - library prefixes are stripped from all symbols @@ -111,6 +123,5 @@ exists, so it is also wise to check the source code. - Send comments and patches to clg-devel@lists.sourceforge.net or espen@users.sourceforge.net.