[comp.windows.x] More confusion with CLX

jkh@pcsbst.UUCP (jkh) (08/13/89)

Ok, time for some more novice-type annoying questions. I brought up hello.l
under my lisp system (AKCL 1.179) and tried running it. First off, I noticed
that it wouldn't be happy unless I did a (in-package 'xlib :use '(lisp))
so that it could find the CLX functions, no big deal there, though it
seems that this should be more transparent somehow [I will confess now
that I'm a novice to Common Lisp, so I'm not all that sure how packages
work. I'll spend some more time with the grey book]. Doing the in-package
stuff also means that you have to be in the XLIB> package to run (hello-world)
now, which is somewhat confusing at first.

Second, I notice that I can't pass seem to pass any arguments to the
open-display call in hello-world. Since I'm on display 1, this is something
of a bother (display 0 is default)! I'm sure that there's some way of
setting this in CLX, but with no doc... I end up hard-wiring the call to
open-display. Ugh. I almost of wish open-display would accept the more
braindamaged "host:disp.scrn" format for compatibility, but I understand
why it was done the way it was.

Third, when I run it, it sits around for awhile gc'ing and then does
nothing. I discover that it is sitting on its butt waiting for an event.
"Hmmm." I say. "Where's the window?? Grumble. Maybe if I add a
display-force-output call after map-window?" Yes. Now the window shows
up. Wunderbar. But no text. Ok, another force-output goes after the
draw-glpyhs function. Fine. Window and text. Even handles expose events
and goes away cooperatively when I click on it. The question is, why
was all this necessary? Shouldn't the fact that it's waiting for an
event (using whatever mechanism it uses, I don't see anything like
"NextEvent" there, just some confusing event-case loop which I assume
does much the same thing) flush the output queue? Enquiring minds would
definately like to know.


					Jordan-- 
--------
				Jordan Hubbard
				PCS Computer Systeme GmbH
				Munich, West Germany
	UUCP:			pyramid!pcsbst!jkh jkh@meepmeep.pcs.com
	EUNET:			unido!pcsbst!jkh
	ARPA:			jkh@violet.berkeley.edu hubbard@decwrl.dec.com

rws@EXPO.LCS.MIT.EDU (08/15/89)

    First off, I noticed
    that it wouldn't be happy unless I did a (in-package 'xlib :use '(lisp))

That's because the person who wrote it did so on a lispm, where the package
to use gets determined automagically from the magic ;;; comment line at the top
of the file.

    Second, I notice that I can't pass seem to pass any arguments to the
    open-display call in hello-world.

This is just a defect in the demo (most demos have defects :-).

    I'm sure that there's some way of setting this in CLX, but with no doc...

There is rudimentary doc in doc.l.  For someone who understands CL and Xlib,
the interface should be pretty easy to figure out.  There has in the past been
more complete documentation available in draft form via anonymous ftp to
csc.ti.com.

    Third, when I run it, it sits around for awhile gc'ing and then does
    nothing.

The R3 hello.l works fine, without modification, under the Allegro CL on my
machine.  I suspect there are simply problems with CLX under AKCL.