;;;
;;; README
;;;
;;; Overview documentation for Project CLXS
;;;
;;; Copyright (C) 2005, Alastair Bridgewater
;;;

What we have here is the beginnings of an X server written in
Common Lisp. It is presently comprised almost entirely of rough
edges, is badly incomplete, and is written for SBCL only (due
mostly to the use of SB-BSD-SOCKETS, SERVE-EVENT, and SB-UNIX
in the network interface).

At present, the server will accept connections from client
programs and send them a slightly-bogus connection accept
packet (more bogus for big-endian clients). It will then
start serving requests. Only a small handful of requests have
yet been implemented, and most of them have just been hacked up
to get things minimally working. xlsatoms will display the list
of atoms that the server knows, which is a good sign. The
internal server interfaces are starting to shape up, so we may
soon be at a point where they'll be stable enough to build on.

To try CLXS out, do the following:

    (require :asdf)
    (load "clxs.asd")
    (asdf:operate 'asdf:load-op :clxs)
    (clxs::start-clxs-server)

This will start CLXS listening on localhost:1. If you want it
to listen on a different display, clxs::start-clxs-server has
a keyword argument, :display, for the display number. When
you've had your fun, shut the server down with:

    (clxs::stop-clxs-server)

Do not attempt to start listening on two displays at once.

Those of you who wish to hack on CLXS might do well to read the
spec at http://www.dridus.com/~nyef/clxs-design-notes.txt . It
is somewhat incomplete, but should give a good idea as to what
the major components are and how they fit together.

;;; EOF
