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 MishkinDate: 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.