PDP-10 / its

Incompatible Timesharing System
Other
856 stars 81 forks source link

MACSYMA #284

Closed eswenson1 closed 6 years ago

eswenson1 commented 7 years ago

May not have everything we need to run. Most likely don't have sources to build it.

sys; ts a => maxdmp;maxima > maxdmp; maxima 305

larsbrinkhoff commented 6 years ago

I read about Macsyma, and it seems the free version Maxima is based on a 1982 version of Macsyma from MIT. It could be that the Maxima people still have the original version.

eswenson1 commented 6 years ago

Do you have any contacts with the Maxima folks? I worked for Rich Zippel and Barry Trager (both at MIT Project Mac) and they are both fraternity brothers of mine. We all three (and many, many more) worked on Macsyma at LCS. I wonder if they know anything?

larsbrinkhoff commented 6 years ago

There's an active mailing list at sourceforge.net. I'll try that.

There's a git repository, but the history only goes back to 2000.

eswenson1 commented 6 years ago

I did just send email to both Rich Zippel and Barry Trager. We'll see if either responds to me.

larsbrinkhoff commented 6 years ago

Good. I sent a email to Joel Moses.

eswenson1 commented 6 years ago

That was a good idea. I'd also be keen on getting Multics Macsyma sources.

larsbrinkhoff commented 6 years ago

Also to Richard Fateman.

ams commented 6 years ago

I have an odd ball version of Macsyma for the Lisp Machine. Absolutely no idea if it works, how far away from MACLISP it is, if this version ran on ITS, etc. It is from the early 80s.

eswenson1 commented 6 years ago

Can you pass it to us and i’ll try to build on ITS? Chances are pretty good that it is a fork of MC’s version and probably maintains it’s conditionalizations.

ams commented 6 years ago

Of course! I don’t have direct access to my machine until Sunday (January 21st, 2018), but will dump it somewhere then.

larsbrinkhoff commented 6 years ago

Some tidbits:
http://bitsavers.org/pdf/mit/macsyma/

larsbrinkhoff commented 6 years ago

I haven't heard from Moses or Fateman yet.

eswenson1 commented 6 years ago

I heard back from Rich Zippel, but didn’t learn anything new. I’m waiting to hear back after a follow-up message. He seemed to think all the sources would be in MC tapes. But I thought we’ve looked for them and not found them.

-- Eric

On Jan 21, 2018, at 22:17, Lars Brinkhoff notifications@github.com wrote:

I haven't heard from Moses or Fateman yet.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

ams commented 6 years ago

Decided to redefine Sunday (that means, please check your emails)

larsbrinkhoff commented 6 years ago

Plenty of #+MACLISP, #+ITS, and #+PDP10 in your dump, @ams.

Also #+MULTICS and #+H6180, @eswenson1.

larsbrinkhoff commented 6 years ago

List of conditionals used:

larsbrinkhoff commented 6 years ago

@ams The file timestamps are from 2017. Do you have the original timestamps somewhere else? I'm just curious what age the oldest and newest files are.

larsbrinkhoff commented 6 years ago

Also, what do you mean by "oddball version"?

larsbrinkhoff commented 6 years ago

Is there a manual? Is there a tutorial?

Make links from doc/DDT.md.

ams commented 6 years ago

@larsbrinkhoff By odd ball I mean I don’t know how much it might have been modified from any original dump. There is no version information that makes sense (e.g., patch files say that this is Macsyma 1). You can check when the patch files were generated for a hint in from when they are.

I’ll dig up the file time stamps for this later today.

eswenson1 commented 6 years ago

It is pretty likely no one removed conditionals—however, as time marched on, it is unlikely people kept old conditionalizations up-to-date. Still, it should give us some hope.

-- Eric

On Jan 22, 2018, at 22:41, Lars Brinkhoff notifications@github.com wrote:

Plenty of #+MACLISP, #+ITS, and #+PDP10 in your dump, @ams.

Also #+MULTICS and #+H6180, @eswenson1.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ams commented 6 years ago

I created an issue with the original time stamps: https://github.com/PDP-10/macsyma/issues/1

larsbrinkhoff commented 6 years ago

Thanks!

eswenson1 commented 6 years ago

I have managed to find and compile a lot of macsyma, by the way. Don't have anything near working yet, but at least I'm able to make some progress. There are some sources that I haven't been able to find, but I don't (yet) know how critical they are.

ams commented 6 years ago

Do you have a list of the missing ones? I can do some digging on my side.

larsbrinkhoff commented 6 years ago

Excellent!

eswenson1 commented 6 years ago

Here are the ones I haven't been able to locate.  The ones with

