Re: [Sbcl-help] Type error with sbcl-0.8.2 and clx_0.5.1
Christophe Rhodes <[email protected]> Thu, 07 Aug 2003 09:16:46 +0100
| Newsgroups | gmane.lisp.clx.devel,gmane.lisp.steel-bank.general |
|---|---|
| Message-ID | <[email protected]> |
[ I'm Ccing this to portable-clx-devel, because it might be of general interest ] Parry Husbands <[email protected]> writes: > Anyone else run into this? > > I compiled sbcl and clx from source. I am connecting to an > ssh-forwarded server (WinXP/Exceed). Could you do a couple of things here? The first would be to provide a backtrace from the error call; the second would be to do the equivalent of xdpyinfo(1) on your setup. > * (xlib::just-say-lisp) > debugger invoked on condition of type TYPE-ERROR: > The value 12 > is not of type > (OR (INTEGER 1 1) > (INTEGER 4 4) > (INTEGER 8 8) > (INTEGER 16 16) > (INTEGER 24 24) > (INTEGER 32 32)). > > It seems to be a problem in xlib::display-connect. So my *guess* as to what is happening here is that your X server supports pixmaps with 12 (!?) bits per pixel, which isn't catered for in the CLX source, and sbcl's type checking has picked this up. If this is the case, it shouldn't be too big a deal to fix, I think. The way to find out would be to look at xdpyinfo's output; on my systems, it looks a bit like: (local X server) [...] depth 1, bits_per_pixel 1, scanline_pad 32 depth 4, bits_per_pixel 8, scanline_pad 32 depth 8, bits_per_pixel 8, scanline_pad 32 depth 15, bits_per_pixel 16, scanline_pad 32 depth 16, bits_per_pixel 16, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 depth 32, bits_per_pixel 32, scanline_pad 32 [...] (VNC-over-ssh) [...] depth 1, bits_per_pixel 1, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 [...] If you see an entry with bits_per_pixel 12, that might be our culprit. If not, any other entry in xdpyinfo's output which is 12 might well be a good clue :-) Cheers, Christophe -- http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757 (set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b))) (defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)