[comp.emacs] GNU Elisp -- Summary

Dave Lawrence (12/30/88)

Thanks all; that was by far the best response I've had to a single
question.  Here is basically what I learned:
 
Emacs Lisp and Common Lisp are about as related as man and monkeys.
Darwin says that there is a common ancestor but things went their own
ways from there.  The common ancestor was MIT MACLisp.
 
Emacs Lisp is dynamically scoped; Common Lisp is lexically scoped.
This creates some rather large problems on a fundamental level as far
as compatibility is concerned.
 
Elisp doesn't have floating-point arithmetic.  Some notable absences
from Elisp (for my needs) are defstruct and setf.
 
Cesar Quiroz wrote a Common Lisp library that is included in the
standard distribution; an info file exists in $EMACS/etc/cl.texinfo.
The library is in $EMACS/lisp/cl.el(c).  It is not a complete library;
many things are still lacking and there are a few syntax differences.
Overall though the feel of Common Lisp is there and with it I do
have access to defstruct and a functional setf.
 
Documentation can be had a number of ways.  An ex-Renssealer TA
pointed me to a secretary in the computer-science department at RPI.
(Random Housers' say hi Chip and yes, MTS just got put on the 3090
at the beginning of the week.)  Doug Tiarks <doug@csd4.milw.wisc.edu>
has informed me that:

]A pre-release version of the Emacs lisp manual can be gotten via
]anonymous ftp from a.cs.uiuc.edu:gnuemacs.  It is not complete yet,
]but is far enough to be quite useful. It covers most of the available
]primitives. It is 300-400 pages and requires a TeX dvi filter for
]printing.  I have heard that is is not usable under emacs info due to
]some extentions, but I have not tried it.

One last way to get all of the on-line documentation of functions and
primitives is to push the list returned by apropos through the 
documentation function.  `(mapcar 'documentation (apropos ""))' was 
suggested by Bill Janssen at MCC Software.  Note that it will keep
Emacs busy for a couple of moments.

I was going to use Elisp to write an adventure that would take
advantage of a lot of editing features of GNU Emacs; right now it is a
big debate because my basic structure requires a lot of property
manipulation.  It still is probably going to happen in Elisp, but now
I know what to be prepared for.  My alternatives are Kyoto Common or
Franz and I know nothing about the latter, just that we have it.  No
one commented on it.  
 
And the Emacs name?  Keith Gabryelski <elgar!ag@ucsd.edu>:

]Emacs was an ice-cream parlor around MIT where RMS (the original
]writer of ITS EMACS) hung out.  EMACS use to be a set of macros in
]ITS TECO.  It seems EMACS could also stand for Editor MACroS.
]The former I heard from a friend of RMS (LIZZY@AI).  The latter from
]the ITS EMACS Manual.

(Now I wonder what that ITS stands for ... seems as though we have an
ITS (Information Technology Services) here and I bet it's not the one
meant.)

From _Lisp_, written by Patrick Winston with Berthold Horn at MIT, I
discovered Stallman also wrote Gmacs sometime around 1979.  On a
reference page that mentions a lot of Lisp variants (I hadn't realized
that there were so many; I thought there were around 6 or 7) Elisp is
curiously absent, as is GNU in general.  Considering how deeply
involved GNU is with Lisp, I can only attribute this to the fact that
the book is four years old.

Thank you all for the information you provided.  It has been very
helpful and once again it just helped me learn even more neat stuff.
 
Dave
--
      tale@rpitsmts.bitnet, tale%mts@rpitsgw.rpi.edu, tale@pawl.rpi.edu

saus@venera.isi.edu (Mark Sausville) (12/31/88)

ITS -- Incompatible Timesharing System.

(Don't bother asking how I know this; I don't remember.)

							Mark.
-- 



Mark Sausville		saus@venera.isi.edu	      213-822-1511

University of Southern California   Information Sciences Institute
  4676 Admiralty Way,    Marina del Rey,    California     90292

mike@ists.ists.ca (Mike Clarkson) (01/04/89)

In article <2211@imagine.PAWL.RPI.EDU>, Dave Lawrence writes:
> Emacs Lisp is dynamically scoped; Common Lisp is lexically scoped.
> This creates some rather large problems on a fundamental level as far
> as compatibility is concerned.

However, it shares much in common with Franz lisp in this regard.
They are both direct MACLisp descendents.

> Elisp doesn't have floating-point arithmetic.  Some notable absences
> from Elisp (for my needs) are defstruct and setf.

Note that it doesn't even have 32-bit integers.

> One last way to get all of the on-line documentation of functions and
> primitives is to push the list returned by apropos through the 
> documentation function.  `(mapcar 'documentation (apropos ""))' was 
> suggested by Bill Janssen at MCC Software.  Note that it will keep
> Emacs busy for a couple of moments.

Except on a Cray, you may wish to revise moments to months :-)

-- 
Mike Clarkson					mike@ists.UUCP
Institute for Space and Terrestrial Science	mike@ists.ists.ca
York University, North York, Ontario,		uunet!mnetor!yunexus!ists!mike
CANADA M3J 1P3					+1 (416) 736-5611

pf@csc.ti.com (Paul Fuqua) (01/06/89)

