axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: phd thesis


From: Tim Daly
Subject: [Axiom-developer] Re: phd thesis
Date: Thu, 11 Dec 2003 12:30:42 -0500

Nicolas,

We've discussed setting up a "research" branch of axiom so we can
experiment with new ideas without breaking the build for other users.
I expect there will be several "research" branches because I know of
others who want to experiment with axiom. Indeed, axiom's basic
strength is that it is a very good platform for research.

re: fedora core

The build will almost work fine on Fedora (I'm also a fedora developer
and have been campaigning against the change that breaks axiom). In
order to get around the problem you need to become root and type:

echo 0 >/proc/sys/kernel/exec-shield

Once that is done you can correctly build Axiom as a regular user.
In theory you can download Axiom by incanting:

cd (yourpath)
cvs -d:pserver:address@hidden:/projects/axiom login
cvs -d:pserver:address@hidden:/projects/axiom co axiom
cd axiom
export AXIOM=(yourpath)/axiom/mnt/linux
make

When prompted for a password just hit enter.

However, the gnu website is down due to an audit.


I've uploaded a very late (possibly not the latest) version of
Axiom to my own website. You can get it and build it by:

cd (yourpath)
visit axiom.tenken.org
download the "20031211 sources"
tar -zxf axiom.20031211.tgz
cd axiom
export AXIOM=(yourpath)/axiom/mnt/linux
make

re: solaris, etc

>I also have access to Red Hat Enterprise Linux 2.1 and 3 boxen as well
>as Solaris 8 if there's any porting help needed. I can also build
>RPMs...

The other boxen are interesting, particularly the solaris 8 version.
I've tried to download solaris86 to do a build but that whole process
failed and I'll have to try again. If you want to try a port you 
should only need to modify the top level makefile but you'll almost
certainly need my help with that.

re: boot code, thesis, etc

> Yes I hope so!
>It's not very well written as I was more of a Mathematician than a coder
>at the time and I couldn't get the final version to integrate into the
>interpreter (although a previous, lost version had integrated
>perfectly).

not to worry. the code that lives in axiom was never expected to be
released to public view. in fact a lot of the interpreter code is mine
and it is both bad and undocumented. 

>Yes. I'm  pro-open source (I prefer "Free" software, but open source is
>a good compromise).

umm, yeah, we've had endless discussions about this and all discussion
is now "banned" from the axiom-developer mailing list. I've created an
axiom-legal mailing list just for that purpose. I have email from 
Stallman "blessing" the work as "ok". I had no choice about the
modified BSD license so you'll have to flame Mike Dewar about it.

(On the savannah.nongnu.org/projects/axiom website you can sign up
to join the various mailing lists)

>> 3) would you be willing to allow a modified version of your thesis to
>>    be used in a "literate program" style to document that code?

>Yes. Of course!

I (hope, presume) your thesis is in latex. I'd hate to have to retype it.
Literate programs are basically latex code with 2 additional "tags".
You write a document:

\documentclass{...
\begin{document}
\chapter{...
.....

Then you use a chunk definition tag which begins with '<<', contains
any string, and ends with '>>='. Text starting after this tag is
quoted, collected up, and put in a hash table. The chunk ends when
it finds an '@' in column 1. Thus:

\section
lots of good comments
<<any name>>=
  your code goes here
@
\section

Later you can reference the chunk by referencing the name thus:

<<any name>>

There is a "default" chunk name which will get expanded automatically
called '<<*>>=' thus:

<<*>>=
<<first chunk>>
<<next chunk>>
<<any name>>
@

\end{document}

So, suppose you save the pile above as a "literate program".
I refer to them as "pamphlet" files. Lets say you save it as
"foo.pamphlet". You now need 2 tools, one to extract the 
.tex file (noweave) and one to extract the .lisp file (notangle) thus:

noweave  foo.pamphlet >foo.tex
notangle foo.pamphlet >foo.lisp (or .c or .boot, etc)

Thus the pamphlet file contains both the code and the documentation.
The idea is to take the boot code and your thesis, mix the two,
write the intermediate explanations that go from the theory to
the code chunks, and create a pamphlet file (or many pamphlet files)
that document what the code does and why.

You'll be unique as everyone eventually asks how axiom does
coercion and there has never been a good answer to that question
before.

I'm willing to do all of the dog work on making the pamphlet files
if you'll send me the code and the tex files. Once they are mixed
I can build it into the build process and we can work together on
improving the form and content of the pamphlets.

Tim





reply via email to

[Prev in Thread] Current Thread [Next in Thread]