Subject: Old conditionals (PDP10, Multics, Lispm, etc.)
From: Stavros Macrakis
Date: Thu, 27 Mar 2003 19:05:13 -0500
> Should we [delete non-CL code] for other parts of the code?
Last time this question came up, I suggested that it would be a good
idea to hang on to the non-CL code for reference and insight for future
non-CL platforms. The argument is that though the CVS tree would retain
it, it would be out of sight and out of mind, so would rarely be looked
at, even when it contained useful information.
Now that I'm more familiar with the codebase, I have changed my mind,
and agree with Ray, CY, and RJF. The overwhelming majority of the
non-CL code is too idiosyncratic to be useful. As Ray suggests, the
interesting or cute stuff can be left in the source as comments. I'm
not sure if there is much of that though. Consider, for example,
FIXFLOAT, which documents the PDP-10, H6180 (Multics), and LispM
floating-point formats. It seems unlikely that any future machine will
have anything like this, and it gives zero useful algorithmic insight.
At most, I'd leave a one-line comment in the code along the lines of
;;; Machine-specific FIXFLOAT for PDP-10, H6180 (Multics), and LispM
in
;;; CVS versions before 22.33.44 (5 May 2003). Documents old
hardware.
Can we make a list of the meaning of the various flags, and which ones
can be considered obsolete? I've prepared a draft, below. This needs
to be reviewed by the rest of you.
Oh, yes, I guess it's obvious that #+ removal should be done in a
separate CVS version for each module where nothing else is changed,
right?
-s
PS Pace RJF, it is *not* true that the PDP-10 code cannot be tested...
there is still an ITS emulator running on the Internet, and I have
played with its Maclisp! It seems to run at about the same speed as a
hardware PDP-10. Not that it's *useful*....
--------------------------------------------------------
*** Forevermore false -- can be removed ***
3600 Symbolics 3600 (LispM model)
68k Motorola 68000 HW -- for Franz on 68k
akcl Austin Kyoto Common Lisp; many Unix platforms; became GCL
cadr LispM model (MIT AI Lab's 1st fully functional version)
fixcons A system which conses fixnums, including Franz apparently
franz Franz Lisp; Vax and 68k; became Allegro
h6180 Honeywell 6180 (HW running Multics)
its Incompatible Time Sharing (M.I.T. OS for PDP-10)
lispm Lisp Machine
lmi Lisp Machine Inc. (LispM variant)
maclisp MacLisp -- ran on PDP-10 (ITS and TOPS-20) and Multics only
multics Multics (OS for H6180 and GE-645)
nil New Implementation of Lisp -- an incomplete Lisp for VAX
oldlispm Surely obsolete, but what did it mean???
pdp10 DEC PDP-10 (HW running ITS and TOPS-20)
symbolics Presumably all Symbolics LispMs?
ti TI Explorer (Lisp Machine -- is it subtype of LispM or not?)
tops-20 DEC OS for PDP-10
utexas obsolete (commented out and only used as (or cl utexas))
vax DEC VAX-11 (HW)
*** May be true -- should be retained ***
allegro Franz, Inc.'s Common Lisp implementation
cl Common Lisp
clisp CLisp
cmu CMUCL
gcl GNU Common Lisp
gmp Uses GNU Multi Precision (for GCL only)
kcl Kyoto Common Lisp -- currently true in GCL -- can kcl->gcl?
lucid Lucid
*** Unknown -- look at case-by-case ***
ansi-cl Always used with GCL; currently NIL
excl Franz Common Lisp ??? ==? Allegro
jpg Jeff Golden -- major maintainer of Macsyma -- usage???
maxii "New" macsyma I/O and system organization -- false in 5.9.0gcl
nocp Use Cursorpos function
shadow-functionp Related to function/macro semantics
tirel3 ???
zlch Something to do with character handling
*** Used rarely and idiosyncratically for commenting-out, debugging,
etc. ***
*** Can almost certainly be removed ***
already-expanded-below
broken
debug
fix-debug
if-you-use-baktrcl
never
never-clean-up-dont-know-how-to-close
obsolete
old
previous
*** Forevermore true ***
gc Supports garbage collection