[Your mailer puts "Dave Lawrence" in your From field, making replies
difficult.  - pf]

    Date: Thursday, December 29, 1988  10:54pm (CST)
    From: Dave Lawrence
    Subject: GNU Elisp -- Summary
     
    And the Emacs name?  Keith Gabryelski <elgar!ag@ucsd.edu>:
    
    ]Emacs was an ice-cream parlor around MIT where RMS (the original
    ]writer of ITS EMACS) hung out.  EMACS use to be a set of macros in
    ]ITS TECO.  It seems EMACS could also stand for Editor MACroS.
    ]The former I heard from a friend of RMS (LIZZY@AI).  The latter from
    ]the ITS EMACS Manual.

Emack and Bolios is a chain of ice cream parlors in the Boston area.
The closest one to MIT is in Harvard Square.  Don't go there, though, go
to Toscanini's just off campus, or to Herrell's in Allston -- their ice
cream is much better.  There also used to be an ITS text formatter
called Bolio.
    
    (Now I wonder what that ITS stands for ... seems as though we have an
    ITS (Information Technology Services) here and I bet it's not the one
    meant.)

ITS is the Incompatible Timesharing System, an MIT operating system for
DEC PDPs that started on a PDP-6 in 1966.  MIT-AI and MIT-MC were
PDP-10s running ITS.  The name is a reaction to CTSS, the Compatible
Time Sharing System, which ran on IBM 709s and 7094s at MIT from 1961 to
1973.

While ITS has many good points, its user-interface is a lot like using
adb as your login shell (the command-line interpreter is DDT, the
debugger).  However, some people prefer it to anything else, so it
survives at MIT today on three KS-10s (2020s) and in modified form in
LSI-11 gateway boxes.


Paul Fuqua
Texas Instruments Computer Science Center, Dallas, Texas
CSNet:  pf@csc.ti.com (ARPA too, sometimes)
UUCP:   {smu, texsun, cs.utexas.edu, rice}!ti-csl!pf

ron@ron.rutgers.edu (Ron Natalie) (01/06/89)

    ]Emacs was an ice-cream parlor around MIT where RMS (the original
    ]writer of ITS EMACS) hung out.  EMACS use to be a set of macros in
    ]ITS TECO.  It seems EMACS could also stand for Editor MACroS.
    ]The former I heard from a friend of RMS (LIZZY@AI).  The latter from
    ]the ITS EMACS Manual.

I'd discount the Ice Cream story.  Liz Sommers (LIZZY@AI) certainly never
said it.  Youre last two statements are true.  EMACS is a set of macros
in TECO to do full screen editing.  RMS wrote them.  EMACS stands for
Editor Macros.  Later on several people including Warren Montgomery,
James Gosling, and Jonathon Payne among others did their own implementations
of EMACS for UNIX machines in C, not based on TECO.   Later on after
RMS felt burned by the commercial software industry, he started up GNU
and did his own C EMACS.  Oddly enough, this resmembled Goslign's UNIX
version more than it did RMS's original ITS EMACS.

-Ron

earl@wright.mips.com (Earl Killian) (01/07/89)

In article <Jan.5.18.29.33.1989.160@ron.rutgers.edu>, ron@ron (Ron Natalie) writes:
>...
>Later on after RMS felt burned by the commercial software industry,
>he started up GNU and did his own C EMACS.  Oddly enough, this
>resmembled Goslign's UNIX version more than it did RMS's original ITS
>EMACS.

If you're talking about implementation, maybe.  If you're talking
about the user interface, no way!  Gosmacs is painful to use for a
user of the original Emacs, whereas GNU Emacs is a pleasure.
-- 

wilkes@mips.COM (John Wilkes) (01/07/89)

[GNU emacs and Gosling emacs...]

I heard somewhere that RMS started out with Gosling's PD emacs.  Later,
when Gosling's version became a commercial product, all of the Goscode was
exorcised from the GNU version.  This is probably an urban myth.

-wilkes  

"There is no Editor but EMACS, and TECO is its Prophet."
"I don't care what they say, 36 bits is here to stay."
"It's a new feature?  Gee, TOPS-20 did that 10 years ago."
"etc., etc., etc."
-- 
-- work: {decwrl ames pyramid prls}!mips!wilkes  -OR-  wilkes@mips.com

hedrick@geneva.rutgers.edu (Charles Hedrick) (01/07/89)

>I heard somewhere that RMS started out with Gosling's PD emacs.

Gnu Emacs was written from scratch.  There are major differences in
design between it and Gosling's work.  As far as I know, the only
exception is that a piece of the display code was based on Gosling's.
That code represented a very small part of the total Gnu Emacs.  There
was reason to believe that certain versions of this code were public
domain, so I think RMS had used it in good faith.  However enough
claims to the contrary were made that he decided to rewrite the
relevant code from scratch.  Even after that rewrite, there were some
remaining similarities.  However Unipress (who now have marketing
rights to Gosling's code) said they were satisified, and so the issue
dropped.  (Indeed as far as I know, Unipress hadn't been one of the
complainers in the first place.)

I should note by the way that Gosling said that his Emacs is not and
never was public domain.  There were various disputes as to the exact
status of various versions and pieces of it.  But if you refer to it
as PD, you should at least realize that you are making a rather
dubious statement.  Gnu is of course not public domain either, since
it is covered by the somewhat quixotic Gnu public license.