This directory contains CLX, an X11 client library for Common
Lisp. The code was originally taken from a CMUCL distribution, was
modified somewhat in order to make it compile and run under SBCL, then
a selection of patches were added from other CLXes around the net.

= Features

 - SHAPE extension support (Gilbert Baumann)
 - XFREE86-VIDMODE extension support (Iban Hatchondo)
 - experimental RENDER extension support 
     (Gilbert Baumann and Christian Sunesson)
 - X authority support that works with ssh forwarding (Eric Marsden via CMUCL)
 - OPEN-DEFAULT-DISPLAY function which, as the name suggests, does that (dan)
 - various bug fixes (Iban Hatchondo and a cast of several)
 - a manual in texinfo format (Shawn Betts, Gilbert Baumann)

= Compatibility

This CLX distribution is intended to work under the latest released
version of SBCL - please report the bug if it doesn't.  It should
usually also work with earlier versions back to 0.9.0, and possibly
earlier still, but may need manual adjustment to the clx.asd file (to
remove use of newly-introduced features).

It has also been used as a basis for CLX ports on other Lisp 
implementations, but these instructions are only good for SBCL.  If
you're running something else, you need to know (a) that it builds
with asdf (and asdf-install, if the planets are in alignment) and
(b) what asdf is anyway. might help
you there.  If you've installed this using some non-SBCL Lisp, please
send mail describing the process so that future versions can incorporate
your instructions.

If you are following SBCL CVS and this CLX does not run in it, please
check the darcs repositor{y,ies} for this CLX distribution to see if
your bug has been fixed already.

darcs get # version from which releases are made
 # patches merged by Christophe
 # OpenMCL tree by bryan o'connor?

= Building using asdf-install

* (require 'asdf)
* (require 'asdf-install)
* (asdf-install:install 'clx) ; download and install automatically, or
* (asdf-install:install "clx-x.y.z.tar.gz") ; if you've downloaded already

= Building by hand

If you don't trust asdf-install, here's how to do it manually -

1. Untar this tree somewhere

2. Add a symlink to clx.asd from one of the directories listed in your

   If that makes no sense to you yet, choose one of -

   2a. personal installation:

     $ cd $HOME/.sbcl/systems # you may have to create this directory
     $ ln -s /path/to/clx/source/clx.asd .

   2b. systemwide installations: you need to ask SBCL where it lives

     $ sbcl --noinform --eval '(format t "~A~%" (posix-getenv "SBCL_HOME"))' </dev/null
     $ cd /usr/local/lib/sbcl/site-systems
     $ ln -s /path/to/clx/source/clx.asd .

   * (require 'asdf)
   * (require 'clx)

This will load all the files, after compiling anything that needs compiling

4. To test CLX (and get a small amount of Lisp advocacy), try loading
the file "demo/menu", and then executing the function

   * (load "clx/demo/menu")
   * (xlib::just-say-lisp)

5. If you're new to Lisp, be advised that despite the examples in
demo/, it's generally /not/ considered good style to switch to the
:xlib package and write your code in it.  Spend some time with a
language reference to familiarize yourself with USE-PACKAGE, or 
better yet, the USE option to DEFPACKAGE.

= Known problems:

(none reported)

= Bug reports, new features, patches

Please send bug reports to the portable-clx list:

Note that your post will be held for approval if you are not subscribed.


Heavy lifting by <Raymond.Wiker at>
ASDFized version and ongoing by Daniel Barlow <dan at> 
and (mostly, these days) Christophe Rhodes <csr21 at>