\start
Date: Fri, 27 Oct 2017 15:05:59 -0400
From: Eugene Surowtz <surow@verizon.net>
To: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Catching up on internals

Did anyone get back to you on this?

Gene

\begin{verbatim}On 9/5/2017 9:33 AM, Nicolas Doye wrote:
> Dear all,
>=20
> last time I looked at the internals (20 years ago) the parts I was inte=
rested in were=20
> all written in BOOT. I wrote all my tentative code in BOOT and patched =
one function=20
> (possibly coerceInteractive) to accept it. I have several hundred lines=
 of BOOT code=20
> that may be of interest to people.
>=20
> I can=E2=80=99t remember exactly how one compiles BOOT and adds it into=
 the interpreter=E2=80=99s=20
> path Worse, I can=E2=80=99t remember BOOT=E2=80=99s syntax. I had a pho=
tocopy of the BOOT programming=20
> guide, but, sadly, can=E2=80=99t find it.
>=20
> Is there any online documentation on hacking the Axiom interpreter? Als=
o, if anyone=20
> has a scan of the BOOT document, please can you let me get hold of it s=
omehow?
>=20
> Quick Bio: I was a student of James Davenport=E2=80=99s in the late 90s=
 working on coercion,=20
> Axiom=E2=80=99s type system and Universal Algebra. Since then I=E2=80=99=
ve not been in academia.
>=20
>=20
> *Nic Doye
> *
> email: nic@worldofnic.org <mailto:nic@worldofnic.org>
> web: https://worldofnic.org <https://worldofnic.org/?utm_source=3Demail=
+signature>
> twitter: @nicdoye <https://twitter.com/nicdoye>

\start
Date: Sat, 28 Oct 2017 18:02:45 +0100
From: gad9972 <gad9972@googlemail.com>
To: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Catching up on internals

On 27 Oct 2017 8:05 p.m., "Eugene Surowtz" <surow@verizon.net> wrote:

Did anyone get back to you on this?

Gene


I have been trying to learn more about boot code, I have put the results of
my investigations so far here:

http://www.euclideanspace.com/prog/scratchpad/internals/boot/index.htm

My aim is to try to find a way to convert the interpreter boot code into
SPAD. I know Tim has converted it to Lisp but I would prefer the
interpreter to be written in SPAD.

Martin B

\start
Date: Tue, 31 Oct 2017 08:29:16 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Martin Baker <ax87438@martinb.com>, Tim Daly <daly@axiom-developer.org>, 
	axiom-dev <axiom-developer@nongnu.org>
Subject: Re: [Axiom-developer] Catching up on internals

Martin,

What possible advantage would it be to have the interpreter in Spad?

Assuming you want to move away from Lisp you would also have to
code the compiler in Spad.

Spad is just a domain specific language on top of Lisp. It is useful
for the target domain (mathematics) but not particularly interesting
as a general-purpose language.

Furthermore, the Spad compiler/interpreter relies on certain features
of Lisp that are not part of the Spad language (e.g. dynamically
constructed closures).

As for the boot code, the only existing manual is online at
http://daly.axiom-developer.org/boot.tgz

Boot defeats the use of the full power of Common Lisp.
It would have been useful to use things like defstructs to create
and manipulate data structures rather than raw lists. But using
Boot makes that lie outside the needed mental model and rather
awkward to code.

I understand that Lisp is an epiphany language (i.e. you hate it until
you "get it" and then you love it) but it does have its advantages.
For me, in Axiom, the one key advantage is that there are about 3-ish
people that speak Boot and 300+ people who speak Lisp. So just by
considering the long term existence of Axiom it pays to go with a
language people speak.

Tim

\documentclass{book}
%\newcommand{\VolumeName}{Volume 2: Axiom Users Guide}
%\input{bookheader.tex}
\pagenumbering{arabic}
\mainmatter
\setcounter{chapter}{0} % Chapter 1

\usepackage{makeidx}
\makeindex
\begin{document}


\end{verbatim}
\eject
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{axiom}
\bibliography{axiom}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Index}
\printindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
