From: Parry H. <PJR...@lb...> - 2003-08-07 03:53:37
|
Anyone else run into this? I compiled sbcl and clx from source. I am connecting to an ssh-forwarded server (WinXP/Exceed). * *features* (:CLX-EXT-RENDER :CLX-MIT-R5 :CLX-MIT-R4 :XLIB :CLX :CLX-LITTLE-ENDIAN :CLX-ANSI-COMMON-LISP :ASDF :SB-THREAD :ANSI-CL :COMMON-LISP :SBCL :UNIX :SB-DOC :SB-TEST :IEEE-FLOATING-POINT :X86 :LINUX :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD :C-STACK-IS-CONTROL-STACK) * (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. Thanks. Parry |
From: Christophe R. <cs...@ca...> - 2003-08-07 08:16:54
|
[ I'm Ccing this to portable-clx-devel, because it might be of general interest ] Parry Husbands <PJR...@lb...> 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) |
From: Parry H. <PJR...@lb...> - 2003-08-07 19:38:49
|
Christophe Rhodes <cs...@ca...> writes: > 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. > Ok. Here's the output from xdpyinfo. It seems like you're right. "12" shows up all over the place. % xdpyinfo name of display: localhost:13.0 version number: 11.0 vendor string: Hummingbird Communications Ltd. vendor release number: 7000 maximum request size: 4194300 bytes motion buffer size: 1 bitmap unit, bit order, padding: 8, MSBFirst, 32 image byte order: MSBFirst number of supported pixmap formats: 4 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 8, bits_per_pixel 8, scanline_pad 32 depth 12, bits_per_pixel 12, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 keycode range: minimum 8, maximum 254 focus: window 0xc0000e, revert to PointerRoot number of extensions: 13 BIG-REQUESTS DOUBLE-BUFFER Extended-Visual-Information HCL-DOS-Access HCLMISC HCLxperf LBX SECURITY SHAPE TOG-CUP XC-APPGROUP XC-MISC XInputExtension default screen number: 0 number of screens: 1 screen #0: dimensions: 2680x1050 pixels (612x240 millimeters) resolution: 111x111 dots per inch depths (4): 1, 8, 12, 24 root window id: 0x2c depth of root window: 24 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x20 default number of colormap cells: 256 preallocated pixels: black 0, white 16777215 options: backing-store WHEN MAPPED, save-unders NO largest cursor: 32x32 current input event mask: 0x780000 SubstructureNotifyMask SubstructureRedirectMask FocusChangeMask PropertyChangeMask number of visuals: 4 default visual id: 0x24 visual: visual id: 0x21 class: PseudoColor depth: 8 planes available colormap entries: 256 red, green, blue masks: 0x0, 0x0, 0x0 significant bits in color specification: 8 bits visual: visual id: 0x22 class: PseudoColor depth: 8 planes available colormap entries: 256 red, green, blue masks: 0x0, 0x0, 0x0 significant bits in color specification: 8 bits visual: visual id: 0x23 class: PseudoColor depth: 12 planes available colormap entries: 4096 red, green, blue masks: 0x0, 0x0, 0x0 significant bits in color specification: 8 bits visual: visual id: 0x24 class: TrueColor depth: 24 planes available colormap entries: 256 per subfield red, green, blue masks: 0xff, 0xff00, 0xff0000 significant bits in color specification: 8 bits Here's the backtrace. I'm still learning my way through the debugger and will try to get some more detailed info. * (xlib::open-default-display) 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)). Within the debugger, you can type HELP for help. At any command prompt (within the debugger or not) you can type (SB-EXT:QUIT) to terminate the SBCL executable. The condition which caused the debugger to be entered is bound to *DEBUG-CONDITION*. You can suppress this message by clearing *DEBUG-BEGINNER-HELP-P*. restarts (invokable by number or by possibly-abbreviated name): 0: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel). 1: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop. ("SB-INT:&MORE processing" 269368016 6)[:OPTIONAL] 0] backtrace 0: ("SB-INT:&MORE processing" 269368016 6)[:OPTIONAL] 1: ("varargs entry for XLIB::DISPLAY-CONNECT" #<unavailable argument> :AUTHORIZATION-NAME #<unavailable argument> :AUTHORIZATION-DATA #<unavailable argument>) 2: ("varargs entry for XLIB:OPEN-DISPLAY" "localhost" :DISPLAY 13 :PROTOCOL :INTERNET :AUTHORIZATION-NAME NIL :AUTHORIZATION-DATA NIL) 3: (SB-INT:EVAL-IN-LEXENV 2 (XLIB:OPEN-DEFAULT-DISPLAY) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :WEAKEND-TYPE-RESTRICTIONS NIL :LAMBDA NIL ...))[:EXTERNAL] 4: (INTERACTIVE-EVAL 1 (XLIB:OPEN-DEFAULT-DISPLAY))[:EXTERNAL] 5: (SB-IMPL::REPL-FUN 1 NIL)[:EXTERNAL] 6: (SB-IMPL::TOPLEVEL-REPL 1 NIL)[:EXTERNAL] 7: (SB-IMPL::TOPLEVEL-INIT 0)[:EXTERNAL] 8: ("FLET SB!IMPL::RESTART-LISP") 9: ("foreign function call land") 10: ("foreign function call land") Parry |
From: Parry H. <PJR...@lb...> - 2003-08-07 23:51:06
|
Sorry to follow up to my own post, but... I added 12 to the pixmap-format definition in clx.lisp and things seemed to work (all the CLX programs I tried worked and McCLIM-2003-07-31 to a point). The change in clx.lisp is: (def-clx-class (pixmap-format (:copier nil) (:print-function print-pixmap-format)) (depth 0 :type image-depth) (bits-per-pixel 8 :type (member 1 4 8 12 16 24 32)) (scanline-pad 8 :type (member 8 16 32))) Thanks. |
From: Christophe R. <cs...@ca...> - 2003-08-08 08:08:14
|
Parry Husbands <PJR...@lb...> writes: > Sorry to follow up to my own post, but... Not at all... not when you're helping track down bugs :-) > I added 12 to the pixmap-format definition in clx.lisp and things > seemed to work (all the CLX programs I tried worked and > McCLIM-2003-07-31 to a point). > > The change in clx.lisp is: > > (def-clx-class (pixmap-format (:copier nil) (:print-function print-pixmap-format)) > (depth 0 :type image-depth) > (bits-per-pixel 8 :type (member 1 4 8 12 16 24 32)) > (scanline-pad 8 :type (member 8 16 32))) > > Thanks. OK. There might be later issues in terms of the pixarray functions in image.lisp, but that's a good first step... many thanks. 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) |