nanogui: Thread: Microwindows/Nano-X version 0.87pre1 released


[<<] [<] Page 1 of 1 [>] [>>]
Subject: Microwindows/Nano-X version 0.87pre1 released
From: "Greg Haerr" ####@####.####
Date: 2 Dec 1999 08:37:35 -0000
Message-Id: <008301bf3c8e$c425d6e0$15320cd0@gregh>

I have prepared an interim release of Microwindows and Nano-X enhancements,
which
completes many things folks have asked for, version 0.87pre1.  This is available
for
download at:
    ftp://microwindows.censoft.com/pub/microwindows/microwindows-0.87pre1.tar.gz

The major enhancements include:
    o support for running under X11.  Microwindows and Nano-X can now run as a
user-defined (default 640x480) window under X Windows.  The graphics output
and look and feel are identical to framebuffer, but will run on any X display
server.
Compile-time options allow configuration to emulate any of the Microwindows
truecolor or palette modes, in any pixel depth, including grayscale.  This
allows
a Microwindows or Nano-X application to be emulated exactly, regardless of
the host's or target's framebuffer characteristics.  Thanks to Tony Rogvall for
the X11 driver.

    o the client/server network code has been completely rewritten for
_speed_!!!
I studied the X11 Xlib implementation and came up with a similar implementation.
By queuing all client data until an event or reply is required, Nano-X now runs
at extremely high speed.  Unlike the Xlib implementation, Nano-X still runs
synchronously per client, meaning that once a client request packet is sent,
the server waits until the whole packet has arrived until servicing another
client.
This keeps the server code immensely simpler, while still running very quickly.
I urge interested folks to check out the implementation, in
mwin/src/nanox/nxproto.{ch}, and mwin/src/nanox/client.c.

    o routines were added to allow Nano-X to be used as a "passive library",
meaning that an application with it's own main loop can now call into Nano-X
occaisonally (after a select returns a file descriptor that Nano-X is interested
in),
and it will all work.  This was done for Morten.  See mwin/src/nanox/client.c,
functions GrPrepareSelect(), GrServiceSelect(), GrMainLoop().

    o routines were added to get the system palette, and translate an RGB color
to a PIXELVAL palette index.  This was for Richard and the Opera browser.
See mwin/src/nanox/srvfunc.c, functions GrGetSystemPalette, GrFindColor().

    o a null mouse driver was added for systems without a mouse, by setting
NOMOUSE=1 in Makefile.

This is released as 0.87pre1 because I still haven't finished the directory tree
reorganization, and adding Martin's cool X11 graphics makefile configuration
tool.  The client/server code rewrite took alot more time than expected.
I am also working on getting all source on CVS.

Please try it out, and send bug reports and enhancement requests to me or the
nanogui list.

Greg



Subject: Re: Microwindows/Nano-X version 0.87pre1 released
From: Alan Cox ####@####.####
Date: 2 Dec 1999 13:30:57 -0000
Message-Id: <E11tWDV-0000nO-00@the-village.bc.nu>

> at extremely high speed.  Unlike the Xlib implementation, Nano-X still runs
> synchronously per client, meaning that once a client request packet is sent,
> the server waits until the whole packet has arrived until servicing another
> client.
> This keeps the server code immensely simpler, while still running very quickly.

That kills you on a network or a client hang at the wrong moment. Reblocking
the data isnt hard but it can be sorted later. The big thing with reblocking
in nanogui will be keeping the max command length low to avoid large buffers

Subject: Re: Microwindows/Nano-X version 0.87pre1 released
From: Daniel R Risacher ####@####.####
Date: 2 Dec 1999 19:08:17 -0000
Message-Id: <m2vh6huq0x.fsf@alum.mit.edu>

>>>>> "Alan" == Alan Cox ####@####.#### writes:

    >> Nano-X still runs synchronously per client, meaning that once a
    >> client request packet is sent, the server waits until the whole
    >> packet has arrived until servicing another client.  This keeps
    >> the server code immensely simpler, while still running very
    >> quickly.

    Alan> That kills you on a network or a client hang at the wrong
    Alan> moment. 

I would argue that this may not be acceptable.  In addition to being
small and fast, I think one of our design goals should be that it is
robust.  And when I say robust, I mean so robust that I could
comfortably use it for my avionics.  When my GPS reciever locks up
(happened to me recently), it should not lock up the entire
multifunction display.



-- 
               "So, shall we go act innocent now?"

Daniel Risacher                                   ####@####.####
Subject: RE: Microwindows/Nano-X version 0.87pre1 released
From: Greg Haerr ####@####.####
Date: 2 Dec 1999 19:51:46 -0000
Message-Id: <796896539E6CD311B0E70060083DFEFB076EAE@NBA-SLAM.CenSoft.COM>

:     Alan> That kills you on a network or a client hang at the wrong
:     Alan> moment. 
: 
: I would argue that this may not be acceptable.  In addition to being
: small and fast, I think one of our design goals should be that it is
: robust.  And when I say robust, I mean so robust that I could
: comfortably use it for my avionics.  When my GPS reciever locks up
: (happened to me recently), it should not lock up the entire
: multifunction display.

I agree.  It's just more coding.  The previous implementation of
client/server
networking for Nano-X didn't support async reading/writing either.  I'm
happy
to add all this, but the code size will just get bigger and bigger, and the
semantics of exactly how the tcp subsystem work and what errnos
are returned etc start becoming more important.  My initial idea
was to rip all this out of the tested Xlib implementation, but if you look
at it, it's damn near as big as all of Nano-X itself.

Greg
[<<] [<] Page 1 of 1 [>] [>>]


Powered by ezmlm-browse 0.20.