request for info on extensible editor

JQJ at SU-SCORE.ARPA JQJ at SU-SCORE.ARPA
Fri Jul 1 15:03:11 AEST 1983


From:  J.Q. Johnson <JQJ at SU-SCORE.ARPA>

Michael Bloom's suggestion that those looking for a portable emacs
look to to lisp-based emacs systems neglects somewhat the problem of
incompatible lisps.  If portability is your goal, what good does it
do to have a lisp-based Emacs which depends on the idiosyncratic
features of a particular lisp implementation?

Bloom mentions several lisp-based editors, among them Honeywell
Emacs, ZMACS, the T editor, and the NIL editor.  It should be noted
that Honeywell Emacs and ZMACS are heavily dependent on their
particular operating system environments, especially for window
management (the Honeywell Emacs is particularly ill suited for ports
to other systems since, as the first lisp Emacs, it is not nearly as
cleanly implemented as the others).  The NIL editor requires a lisp
that includes an efficient flavors implementation.  None of these, I
bet, would run under a lisp such as Franz without substantial
development effort.  I am not familiar with the T editor, but note
that T is lexically scoped, and hence that a large program written in
T is also likely to have portability problems to a more traditional
lisp such as Franz.

And once you have an editor that runs under Franz Lisp, what good
does that do you for portability?  Franz Lisp, with its large C
kernel and VAX-oriented code generation, would be rather hard to port
to other systems.  So far as I know, it has not been ported to any
non-VAX system (although Wollongong group claim to be working on a
port to Perkin Elmer Unix).  Granted, Franz is a small lisp, and it
is easier to move Franz programs to Maclisp or Common Lisp than vice
versa, but the effort of moving a large program such as an editor
from one lisp to another is guaranteed to be non-trivial.  Porting
Franz to a different architecture would almost certainly be more work
than porting Gosling Emacs, since to port Gosling Emacs all you
really need is a decent C compiler, while to port Franz you need a C
compiler PLUS you need to rewrite the Liszt (Franz compiler) code
generator.

Now conceivably Franz is not the right target lisp for your editor
implementation language.  If you really want portability, perhaps you
should write an editor in PSL (portable standard lisp).  That in fact
is what Martin Griss and the folks at Utah did; NMODE (or whatever it
is currently called) is an Emacs-like editor written in a lisp
dialect that was explicitly designed to be portable, and for which
implementations exist for DEC-20, VAX, M68000, and several other
computers.

PSL is not a very powerful lisp either, and it is not clear it will
catch on widely.  An alternative is Hemlock, the CMU Common Lisp
editor.  Many people (I'm not one of them, I'm afraid) believe that
Common Lisp will become THE standard lisp in the late '80s, and hence
that an editor written in pure Common Lisp stands a good chance of
being widely portable.  We'll see....

Alternatively, why not just port Gosling or CCA Emacs?  Each of these
is written pretty much entirely in C, and so could be ported to any
large-address-space system that had a C compiler (a Unix operating
system would help, but is not essential).  In fact, Gosling Emacs has
been successfully ported to several different M68000 systems (Unisoft
Unix, SMI Unix (aka 4.1C BSD for 68000), and various standalone SUN
terminal configurations.  I'd not be at all surprised to hear that
someone had ported it to the Amdahl (IBM 370 lookalike) running Unix!
-------



More information about the Comp.unix.wizards mailing list