Old conditionals (PDP10, Multics, Lispm, etc.)



> 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