Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!decvax!harpo!seismo!hao!hplabs!sri-unix!Mishkin@YALE.ARPA
From: Mishkin@YALE.ARPA@sri-unix.UUCP
Newsgroups: net.ai
Subject: Re: Lisp Portability
Message-ID: <3460@sri-arpa.UUCP>
Date: Mon, 25-Jul-83 11:41:50 EDT
Article-I.D.: sri-arpa.3460
Posted: Mon Jul 25 11:41:50 1983
Date-Received: Thu, 28-Jul-83 14:21:01 EDT
Lines: 76

From:  Nathaniel Mishkin 

    Date: Tue 19 Jul 83 15:24:00-EDT
    From: Chip Maguire 
    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.