and a filename are those for which the source is missing but where we have a FASL file. CFFK; APLOT2 >            CFFK; TEKPLT >            ELLEN; PRIMER >            JPG; MEDIT >            LIBMAX; LMMAC >            LIBMAX; OPSHIN >        ./ai/libmax/opshin.fasl MAXSRC; AR >              MAXSRC; ARDS >            ./ai/macsym/ards.fasl MAXSRC; ARRAY >            MAXSRC; CHAR >            MAXSRC; DESCRI >        MAXSRC; ERMSGM >        ./ai/maxdmp/ermsgm.fasl MAXSRC; H19 >              ./ai/macsym/h19.fasl MAXSRC; MTRACE >        ./ai/macsym/mtrace.fasl MAXSRC; MTREE >            ./ai/macsym/mtrace.fasl MAXSRC; OUTEX >            ./ai/macsym/outex.fasl MAXSRC; VT100 >            ./ai/macsym/vt100.fasl PAULW; EEZ >              ./ai/macsym/eez.fasl PAULW; NEWFAC >            ./ai/macsym/newfac.fasl RAT; EZGCD >            ./ai/macsym/ezgcd.fasl RAT; POIS2 >            ./ai/macsym/pois2.fasl RAT; POIS3 >            ./ai/macsym/pois2.fasl RAT; RATLAP >            ./ai/maxdmp/ratlap.fasl RAT; RATPOI >            ./ai/macsym/ratpoi.fasl TENSOR; ITENSR >        ./ai/macsym/itensr.fasl TEST; XBATCH >             TRANSL; LJOB >            ./ai/alan/ljob.74 TRANSL; MCOMPI >        ./ai/macsym/mcompi.fasl TRANSL; MTAGS >            ./ai/macsym/mtags.fasl TRANSL; TRDEBG >        ./ai/macsym/trdebg.fasl WGD; MPRINT >              ZZ; APROPO >            From looking at the maxerr; directory in the ai tapes, I can see that ITS had later versions of most of the files that were on Alfred's macsyma tape (from Symbolics).  This is interesting -- I would have thought that the Symbolics versions would have had greater version numbers. In any case, I'm going to have a mixture of source/fasl files between those files on the Symbolics (I'm assuming this is where that tape came from, Alfred) tape and those files from the ai/mc tapes. Still not at all clear that we have enough to get a macsyma working.... -- Eric On 01/25/2018 09:44 PM, Alfred M. Szmidt wrote: > > Do you have a list of the missing ones? I can do some digging on my side. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > , or > mute the thread > . >
eswenson1 commented 6 years ago

One of the missing files: libmax; lmmac > causes tons of stuff to not load or compile. I need to find that one.

It appears to define the following:

(DEFVAR LMMAC-FERROR-USE ±708 (DEFVAR LMMAC-CHECK-ARG-USE ²072 (DEFMACRO CHECK-ARG ²121 (DEFMACRO FIRST ²618 (DEFMACRO SECOND ²659 (DEFMACRO THIRD ²700 (DEFMACRO FOURTH ²744 (DEFMACRO FIFTH ²786 (DEFMACRO SIXTH ²835 (DEFMACRO SEVENTH ²887 (DEFMACRO REST1 ²938 (DEFMACRO REST2 ²976 (DEFMACRO REST3 ³015 (DEFMACRO REST4 ³055 (DEFMACRO / ³097 (DEFMACRO / ³161 (DEFMACRO NEQ ³228 (DEFMACRO / ³268 (DEFMACRO MAKE-LIST ³325 (DEFMACRO AREF ³411 (DEFMACRO ASET ³484 (DEFMACRO MAKE-ARRAY ³586 (DEFSETF AREF ³655 (DEFMACRO EVERY ´220 (DEFMACRO SOME ´579 (DEFMACRO FSYMEVAL µ099 (DEFMACRO FMAKUNBOUND µ279 (DEFMACRO FBOUNDP µ594 (DEFMACRO FSET µ638 (DEFMACRO FSYMEVAL µ712 (DEFMACRO FMAKUNBOUND µ763 (DEFMACRO MAKE-STRING-FROM-SYMBOL ¶283 (defmacro make-string-from-symbol ¶394 (DEFMACRO MAKE-STRING-FROM-CHARS ¶525 (defmacro array-dimension-n ¶907 (DEFMACRO INTERNEDP ·776 (DEFMACRO STRINGP ·907 (DEFMACRO STRING-LENGTH ¸161 (DEFMACRO STRING-EQUAL ¸214 (DEFMACRO READ-FROM-STRING ¸278 (DEFMACRO STRING-UPCASE ¸346 (DEFMACRO STRING-DOWNCASE ¸456 (DEFMACRO STRING-REVERSE ¸567 (DEFMACRO STRING-NREVERSE ¸665 (DEFMACRO MAKE-SYMBOL ¹140 (DEFMACRO GET-PNAME ¹345

Some of these, of course, are pretty easy to implement. Others, I'm not sure about. -- Eric

On 01/25/2018 11:40 PM, Eric Swenson wrote:

Here are the ones I haven't been able to locate.  The ones with

and a filename are those for which the source is missing but where we have a FASL file. CFFK; APLOT2 >            CFFK; TEKPLT >            ELLEN; PRIMER >            JPG; MEDIT >            LIBMAX; LMMAC >            LIBMAX; OPSHIN >        ./ai/libmax/opshin.fasl MAXSRC; AR >              MAXSRC; ARDS >            ./ai/macsym/ards.fasl MAXSRC; ARRAY >            MAXSRC; CHAR >            MAXSRC; DESCRI >        MAXSRC; ERMSGM >        ./ai/maxdmp/ermsgm.fasl MAXSRC; H19 >              ./ai/macsym/h19.fasl MAXSRC; MTRACE >        ./ai/macsym/mtrace.fasl MAXSRC; MTREE >            ./ai/macsym/mtrace.fasl MAXSRC; OUTEX >            ./ai/macsym/outex.fasl MAXSRC; VT100 >            ./ai/macsym/vt100.fasl PAULW; EEZ >              ./ai/macsym/eez.fasl PAULW; NEWFAC >            ./ai/macsym/newfac.fasl RAT; EZGCD >            ./ai/macsym/ezgcd.fasl RAT; POIS2 >            ./ai/macsym/pois2.fasl RAT; POIS3 >            ./ai/macsym/pois2.fasl RAT; RATLAP >            ./ai/maxdmp/ratlap.fasl RAT; RATPOI >            ./ai/macsym/ratpoi.fasl TENSOR; ITENSR >        ./ai/macsym/itensr.fasl TEST; XBATCH >             TRANSL; LJOB >            ./ai/alan/ljob.74 TRANSL; MCOMPI >        ./ai/macsym/mcompi.fasl TRANSL; MTAGS >            ./ai/macsym/mtags.fasl TRANSL; TRDEBG >        ./ai/macsym/trdebg.fasl WGD; MPRINT >              ZZ; APROPO >            From looking at the maxerr; directory in the ai tapes, I can see that ITS had later versions of most of the files that were on Alfred's macsyma tape (from Symbolics).  This is interesting -- I would have thought that the Symbolics versions would have had greater version numbers. In any case, I'm going to have a mixture of source/fasl files between those files on the Symbolics (I'm assuming this is where that tape came from, Alfred) tape and those files from the ai/mc tapes. Still not at all clear that we have enough to get a macsyma working.... -- Eric On 01/25/2018 09:44 PM, Alfred M. Szmidt wrote: > > Do you have a list of the missing ones? I can do some digging on my side. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > , or > mute the thread > . >
larsbrinkhoff commented 6 years ago

@b4, please keep an eye out for PDP-10 MACSYMA files. Especially from MIT.

eswenson1 commented 6 years ago

It turns out that this might be ok (but not great) because we do have lmmac.fasl.  So this isn't the show-stopper I thought it was.

-- Eric

On 01/26/2018 12:19 AM, Eric Swenson wrote:

One of the missing files: libmax; lmmac > causes tons of stuff to not load or compile. I need to find that one.

It appears to define the following:

(DEFVAR LMMAC-FERROR-USE ±708 (DEFVAR LMMAC-CHECK-ARG-USE ²072 (DEFMACRO CHECK-ARG ²121 (DEFMACRO FIRST ²618 (DEFMACRO SECOND ²659 (DEFMACRO THIRD ²700 (DEFMACRO FOURTH ²744 (DEFMACRO FIFTH ²786 (DEFMACRO SIXTH ²835 (DEFMACRO SEVENTH ²887 (DEFMACRO REST1 ²938 (DEFMACRO REST2 ²976 (DEFMACRO REST3 ³015 (DEFMACRO REST4 ³055 (DEFMACRO / ³097 (DEFMACRO / ³161 (DEFMACRO NEQ ³228 (DEFMACRO / ³268 (DEFMACRO MAKE-LIST ³325 (DEFMACRO AREF ³411 (DEFMACRO ASET ³484 (DEFMACRO MAKE-ARRAY ³586 (DEFSETF AREF ³655 (DEFMACRO EVERY ´220 (DEFMACRO SOME ´579 (DEFMACRO FSYMEVAL µ099 (DEFMACRO FMAKUNBOUND µ279 (DEFMACRO FBOUNDP µ594 (DEFMACRO FSET µ638 (DEFMACRO FSYMEVAL µ712 (DEFMACRO FMAKUNBOUND µ763 (DEFMACRO MAKE-STRING-FROM-SYMBOL ¶283 (defmacro make-string-from-symbol ¶394 (DEFMACRO MAKE-STRING-FROM-CHARS ¶525 (defmacro array-dimension-n ¶907 (DEFMACRO INTERNEDP ·776 (DEFMACRO STRINGP ·907 (DEFMACRO STRING-LENGTH ¸161 (DEFMACRO STRING-EQUAL ¸214 (DEFMACRO READ-FROM-STRING ¸278 (DEFMACRO STRING-UPCASE ¸346 (DEFMACRO STRING-DOWNCASE ¸456 (DEFMACRO STRING-REVERSE ¸567 (DEFMACRO STRING-NREVERSE ¸665 (DEFMACRO MAKE-SYMBOL ¹140 (DEFMACRO GET-PNAME ¹345

Some of these, of course, are pretty easy to implement. Others, I'm not sure about. -- Eric

On 01/25/2018 11:40 PM, Eric Swenson wrote:

Here are the ones I haven't been able to locate.  The ones with

and a filename are those for which the source is missing but where we have a FASL file. CFFK; APLOT2 >            CFFK; TEKPLT >            ELLEN; PRIMER >            JPG; MEDIT >            LIBMAX; LMMAC >            LIBMAX; OPSHIN >        ./ai/libmax/opshin.fasl MAXSRC; AR >              MAXSRC; ARDS >            ./ai/macsym/ards.fasl MAXSRC; ARRAY >            MAXSRC; CHAR >            MAXSRC; DESCRI >        MAXSRC; ERMSGM >        ./ai/maxdmp/ermsgm.fasl MAXSRC; H19 >              ./ai/macsym/h19.fasl MAXSRC; MTRACE >        ./ai/macsym/mtrace.fasl MAXSRC; MTREE >            ./ai/macsym/mtrace.fasl MAXSRC; OUTEX >            ./ai/macsym/outex.fasl MAXSRC; VT100 >            ./ai/macsym/vt100.fasl PAULW; EEZ >              ./ai/macsym/eez.fasl PAULW; NEWFAC >            ./ai/macsym/newfac.fasl RAT; EZGCD >            ./ai/macsym/ezgcd.fasl RAT; POIS2 >            ./ai/macsym/pois2.fasl RAT; POIS3 >            ./ai/macsym/pois2.fasl RAT; RATLAP >            ./ai/maxdmp/ratlap.fasl RAT; RATPOI >            ./ai/macsym/ratpoi.fasl TENSOR; ITENSR >        ./ai/macsym/itensr.fasl TEST; XBATCH >             TRANSL; LJOB >            ./ai/alan/ljob.74 TRANSL; MCOMPI >        ./ai/macsym/mcompi.fasl TRANSL; MTAGS >            ./ai/macsym/mtags.fasl TRANSL; TRDEBG >        ./ai/macsym/trdebg.fasl WGD; MPRINT >              ZZ; APROPO >            From looking at the maxerr; directory in the ai tapes, I can see that ITS had later versions of most of the files that were on Alfred's macsyma tape (from Symbolics).  This is interesting -- I would have thought that the Symbolics versions would have had greater version numbers. In any case, I'm going to have a mixture of source/fasl files between those files on the Symbolics (I'm assuming this is where that tape came from, Alfred) tape and those files from the ai/mc tapes. Still not at all clear that we have enough to get a macsyma working.... -- Eric On 01/25/2018 09:44 PM, Alfred M. Szmidt wrote: > > Do you have a list of the missing ones? I can do some digging on my > side. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > , > or mute the thread > . >
ams commented 6 years ago

@ewswenson1 could you please not quote the whole previous thread? :-) It makes it suuuper hard to read on small devices.

larsbrinkhoff commented 6 years ago

@ams stop tinkering with your phone and get yourself to a real computer. :-)

b4 commented 6 years ago

As best I can tell, I have one or two.

Sent from my iPhone

On Jan 26, 2018, at 00:21, Lars Brinkhoff notifications@github.com wrote:

@b4, please keep an eye out for PDP-10 MACSYMA files. Especially from MIT.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ams commented 6 years ago

I wasn't able to find any of those file in my stash. But rewriting the libmax; lmmac file shouldn't be to complicated.

eswenson1 commented 6 years ago

Yeah, I can guess what most of those macros do. In the mean time, I’m using the FASL. We’ll probably find we need to reconstruct a bunch of source from FASL files.

eswenson1 commented 6 years ago

@b4 Were you able to locate any of the missing Macsyma files I referenced earlier in this thread?

b4 commented 6 years ago

(FILECREATED "23-OCT-79 23:20:23" ^F^DLMMAC.;2^F^A 37590

Not looking like I have any.

eswenson1 commented 6 years ago

Well, I've made a lot of progress, but may have hit a brick wall. I need to find MAXSRC; ERMSGM > and JPG; MEDIT >. There are other missing files, but these have blocked me so far.

By the way, I found that ALJABR; COMPLR > is the LISP source that provides the steps for building Macsyma. Simply start COMPLR, load it, and run (MSCOMP). Unfortunately, that bombs due to missing sources (two above are examples). You can $P to continue, but, of course, you won't get a working Macsyma.

Also, you won't succeed just doing the above unless you have a bunch of files in the right places and some of them compiled already.

I'll keep hacking, but it may be that we'll be stuck if we don't either fine the missing sources or reconstruct them. Some of these have FASL files, so we can just put the FASL files in the right places and if we have enough sources and FASL files, we might be able to run Macsyma -- that is my current effort. I'll let you know how it goes.

ams commented 6 years ago

Can we backport the code from DOE Macsyma?

eswenson1 commented 6 years ago

That will be my tact of last resort. I have the first commit to the sourceforge repo of MAXIMA, which shows many filenames matching those from ITS Macsyma. Of course, the contents have been converted to Common Lisp, but one could, in theory, backport to MacLisp.

It would sure be nice if we could uncover the original ITS Macsyma that DOE started with....

larsbrinkhoff commented 6 years ago

Maybe the CSAIL tape archive people can dig up something?

eswenson1 commented 6 years ago

Where is that?

larsbrinkhoff commented 6 years ago

Well, there's this: http://people.csail.mit.edu/devon/archive/

And I know Pandora Berman and Hal Abelson are more or less involved. Also Brad Parker has been able to extract file files from MIT in the past.

But we have been in touch with all of the above, and it's not clear how much there is or how to get at it.

eswenson1 commented 6 years ago

I've managed to compile all the Macsyma sources I can find. I edited the "ALJABR;COMPLR >" lisp file to comment out those modules for which we don't (yet?) have source. The process completes (and the FASL and UNFASL files are created.

I'm now trying to get the loader to load the FASL files and create a dumpable image. This is currently failing. It appears that one or more of the compiled FASL files are not "good" (loading them gives unresolved references to functions/defsets/macros). I'm steadily working through each of those, recompiling manually and trying to produce FASL files that load without error. Some of the previously-compiled files just needed to get recompiled after required macro files were recompiled and placed in the right places. I'm currently stuck on one file (MAXDMP; COMPAR FASL), that I haven't managed to get compiled such that it loads without unresolved references. Still working on it.

larsbrinkhoff commented 6 years ago

Thanks Eric. I'm following this with interest!

larsbrinkhoff commented 6 years ago

Eric is away from hit GitHub password at the moment, so I'll pass on the word that he has now managed to build MACSYMA and has it running in ITS!

ams commented 6 years ago

Nice!!!

eswenson1 commented 6 years ago

There, are, however, some decisions to make. What I did was to compile all the sources I could find and use FASLs for the few missing sources. I used sources from various sources, including that Symbolics tape from @ams. Many of the sources from that tape were older than FASLs I could find on ITS tapes. So one question to resolve is this: should we include in our DB ITS, the latest FASLs (which means very few sources) or the mixture (older version of Macsyma)?

eswenson1 commented 6 years ago

When I dumped Macsyma (to get TS MACSYM), i used the INCORE (binary) file from the AI dump. This file is an input file used by the loader in ALJABR; LOADER >. I haven’t explored, yet, how this file is produced. I’d like to resolve that before committing changes.

eswenson1 commented 6 years ago

Apparently, in order to build Macsyma, you need a bunch of FASL files, but also the UNFASL files and the files (whatever they are) from the MAXERR; and MAXER1; directories. These are all outputs of the Macsyma compilation process. Since we don’t have all the sources, I had to grab UNFASL and those MAXERR/MAXER1 files from AI tapes — which didn’t necessarily match in version. So, while the load and dump of Macsyma worked, and I get the appropriate prompt when I start it up, and the few simple expressions I’ve tried so far result in correct answers, I have no clue what will misbehave as a result of the mix-and-match compromise.