Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cs.utexas.edu!milano!titan!janssen From: janssen@titan.SW.MCC.COM (Bill Janssen) Newsgroups: comp.windows.x Subject: CLX under Franz Allegro CommonLisp 3.0 Keywords: CommonLisp Franz CLX Allegro Message-ID: <1102@titan.SW.MCC.COM> Date: 29 Aug 88 04:15:50 GMT Organization: MCC Software Technology Lines: 113 Does anyone have a version of CLX that will work with Franz Allegro CL 3.0? The version on the R2 tape only has "exclfasl" for 2.2, and the version distributed with Allegro 3.0 seems to have an error in the multi-process code. I'd like to put together a binary that I have the source for so that I can track down the error. Thanks for any help. Bill -- Bill Janssen, MCC Software Technology Program 3500 W. Balcones Drive, Austin, TX, 78759 (512) 338-3682 ARPA: janssen@MCC.COM UUCP: {seismo,harvard,gatech,pyramid}!ut-sally!im4u!milano!janssen ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For those who are interested, here's the code and the error trace: ============================================================================== (eval-when (LOAD EVAL) (require 'process) (require 'clx) ) (defvar *queue* nil "Queue of X11 events") (defun event-handler (&rest args) (push args *queue*) t) (defun show-bug (&optional (HOST "localhost") (DISPLAY-NUM 0)) (let* ((Display (xlib:open-display HOST :display DISPLAY-NUM)) (Listener-Process (mp:process-run-function '(:name "X Listener Process" :priority 9) #'(lambda (DISPLAY) (loop (mp:process-wait "Waiting for X Event" #'xlib:event-listen DISPLAY 0) (do ((ctr 0 (1+ ctr))) ((not (xlib:event-listen DISPLAY 0))) (if (< ctr 10) (xlib:process-event DISPLAY :handler #'event-handler)) ;; have processed enough events - give someone else ;; a chance to run for a while (progn (mp:process-allow-schedule) (setq ctr 0) (xlib:process-event DISPLAY :handler #'event-handler)) ) )) Display )) (Font (xlib:open-font Display "6x10")) ) (format t "Opened display ~S~%" Display) (format t "Started process ~S~%" Listener-Process) (format t "Opened font ~S~%" Font) (format t "Sleeping for 10 seconds...~%") (sleep 10) (format t "About to trap to the scheduler...~%") (xlib:font-ascent Font) )) ============================================================================== ~ 4 % cl -qq Allegro CL 3.0 [sun3] (6/15/88 19:23) Copyright (C) 1985-1988, Franz Inc., Berkeley, CA, USA (load "clx-bug.lisp") ; Loading clx-bug.lisp. ; Fast loading /usr/local/lib/cl/3.0/code/process.fasl. ; Fast loading /usr/local/lib/cl/3.0/code/clx.fasl. ; Fast loading /usr/local/lib/cl/3.0/code/foreign.fasl. ; Fast loading /usr/local/lib/cl/3.0/code/mdproc.fasl. ; Fast loading /usr/local/lib/cl/3.0/code/defsys.fasl. ; Foreign loading /usr/local/lib/cl/3.0/code/socket.o. ; Foreign loading /usr/local/lib/cl/3.0/code/excldep.o. T (show-bug) Opened display # Started process # Opened font #s(XLIB:FONT :ID-INTERNAL 8388609 :DISPLAY # :REFERENCE-COUNT 1 :NAME "6x10" :FONT-INFO-INTERNAL NIL :CHAR-INFOS-INTERNAL NIL :LOCAL-ONLY-P T :PLIST NIL) Sleeping for 10 seconds... About to trap to the scheduler... Error: Illegal vector object passed to svref NIL [1] :proc "X Listener Process" is Waiting for X Event. "Initial Lisp Listener" is blocked on read from X server. [1] :zoom :verbose t Evaluation stack: ->call to ERROR REQUIRED arg: EXCL::DATUM = "Illegal vector object passed to svref ~s" &rest EXCL::ARGUMENTS = (NIL) call to SVREF REQUIRED arg: EXCL::VEC = NIL REQUIRED arg: EXCL::INDEX = 13 call to XLIB::WAIT-FOR-EVENT REQUIRED arg: XLIB:DISPLAY = # REQUIRED arg: XLIB::TIMEOUT = 0 REQUIRED arg: XLIB::FORCE-OUTPUT-P = NIL call to XLIB:EVENT-LISTEN REQUIRED arg: XLIB:DISPLAY = # OPTIONAL arg: XLIB::TIMEOUT = 0 [1]