Maxima's Lisp, and pocketpcs / history /



Stavros Macrakis wrote:
> Richard--
> 
> 
>>I think that many of the Lisps simply do not exist and
>>their conditionalizations could be removed in the interests
>>of un-obfuscating the code.
> 
> 
> Maxima is based on DOE Macsyma from 1980, as I understand it, so many of
> the ports were presumably tested at the time.  This means that they
> might be useful as indications of what has to be changed for unCommon
> Lisps.

Actually, I doubt if anything that was put into the DOE library
directly from MIT was tested much by MIT, especially as to
portability.

So far as I could tell, Joel Moses / Mike Dertouzos and
MIT's lawyers had the intention to make the submission to
the DOE library about as inconvenient to use as possible so as to not
interfere with sales by Symbolics.  It was only on my insistence
that this code was released at all. And then DOE went along with
a high "tape copying" fee and forbid transmittal from recipient
to recipient. The conditionalizations (for example, for Franz
Lisp "vaxima") were put into the source code by people at Berkeley,
where a copy ran on VAX and Motorola 68000 UNIX systems.  The
#+Franz items remain.  (There was also a complete "vaxima"
distribution in the DOE library, which had been
running at about 50 sites. Complete source of Franz Lisp and
that version of Macsyma were in the vaxima distribution.  The
MIT distribution required huge resources and I think
required VMS, an unpopular operating system.)

Each of the test sites established by Berkeley, with the
reluctant acquiesence of MIT, had to promise to destroy its copy when
MIT licensed the program (as it happens, to Symbolics). Some
of the Berkeley sites were running on VMS, using a UNIX
emulator "Eunice".

   You would have thought
that Symbolics would just issue licenses (for a fee) to each
of these site, but they did not.  Instead it seems that
they saw these sites as potential customers for Lisp Machine sales,
even more so if Symbolics refused to ever license VAX Macsyma.
So they delayed.  They delayed even more the release of the
Sun Macsyma  (which presumably was seen as even lower cost
competition for lisp machines). So far as I know, not a
single installation of the MIT final version,
which was targetted at their "New Implementation of Lisp"
or  NIL system existed outside
MIT.

  When Symbolics eventually released a VAX version
it was not based on NIL, but on Franz / vaxima.

   When MIT's Project
Athena needed a basis for software development institute-wide
and they needed a lisp system to run on VAX systems, they
used Franz Lisp.

  So NIL was a big failure. An example of the "second system
syndrome" (I think Corbato wrote a paper on this topic
about Multics, but Google can't find it...)

  Nevertheless,
when people from MIT write the history of Lisp, they
place NIL up there as being influential. Franz Lisp
is rarely mentioned, though it was part of Berkeley
UNIX for the VAX, and thus included on thousands of
VAX systems as well as Sun systems;
used for several text books, and used for
a number of applications, some of which actually
worked, in addition to Macsyma. But  back to Macsyma...


When Bill Schelter took source code from DOE to make it
compatible with Common Lisp, he had a choice.  He could have
taken the Vaxima distribution and translated as needed the
#+Franz version into a common lisp version.  Instead he tried
something that I thought would be considerably harder, which
was to take the NIL version, a superset of the vaxima code,
which may have been closer to common lisp.  Perhaps the
hope was to get away from dynamic scope and use lexical
scope.

In any case, Schelter pulled off the Common Lisp translation
and packaged it up with some of his own Lisp and C code for
what was then called AKCL  "Austin-Kyoto Common Lisp".

While the Franz Lisp version continued to run, at Berkeley
we had never put much $$ into it and were kind of relieved
to be able to direct the questions and non-research stuff
to the newly formed Franz Inc, which also employed
students who had finished their studies at UCB.

Maintenance of Franz Lisp was not as interesting a direction
as implementing and supporting the new Common Lisp, and
so Franz Inc. went in that direction, supporting two
lisps for a while but then essentially going to the
single "Allegro Common Lisp".


> 
> I included the list with Multics etc. mostly to show how strange the
> list of implementations was... as it happens, there is an ITS system
> available on the Internet for public use (not running on a hardware
> PDP-10, of course, but emulated), so presumably the MacLisp version
> could be tested!

This does not seem too interesting. A virtual PDP-10 would have to
live with a 36-bit cons cell, so 2^(18) words maximum.

> 
> 
>>the conditionalizations for Franz might be "minimal maclisp needed for
> 
> maxima".
> 
> That's a good hint, thanks.  Did this particular version of DOE Macsyma
> run successfully on Franz?
> 
I don't know if anyone really tried taking MIT's final release of
"VAX NIL DOE Macsyma" and running it on the old Franz Lisp.  It was
not something we needed at Berkeley. For the period 1974-1980 or so,
we used the same source code at Berkeley and MIT... for most of
that time we only ran at MIT on PDP-10's.  Starting in 1978 or so
we tried to keep the same source code running on Vaxes at Berkeley
and PDP-10's at MIT; at some point I suspect that the NIL changes were
taken off the common source path.

I have from time to time taken Schelter's code and run it through
Allegro Common Lisp, and it usually works with a few tweaks, and
ignoring some special features like Schelter's C-coded routines
for polynomial factorization.

> 
>>Is there a Franz for the PocketPC?  or Xlisp?
> 
> 
> No idea.  But if we have a crisp definition of the requirements (via
> Franz), then it becomes easier to see what is missing or incompatible in
> other versions.
> 


> 
>>It seems to me that some of the features you need to do computer
>>algebra reasonably well include a large display, keyboard, and
>>off-line storage.
> 
> 
> I think it depends on the goal.  I often want a symbolic calculator to
> do small symbolic calculations, such as expanding some expression as a
> Taylor series (usually just one or two terms), or factoring a small
> polynomial, or solving a small equation, or summing a simple series.  Or
> even just playing with some formula in various ways.  And yes, I agree
> that if your PDA is connected full-time to a network, what runs on the
> PDA itself is less interesting.  Are you volunteering to run the Maxima
> server on the PDA network?
> 
>         -s
>