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

Introduction and Info

Hi,  I'm Andrew L. Ressler. The designer of Express Windows (EW).

For those of you using EW I should probably fill you in on a few details.

1. The general philosphy behind the design of EW was to make it easy to port
Genera 7.2 window applications from a Symbolics machine to other lisp
platforms.  In general, the emphasis was on speed, and not on full 100%
functionality.  I know of a couple things one can still do to improve the
speed of EW.  If any of you come up with better ways, please post them
to the world.

2. The license for EW is NOT as restrictive as GNU Emacs.  When
distributing software using Express Windows you need only to distribute
the source to EW.  You can do whatever you want with the code you build
on top of it. (i.e. charge for it, not give sources, etc.)

3. EW was designed under X11R3 and an older version of PCL.  It does work
under newer versions of either with only minor changes.  Most of which
people have already figured out.   

4. EW does not have to have CLOS or PCL to work.  If your application
does not need to build its own classes of windows so that you add
slots or methods to the basic windows, then EW can be compiled to use
defstructs for the windows.  In the original version as shipped this could
provide speedups of 20-30%.

5. EW seems to run faster in Franz Allegro than Lucid Lisp.  I think this
is mainly due to the low levels of CLX being faster.

6. EW was originally written on a Symbolics using Rel 6 style windows.
That's why you may see some obsolete references to symbolics style windows
in the code.  It WILL STILL work as a CLIENT on a symbolics, but it must
drive an X server.  I have not tried the Symbolics X server.  But it works
very nicely driving a SUN.

7. You can easily make your code so that it will port between a Symbolics
and non-Symbolics and back by carefully declaring and using packages.
EW can use the same symbols in the same packages as symbolics if you want.
That way your code can use dw:define-presentation-action and when it is
on a Symbolics it will use Genera and when it is not on Symbolics it will
use EW.

8. EW is not completely compatible with Symbolics Genera.  In some cases,
this is because some people depend on behavior of Genera that was not fully
documented.  In other cases, I had to make tradeoffs so that EW would
perform OK.
  a. For instance, Incremental Redisplay does not try to be clever about
     redisplaying graphics that have been obscured by something that has
     since been erased.  This would not be to hard to add, but would
     certainly slow things down.
  b. Several obscure, seldomly used keywords to the supplied functions are
     not implemented.  This was done to minimize the overall size of EW.

9. EW is coded using Common Lisp - CLX - and CLOS (PCL).  It should not
depend on anything else.  Therefore, If you have a lisp that CLX and CLOS
run in, then you should be able to port EW with almost no changes.
I personally only know of people using EW with Franz and Lucid running on
Sun 3s and 4s.  If anybody has ported to other platforms please let
us know.  For instance, Anybody using it on Apollo machines?

10. Feel free to call me to discuss EW (whether for good or bad) at
301-643-4526.  However, I'm out of town a lot consulting so you may
need to be persistent to get me.  I also read mail on the net 2 weeks
out of 4 at aressler@oiscola.columbia.ncr.com

Thanks for using EW and I hope you like it.

Andrew L. Ressler