[net.ai] Lisp Portability

Maguire@COLUMBIA-20.ARPA (07/19/83)

From:  Chip Maguire <Maguire@COLUMBIA-20.ARPA>

  [In response to Chris Ryland's message to Editor-People. -- KIL]

        Once again T is Touted as "... the most efficient and portable
Lisp to appear on the market." As one of the people associated with
the development of PSL (Portable Standard LISP) at the University of
Utah, I feel that I must point out that PSL has been ported to the
Apollo, VAX/UNIX, DECSystem-20/TOPS-20, HP9836/???, Wicat/!?!?!?, and
versions are currently being implemented for the CRAY and 370
families.

The predecessor system "Standard LISP" along with the REDUCE symbolic 
algebra system ran on the following machines (as October 1979):  
Amdahl: 470V/6; CDC: 640, 6600, 7600, Cyber 76; Burroughs: B6700,
B7700; DEC: PDP-10, DECsystem-10, DECsystem-20; CEMA: ES 1040;
Fujitsu: FACOM M-190; Hitachi: MITAC M-160, M-180; Honneywell: 66/60;
Honeywell-Bull:  1642; IBM: 360/44, 360/67, 360/75, 360/91, 370/155,
370/158, 370/165, 370/168, 3033, 370/195; ITEL: AS-6; Siemens: 4004;
Telefunken: TR 440; and UNIVAC: 1108, 1110.

  Then experiments began to port the system without having to deal
with a hand-coded LISP system which was slightly or grossly different
for each machine. This lead to a series of P-coded implementations
(for the 20, PDP-11, Z80, and Cray). This then lead via the Portable
LISP Compiler (Hearn and Griss) to the current compiler-based PSL
system.

So lets hear more about the good ideas in T and fewer nebulous 
comments like: "more efficient and portable".

Mishkin@YALE.ARPA@sri-unix.UUCP (07/25/83)

From:  Nathaniel Mishkin <Mishkin@YALE.ARPA>

    Date: Tue 19 Jul 83 15:24:00-EDT
    From: Chip Maguire <Maguire@COLUMBIA-20.ARPA>
    Subject: Lisp Portability

    [...]

    So lets hear more about the good ideas in T and fewer nebulous
    comments like:  "more efficient and portable".

I can give my experience working on a display text editor, U, written
in T. (U's original author is Bob Nix.)  U is 10000+ lines of T code.
Notable U features are a "do what I did" editing by example system, an
"infinite" undo facility, and a Laurel (or Babyl) -like mail system.
U runs well on the Apollo and almost well on VAX/VMS. U runs on
VAX/Unix as well as can be expected for a week's worth of work.
Porting U went well:  the bulk of U did not have to be changed.

- - - - -

Notable features of T:

    - T, like Scheme (from which T is derived) supports closures (procedures
      are first-class data objects).  Closures are implemented efficiently
      enough so that they are used pervasively in the implementation of the
      T system itself.

    - Variables are lexically-scoped; variables from enclosing scopes can
      be accessed from closed procedures.

    - T supports an object-oriented programming style that does not conflict
      with the functional nature of Lisp. Operations (like Smalltalk messages)
      can be treated as functions; e.g. they can be used with the MAP
      functions.

    - Compiled and interpreted T behave identically.

    - T has fully-integrated support for multiple namespaces so software
      written by different people can be combined without worrying about
      name conflicts.

    - The T implementors (Jonathan Rees and Norman Adams) have not felt
      constrained to hold on to some of the less modern aspects of older
      Lisps (e.g. hunks and irrational function names).

    - T is less of a bag of bits than other Lisps. T has a language definition
      and a philosophy.  One feels that one understands all of T after reading
      the manual.  The T implementors have resisted adding arbitrary features
      that do not fit with the philosophy.

    - Other features:  inline procedure expansion, procedures accept arbitrary
      numbers of parameters ("lexpr's" or "&rest-args"), interrupt processing.

All these aspects of T have proved to be very useful.

- - - - -

    The predecessor system "Standard LISP" along with the REDUCE
    symbolic algebra system ran on the following machines (as October
    1979):  Amdahl:  470V/6; CDC: 640, 6600, 7600, Cyber 76; Burroughs:
    B6700, B7700; DEC: PDP-10, DECsystem-10, DECsystem-20; CEMA: ES
    1040; Fujitsu:  FACOM M-190; Hitachi:  MITAC M-160, M-180;
    Honneywell:  66/60; Honeywell-Bull:  1642; IBM: 360/44, 360/67,
    360/75, 360/91, 370/155, 370/158, 370/165, 370/168, 3033, 370/195;
    ITEL: AS-6; Siemens:  4004; Telefunken:  TR 440; and UNIVAC: 1108,
    1110.

Hmm. Was the 370/168 implementation significantly different from the
370/158 implementation?  Also, aren't some of those Japanese machines
"360s".  When listing implementations, let's do it in terms of
architectures and operating systems.

While it may be the case that PSL is more portable than T, T does
presently run on the Apollo, VAX/VMS and VAX/Unix. Implementations for
other architectures are being considered.