[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Xl1200 as x server

    Date: Thu, 2 Aug 90 18:55 EDT
    From: miller@GEM.cam.nist.gov (Bruce R. Miller)

	Date: Thu, 2 Aug 90 17:35 EDT
	From: Barry Margolin <barmar@Think.COM>

	    Date: Thu, 2 Aug 90 14:23 EDT
	    From: miller@GEM.cam.nist.gov (Bruce R. Miller)

	    Just how does  this work  (for the  X naive)?

	It's all done through the magic of object-oriented programming.  ...
    Well, I didn't mean That naive ! :>  (but thanks anyway)
    What I had in mind was the following:

    Not knowing the X protocol, it  is not inherently obvious that  the full
    protocol used by  TV and  DW CAN  be (practically)  translated into  the
    appropriate X.  

It's actually much simpler than you realize.  The window-system layer was
essentially unmodified except for parts of the locking strategy (you can't
use WITHOUT-INTERRUPTS to do locking if you're using the network).  The
protocol between the window system and the screen has been pretty well
defined in the last couple of releases.  The X client replaces the entire
screen protocol implementation with one which is functionally equivalent
but implemented in terms of X.  All of the crufty old window system kludges
and all of DW goes through this relatively narrow protocol.  I haven't seen
it in about a year, but the last time I saw this code it was called the "X
Screen" system; now you know why.

		    That is to say, although equivalent functionality  could
    most likely be achieved in X at some level in the application, the TV/DW
    protocol has been decomposed into certain operations, some of which  may
    have no equivalents.   Take some random old TV-style application and  it
    is throwing all  sorts of  random messages,  high-level and  low, at the

Yes, but all of those random things you can do to the window stream are
implemented in terms of a relatively limited set of operations; that set is
implemented for both (B&W and color) hardware screens and for X-based
screens.  [In fact, color was the impetus for this protocol's original
implementation; the window<->screen interface was quite muddy before.]

    On the basis of other replies, though, it seems that most things DO work.

The things which don't work have problems with shared data structure or
places which KNOW which screen to expose themselves on, rather than because
the window system doesn't work.  For example, you can't use Zmail because
it's full of special variables.  I think you can't use the Inspector
because it "knows" that the only place you ever want to use the Inspector

    I just dont want to fork over the bucks, install it, and have Macsyma come
    up saying

    Command: Macsyma
    You cannot do plotting in this context.You cannot do plotting in this context.You cannot do plotting in this context.
    This is Macsyma 416.15 for Symbolics 3640 Series Computers.

Macsyma doesn't do anything interesting to the window system.  The last
time I looked at the innards of Macsyma, it, too, was full of special
variables, but perhaps that's been cleaned up when it was converted to
Common Lisp.