[mcclim-devel] mcclim destorys clx on ACL 6.2

Max-Gerd Retzlaff m.retzlaff at gmx.net
Thu May 4 22:37:54 UTC 2006


Hello,

after having checked out, built and tested cvs mcclim of two months,
one months, 45 days, 37 days, and 41 days ago I've found the commit
that has caused my CLX breakage: "Fix (temporary hack) to use file
sockets in CLX on ACL": http://article.gmane.org/gmane.lisp.mcclim.cvs/418

The comment in this patch says:

+;;; XXX CLX in ACL doesn't use local sockets, so here's a fix. This is gross
+;;; and should obviously be included in Franz' clx and portable clx, but I
+;;; believe that enough users will find that their X servers don't listen for
+;;; TCP connections that it is worthwhile to include this code here
+;;; temporarily.

Of course, it would be nice to not require the X server to run without
"--nolisten tcp" but this patch breaks the whole CLX (not only for
mcclim) on my system.

The function is obviously taken from Franz' version of clx (or both
have a common ancestor) and then an if-construct is added that will,
under certain circumstances, connect to the X server via the FILE
menthod instead of the usual TCP connection.

But in the version in acl/contrib/clx/dependent.cl this function is
prefixed by an #+(and excl clx-use-allegro-streams) while
clx-use-allegro-streams is pushed on the *features* in the Makefile of
clx *only on mswindows*.  If there is no clx-use-allegro-streams a
variant of the function will be taken that uses a file descriptor (see
ftp://ftp.franz.com/pub/contrib/clx/dependent.cl).

As the new version in mcclim/Backends/CLX/port.lisp is only prefixed
by #+allegro it will also replace the latter function, and that is not
very nice as the described problems occur.


Btw. the "fix" will also not work on mswindows if host is either
string= to "" or "unix" as Franz's documentation to make-socket says:

   "The value of the address-family keyword can't be :file on Windows
   because Windows does not support it."

(See http://www.franz.com/support/documentation/6.2/doc/pages/operators/socket/make-socket.htm
 or  http://www.franz.com/support/documentation/8.0/doc/operators/socket/make-socket.htm)


In general it is also all but nice that a function of the package xlib
will be changed in the mcclim backend via a (defun xlib::open-x-stream
...).


Because of these problems I propose to remove the patch from the
mcclim cvs repository again. It would be nice to not require an X
server that listens for TCP connections but this code is too buggy and
mcclim/Backends/CLX/port.lisp is just not the right place for such an
hack.

What do you think?

Bye,
Max

-- 
Max-Gerd Retzlaff <m.retzlaff at gmx.net>       http://blog.matroid.org

For your amusement:
In the Spring, I have counted 136 different kinds of weather inside of
24 hours.
		-- Mark Twain, on New England weather
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/mcclim-devel/attachments/20060505/25f80acd/attachment.sig>


More information about the mcclim-devel mailing list