diff --git a/book/2004-08.txt b/book/2004-08.txt
new file mode 100644
index 0000000..d7122cd
--- /dev/null
+++ b/book/2004-08.txt
@@ -0,0 +1,6139 @@
+\start
+Date: Sun, 1 Aug 2004 04:23:19 -0400
+From: "Bill Page" <bill.page1@sympatico.ca>
+To: <daly@idsi.net>
+Subject: [Axiom-developer] Reduce does gnuplot
+Cc: bob@mcelrath.org
+
+Tim,
+
+I have an illustration here
+
+  http://test.axiom-developer.org/Members/billpage/ReduceTest1
+
+of graphics output generated by REDUCE which has a nice
+interface to gnuplot
+
+  http://www.gnuplot.info
+
+"Out of the box" gnuplot can create postscript output files.
+These can then be rendered by LatexWiki as graphics on the
+web page. Because of the way LatexWiki operates, these graphics
+will always be rendered in greyscale.
+
+After a bit of trouble updating and configuring gnuplot, I
+also managed to create gif files directly from gnuplot and
+then display them in color. It is also possible (I am told)
+to configure gnuplot to generate png graphics files as output
+but so far I haven't found the right combination of libraries
+and configure options...
+
+I think it should be quite easy (in principle) to call
+gnuplot from Axiom. I wonder if anyone had done that before?
+
+\start
+Date: Sun, 1 Aug 2004 09:17:30 -0700 (PDT)
+From: Jocelyn Guidry <guidryjocelyn@sbcglobal.net>
+To: axiom-developer@nongnu.org
+Subject: [Axiom-developer] offline for the week
+
+This is Tim Daly.
+I'm in the land of non-connectivity, if you can believe such places still exist.
+I'll be offline and unable to read messages until saturday, aug 7th.
+ 
+\start
+Date: Sun, 1 Aug 2004 11:28:37 -0500
+From: <axiom@www.tenkan.org>
+To: bill.page1@sympatico.ca, axiom-developer@nongnu.org
+Subject: [Axiom-developer] offline
+
+Bill,
+
+Please make sure this gets to axiom-developer.
+I'm in the land of non-connectivity.
+I'll be unable to read mail for the week (until Sat 8/7)
+
+\start
+Date: Mon, 02 Aug 2004 12:54:33 +0200
+From: David MENTRE <dmentre@linux-france.org>
+To: Marcus Better <marcusb@math.su.se>
+Subject: Re: [Axiom-developer] Compiling spad files on Debian
+
+Hello Marcus,
+
+Marcus Better <marcusb@math.su.se> writes:
+
+> It seems to compile the LISP code, but then the C compiler complains:
+>
+> End of Pass 1.
+> End of Pass 2.
+> code.c:2:24: cmpinclude.h: No such file or directory
+> In file included from code.c:3:
+> code.h:3: error: parse error before "LI1"
+> code.h:9: error: parse error before "LI3"
+> code.h:32: error: parse error before "LnkTLI7"
+> ...(lots of errors follow)
+>
+> Is cmpinclude.h missing or am I doing something wrong?
+
+Oh! cmpinclude.h comes from gcl and the axiom package does not depend on
+gcl:
+
+$ dpkg -S cmpinclude.h
+gcl: /usr/lib/gcl-2.6.3/h/cmpinclude.h
+
+$ apt-cache show axiom
+[...]
+Depends: libc6 (>= 2.3.2.ds1-4), libgmp3, libncurses5 (>= 5.3.20030510-1), libreadline4 (>= 4.3-1)
+
+
+Try to install gcl package. If it fixes the issue, then make a bug
+report on Debian bug tracking system. 
+
+I hope it helps.
+
+\start
+Date: Mon, 02 Aug 2004 12:59:32 +0200
+From: David MENTRE <david.mentre@wanadoo.fr>
+To: Marcus Better <marcusb@math.su.se>
+Subject: Re: [Axiom-developer] Compiling spad files on Debian
+Cc: axiom-developer@nongnu.org
+
+David MENTRE <dmentre@linux-france.org> writes:
+
+> Try to install gcl package. If it fixes the issue, then make a bug
+> report on Debian bug tracking system. 
+
+Oops, I should have read previous posts. Adding gcl does not fixes the
+issue. However, it works on a cvs version of Axiom. So I think it is a
+debian package issue. 
+
+I'll make a bug report for the debian system.
+
+\start
+Date: Mon, 02 Aug 2004 13:25:15 +0200
+From: Marcus Better <marcusb@math.su.se>
+To: David MENTRE <david.mentre@wanadoo.fr>
+Subject: Re: [Axiom-developer] Compiling spad files on Debian
+
+> I'll make a bug report for the debian system.
+
+Hi,
+
+I just did a bug report for Debian (I hope...)
+
+\start
+Date: 02 Aug 2004 11:23:33 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: C Y <smustudent1@yahoo.com>
+Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0
+
+Greetings!  The default maxpage and stack sizes are now larger, so
+those options may not be needed (but don't hurt obviously). 'locbfd',
+as separately posted, means build the bfd library locally from the gcl
+source tree instead of using an external version.   Adds quite a bit
+to the compile time, but homogenizes the situation somewhat regarding
+bfd which is very much a moving target.  In principle, though, gcc,
+which is always external, uses bfd to write the objects which gcl
+expects to read -- the versions should therefore always be compatible,
+which is why I put in the external option as the default.
+
+Take care,
+
+C Y <smustudent1@yahoo.com> writes:
+
+> --- Stephen Wilson <wilsons@multiboard.com> wrote:
+> 
+> > Xin, You need to edit lsp/Makefile.pamphlet line 300 (as of cvs 2-3
+> > days ago). It reads as:
+> > 
+> >  ./configure --enable-vssize=65536*2 --enable-statsysbfd
+> > --enable-maxpage=128*1024 ;
+> > 
+> > you should change this to:
+> > 
+> >  ./configure --enable-vssize=65536*2 --disable-statsysbfd
+> > --enable-locbfd \
+> >  --enable-maxpage=128*1024 ;
+> 
+> Which GCL is currently being used in Axiom?  Until recently I had to do
+> the same thing with GCL on Gentoo Linux, but I'm not sure if it was
+> system upgrades or a GCL upgrade which eliminated the need.  
+
+\start> 
+Date: 02 Aug 2004 11:45:33 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: Marcus Better <marcus+keyword+axiombug.c60fb3@dactylis.com>
+Subject: [Axiom-developer] Re: Bug#262929: axiom: cannot compile packages using )comp
+Cc: 262929@bugs.debian.org, dmentre@linux-france.org
+
+Greetings, and thanks for your report!
+
+I've accidentally left a temporary compiler switch setting in an
+incorrect state.  I'll fix this in the next upload.
+
+Here is a workaround for now:
+
+)lisp (setq compiler::*default-system-p* nil)
+
+If you want to make this permanent, then you can follow the above with
+
+)lisp (si::save-system "/tmp/foo")
+
+and as root
+
+mv /tmp/foo /usr/lib/axiom-0.20040705/bin/AXIOMsys
+
+Take care, and sorry for the oversight.
+
+Marcus Better <marcus+keyword+axiombug.c60fb3@dactylis.com> writes:
+
+> Package: axiom
+> Version: 0.20040705-6,  submit@bugs.debian.org
+> Severity: important
+> 
+> Compiling an Axiom package using the )comp command fails at the C code
+> stage. This seems to be because the file cmpinclude.h is missing.
+> 
+> I tried to compile the following simple package (but the results are
+> the same with other packages, even those from the dsitrbution in
+> src/algebra):
+> 
+> -----------------------------
+> )abbrev package TESTPAK TestPackage
+> TestPackage(): Exports == Implementation where
+>   Exports == with
+>     op: INT -> INT
+> 
+>   Implementation == add
+>     op(x) == x
+> -----------------------------
+> 
+> The output is as follows:
+> 
+> GCL (GNU Common Lisp)  2.6.3 CLtL1   Jul 15 2004 18:58:27
+> Source License: LGPL(gcl,gmp), GPL(unexec,bfd)
+> Binary License:  GPL due to GPL'ed components: (READLINE BFD UNEXEC)
+> Modifications of this banner must retain notice of a compatible license
+> Dedicated to the memory of W. Schelter
+> 
+> Use (help) to get some basic information on how to use GCL.
+>                         AXIOM Computer Algebra System 
+>                 Version of Tuesday July 20, 2004 at 02:48:23 
+> -----------------------------------------------------------------------------
+>    Issue )copyright to view copyright notices.
+>    Issue )summary for a summary of useful system commands.
+>    Issue )quit to leave AXIOM and return to shell.
+> -----------------------------------------------------------------------------
+>  
+>    Re-reading compress.daase   Re-reading interp.daase
+>    Re-reading operation.daase
+>    Re-reading category.daase
+>    Re-reading browse.daase
+> (1) -> 
+> )comp test.spad
+> 
+>    Loading /usr/lib/axiom-0.20040705/autoload/apply.
+>    Loading /usr/lib/axiom-0.20040705/autoload/c-doc.
+>    Loading /usr/lib/axiom-0.20040705/autoload/c-util.
+>    Loading /usr/lib/axiom-0.20040705/autoload/profile.
+>    Loading /usr/lib/axiom-0.20040705/autoload/category.
+>    Loading /usr/lib/axiom-0.20040705/autoload/compiler.
+>    Loading /usr/lib/axiom-0.20040705/autoload/define.
+>    Loading /usr/lib/axiom-0.20040705/autoload/functor.
+>    Loading /usr/lib/axiom-0.20040705/autoload/info.
+>    Loading /usr/lib/axiom-0.20040705/autoload/iterator.
+>    Loading /usr/lib/axiom-0.20040705/autoload/modemap.
+>    Loading /usr/lib/axiom-0.20040705/autoload/nruncomp.
+>    Loading /usr/lib/axiom-0.20040705/autoload/package.
+>    Loading /usr/lib/axiom-0.20040705/autoload/htcheck.
+> Warning: macro table not found
+>    Loading /usr/lib/axiom-0.20040705/autoload/xruncomp.
+>    Compiling AXIOM source code from file /home/marcus/ghs/test.spad 
+>       using old system compiler.
+>    Loading /usr/lib/axiom-0.20040705/autoload/parsing.
+>    Loading /usr/lib/axiom-0.20040705/autoload/bootlex.
+>    Loading /usr/lib/axiom-0.20040705/autoload/def.
+>    Loading /usr/lib/axiom-0.20040705/autoload/fnewmeta.
+>    Loading /usr/lib/axiom-0.20040705/autoload/metalex.
+>    Loading /usr/lib/axiom-0.20040705/autoload/metameta.
+>    Loading /usr/lib/axiom-0.20040705/autoload/parse.
+>    Loading /usr/lib/axiom-0.20040705/autoload/postpar.
+>    Loading /usr/lib/axiom-0.20040705/autoload/postprop.
+>    Loading /usr/lib/axiom-0.20040705/autoload/preparse.
+>    TESTPAK abbreviates package TestPackage 
+> ------------------------------------------------------------------------
+>    initializing NRLIB TESTPAK for TestPackage 
+>    compiling into NRLIB TESTPAK 
+>    compiling exported op : INT -> INT
+>       TESTPAK;op;2INT;1 is replaced by x 
+> Time: 0 SEC.
+> 
+> (time taken in buildFunctor:  0)
+> 
+> ;;;     ***       |TestPackage| REDEFINED
+> 
+> ;;;     ***       |TestPackage| REDEFINED
+> Time: 0 SEC.
+> 
+> 
+>    Cumulative Statistics for Constructor TestPackage
+>       Time: 0 seconds
+>  
+>    Loading /usr/lib/axiom-0.20040705/autoload/bc-matrix.
+>    Loading /usr/lib/axiom-0.20040705/autoload/bc-misc.
+>    Loading /usr/lib/axiom-0.20040705/autoload/bc-solve.
+>    Loading /usr/lib/axiom-0.20040705/autoload/bc-util.
+>    Loading /usr/lib/axiom-0.20040705/autoload/ht-util.
+>    Loading /usr/lib/axiom-0.20040705/autoload/htsetvar.
+>    Loading /usr/lib/axiom-0.20040705/autoload/ht-root.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-con.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-data.
+>    Loading /usr/lib/axiom-0.20040705/autoload/showimp.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-op1.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-op2.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-search.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-util.
+>    Loading /usr/lib/axiom-0.20040705/autoload/topics.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-prof.
+>    Loading /usr/lib/axiom-0.20040705/autoload/br-saturn.
+>    finalizing NRLIB TESTPAK 
+>    Processing TestPackage for Browser database:
+> --->-->TestPackage((op (INT INT))): Not documented!!!!
+> --->-->TestPackage(constructor): Not documented!!!!
+> --->-->TestPackage(): Missing Description
+> Compiling /home/marcus/ghs/TESTPAK.NRLIB/code.lsp.
+> ; (DEFUN |TESTPAK;op;2INT;1| ...) is being compiled.
+> ;; Warning: The variable $ is not used.
+> End of Pass 1.  
+> End of Pass 2.  
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:2:24: cmpinclude.h: No such file
+>    or directory
+> In file included from /home/marcus/ghs/TESTPAK.NRLIB/code.c:3:
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:3: error: parse error before
+>    "LI1"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:9: error: parse error before
+>    "LI3"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:24: error: parse error before
+>    "LnkTLI9"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:24: error: parse error before
+>    '...' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:25: error: parse error before
+>    '*' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:25: error: `object' declared as
+>    function returning a function
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:25: error: function `object' is
+>    initialized like a variable
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:25: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:25: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:26: error: parse error before
+>    "LnkTLI8"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:26: error: parse error before
+>    '...' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:27: error: parse error before
+>    '*' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:27: error: `object' declared as
+>    function returning a function
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:27: error: function `object' is
+>    initialized like a variable
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:27: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:27: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:28: error: parse error before
+>    "LnkTLI7"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:28: error: parse error before
+>    '...' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:29: error: parse error before
+>    '*' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:29: error: `object' declared as
+>    function returning a function
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:29: error: function `object' is
+>    initialized like a variable
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:29: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:29: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:32: error: parse error before
+>    "LnkTLI5"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:33: error: parse error before
+>    '*' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:33: error: `object' declared as
+>    function returning a function
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:33: error: function `object' is
+>    initialized like a variable
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:34: error: parse error before
+>    "LnkTLI4"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:34: error: parse error before
+>    '...' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:35: error: parse error before
+>    '*' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:35: error: `object' declared as
+>    function returning a function
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:35: error: function `object' is
+>    initialized like a variable
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:35: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:35: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:36: error: parse error before
+>    "LnkTLI3"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:36: error: parse error before
+>    '...' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:37: error: parse error before
+>    '*' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:37: error: `object' declared as
+>    function returning a function
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:37: error: function `object' is
+>    initialized like a variable
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:37: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.h:37: error: parse error before
+>    ')' token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c: In function `init_code':
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:4: error: parse error before ')'
+>    token
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c: At top level:
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:7: error: parse error before
+>    "LI1"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:9: error: parse error before
+>    "object"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:9: error: parse error before
+>    "V4"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c: In function `L2':
+> /home/marcus/ghs/TESTPAK.N:86: error: `sup' undeclared (first use in
+>    this function)
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:86: error: `vs_check' undeclared
+>    (first use in this function)
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:89: error: parse error before
+>    "V11"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:90: error: syntax error beforeIn
+>    function `LnkTLI7':
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:117: error: parse error before
+>    "V1"
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:117: error: `va_list' undeclared
+>    (first use in this function)
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:117: error: `ap' undeclared
+>    (first use in this function)
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:117: error: `first' undeclared
+>    (first use in this function)
+> /home/marcus/ghs/TESTPAK.NRLIB/code.c:117: error: `V1' undeclared
+>    (first use in this function)
+> ...lots of similar lines deleted...
+> 
+>    >> System error:
+>    (SYSTEM "gcc -c -Wall -DVOL=volatile -fsigned-char -pipe  -I/usr/lib/gcl-2.6.3/unixport/../h  -O3 -fomit-frame-pointer -c '/home/marcus/ghs/TESTPAK.NRLIB/code.c' -o '/home/marcus/ghs/TESTPAK.NRLIB/code.o' -w") returned a non-zero value 0.
+> 
+> protected-symbol-warn called with (NIL)
+> 
+> 
+> -- System Information:
+> Debian Release: testing/unstable
+>   APT prefers unstable
+>   APT policy: (500, 'unstable'), (500, 'testing')
+> Architecture: i386 (i686)
+> Kernel: Linux 2.6.7custom
+> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8
+> 
+> Versions of packages axiom depends on:
+> ii  axiom-databases             0.20040705-6 A general purpose computer algebra
+> ii  libc6                       2.3.2.ds1-13 GNU C Library: Shared libraries an
+> ii  libgmp3                     4.1.3-1      Multiprecision arithmetic library
+> ii  libncurses5                 5.4-4        Shared libraries for terminal hand
+> ii  libreadline4                4.3-11       GNU readline and history libraries
+> 
+> -- no debconf information
+
+\start> 
+Date: Mon, 2 Aug 2004 14:51:08 -0700
+From: Bob McElrath <bob+axiom@mcelrath.org>
+To: Bill Page <bill.page1@sympatico.ca>
+Subject: [Axiom-developer] Re: Reduce does gnuplot
+
+
+Bill Page [bill.page1@sympatico.ca] wrote:
+> Tim,
+> 
+> I have an illustration here
+> 
+>   http://test.axiom-developer.org/Members/billpage/ReduceTest1
+
+Wow that's really nice.
+
+> I think it should be quite easy (in principle) to call
+> gnuplot from Axiom. I wonder if anyone had done that before?
+
+I thought axiom had its own plotting system that was in the process of
+being integrated?
+
+I have a lot of changes to pull from your repo!  ;)
+
+Regarding the page types, I will merge all your code into a single
+PageType (and a single file).  I'll give you warning before I do that,
+since it will be a disruptive change.  I'm at a conference now, so it
+will take me a while before I have time to do this.
+
+I was thinking today to have a admin-confgurable CPU limit.  One could
+easily create a denial-of-service attack against a math-enabled wiki by
+giving it a hard problem, sucking all CPU.  For example, give the
+axiom/reduce 10s to produce an answer, otherwise kill it and give the
+user an error.  At worst this time limit should be the same as the HTTP
+timeout (which is usually 60s - 360s), after which the browser gives up
+on the server and the user won't get his answer anyway.
+
+For a site that will see many computations, it might be worthwhile to
+maintain an synchronous connection to a running axiom/reduce process.
+
+If it is desirable to have long-running computations, it would be useful
+to create a page saying "computing..." and fill in the result when it is
+done.  This might require some heavy(-ier) retooling of zwiki.
+
+BTW I just discovered this gem on your site:
+
+    When you are entering Axiom commands you can use the _ to write
+    variables names that begin with a \ . Such names will be interpreted
+    as LaTeX? symbols. It is also possible to construct super- and
+    subscripted names this way.
+
+I have been DYING for this feature, for YEARS.
+
+\start
+Date: Wed, 4 Aug 2004 19:22:23 -0700
+From: Bob McElrath <bob+axiom@mcelrath.org>
+To: axiom-developer@nongnu.org
+Subject: [Axiom-developer] some questions
+
+1) How can I get axiom to generate output that is the same as its input?
+
+2) How can I get axiom to save the result of a computation to a file?
+
+3) The help system seems to be hosed on my debian system:
+
+    (34) -> )help help
+    If the system command or synonym help exists, help information is 
+    not available for it. Issue )what commands or )what synonyms to 
+    determine is help is a valid name.
+
+4) How can I suppress all output?
+   On the axiom/latexwiki pages, \begin{axiom}...\end{axiom} blocks are
+   broken up into multiple output blocks.  It might be desirable to let
+   the user have control over what is in a block and what is not.
+   Suppressing output with ';' might be a good place to break output.
+   See http://test.axiom-developer.org/Members/mcelrath/Kxaxiomtest to
+   see what I'm talking about.
+
+I was thinking about someone's question of adding additional
+computations to a page in comments.  One way to do this would be to save
+the axiom state to a file (one for each page) and then load it when
+executing axiom statements in comments.  It looks like ')display names'
+will tell you about user-defined names, and that should be all that is
+necessary to save, I think.  I continue to worry about long computations
+done on a web page...saving intermediate results might be a very good
+way to go.
+
+Of course, this requires the ability to output in input format, and to
+save to a file...
+
+\start
+Date: Thu, 5 Aug 2004 10:34:38 +0100
+From: Mike Dewar <miked@nag.co.uk>
+To: Bob McElrath <bob+axiom@mcelrath.org>
+Subject: Re: [Axiom-developer] some questions
+
+On Wed, Aug 04, 2004 at 07:22:23PM -0700, Bob McElrath wrote:
+> 1) How can I get axiom to generate output that is the same as its input?
+You can't in general.  However you can convert any result to InputForm
+which is a parsed prefix form.
+ 
+> 2) How can I get axiom to save the result of a computation to a file?
+)spool <filename>
+...
+)spool
+gives you an exact copy of what appears in the interpreter.
+
+If you want to store Axiom objects then use the File and KeyedAccessFile
+domains.  These will store the objects in their internal format.  There
+are also general TextFile and BinaryFile domains.
+ 
+> 3) The help system seems to be hosed on my debian system:
+> 
+>     (34) -> )help help
+>     If the system command or synonym help exists, help information is 
+>     not available for it. Issue )what commands or )what synonyms to 
+>     determine is help is a valid name.
+Looks like it.
+
+On the NAG system, all the help files are in share/doc/spadhelp .
+There is no spadhelp directory in the Open Axiom version as far as I can
+see.
+
+> 4) How can I suppress all output?
+)set output algebra off
+will turn the normal 2-D display off.  You may also want to do
+)set message type off
+
+\start
+Date: Fri, 06 Aug 2004 17:34:43 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: maxima <maxima@math.utexas.edu>, acl2@lists.cc.utexas.edu, Robert Boyer <boyer@cs.utexas.edu>, Matt Kaufmann <kaufmann@cs.utexas.edu>, info@gnu.org
+Subject: [Axiom-developer] GCL 2.6.4 is released
+
+The GCL team is happy to announce the release of version 2.6.4, the latest achievement in the 'stable' series. This release is a minor modification to version 2.6.3. From the changelog:
+
+    * Make disassemble work when original system directory is gone
+    * More descriptive compiled C function names for use in gprof when profiling is compiled in
+    * Compiler fix for proclaimed vararg functions
+    * Allow sharp numbers to be bignums
+    * Improve sgc page allocation which optimize-maximum-pages is in effect and the hole is overrun
+    * Build a profiling set of images as well for Debian, toggle between all four by default via debconf
+    * reset sys paths on installation
+    * Fix SGC hang on MacOSX
+
+\start
+Date: 06 Aug 2004 18:27:35 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: Heiko Scheit <heiko.scheit@mpi-hd.mpg.de>
+Subject: [Axiom-developer] Re: Bug#263991: axiom: wrong calculation of sqrt(2.)
+Cc: control@bugs.debian.org, 263991@bugs.debian.org
+
+forwarded  263991 axiom-developer@nongnu.org
+thanks
+
+Tim, would you know anything about this?
+
+Take care,
+
+Heiko Scheit <heiko.scheit@mpi-hd.mpg.de> writes:
+
+> Package: axiom
+> Version: 0.20040128-4
+> Severity: normal
+> 
+> 
+> axiom seems to have problems calculating sqrt(2).  Using the following
+> command
+> 
+>    echo "digits(DIGITS); sqrt(2.)" | axiom
+> 
+> where DIGITS should be replaced by the numbers listed in the
+> corresponding column below.  In the table below the last digits of the
+> output are shown in the second column.  One can see that for
+> DIGITS=121278-121280 the result is not correct.  For 121290 digits the
+> result is OK again.  As reference the output of Mathematica is given
+> in the last row.
+> 
+> DIGITS    |         result
+> --------------------------------
+> 121275    |    8347436383 149
+> 121276    |    8347436383 14897
+> 121277    |    8347436383 148974
+> 121278    |    8347436382 1263421
+> 121279    |    8347436382 9853356
+> 121280    |    8347436383 114184622
+> 121290    |    8347436383 1489743406 4670264
+> ---       |    8347436383 1489743406 467026400   (Mathematica output)
+> 
+> 
+> 
+> -- System Information:
+> Debian Release: 3.1
+>   APT prefers testing
+>   APT policy: (101, 'testing')
+> Architecture: i386 (i686)
+> Kernel: Linux 2.6.7-1-686
+> Locale: LANG=C, LC_CTYPE=C
+> 
+> Versions of packages axiom depends on:
+> ii  libc6                       2.3.2.ds1-13 GNU C Library: Shared libraries an
+> ii  libgmp3                     4.1.3-1      Multiprecision arithmetic library
+> ii  libncurses5                 5.4-4        Shared libraries for terminal hand
+> ii  libreadline4                4.3-11       GNU readline and history libraries
+
+\start> 
+Date: Sat, 07 Aug 2004 11:47:44 -0400
+From: William Sit <wyscc@cunyvm.cuny.edu>
+To: Camm Maguire <camm@enhanced.com>
+Subject: Re: [Axiom-developer] Re: Bug#263991: axiom: wrong calculation of sqrt(2.)
+Cc: Heiko Scheit <heiko.scheit@mpi-hd.mpg.de>, 263991@bugs.debian.org, control@bugs.debian.org
+
+> Heiko Scheit <heiko.scheit@mpi-hd.mpg.de> writes:
+> [snipped]
+>   echo "digits(DIGITS); sqrt(2.)" | axiom
+> One can see that for
+> > DIGITS=121278-121280 the result is not correct.  For 121290 digits the
+> > result is OK again.  As reference the output of Mathematica is given
+> > in the last row.
+> >
+> > DIGITS    |         result
+> > --------------------------------
+> > 121275    |    8347436383 149
+> > 121276    |    8347436383 14897
+> > 121277    |    8347436383 148974
+> > 121278    |    8347436382 1263421
+> > 121279    |    8347436382 9853356
+> > 121280    |    8347436383 114184622
+> > 121290    |    8347436383 1489743406 4670264
+> > ---       |    8347436383 1489743406 467026400   (Mathematica output)
+> [snipped]
+
+I verified that NAG 2.3 version gives correct result for 121278-121280 (RedHat
+9.0, i386 Pentium II (MMX) simulated on a Mac OS 10.2.8 using Virtual PC 6.01).
+
+121278       8347436383 1489743
+121279       8347436383 14897434
+121280       8347436383 148974341
+
+\start
+Date: 07 Aug 2004 23:16:52 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: wyscc@cunyvm.cuny.edu
+Subject: Re: [Axiom-developer] Re: Bug#263991: axiom: wrong calculation	of sqrt(2.)
+Cc: Heiko Scheit <heiko.scheit@mpi-hd.mpg.de>, 263991@bugs.debian.org
+
+Greetings!  This is GCL's fault.  A workaround at present is:
+
+)lisp (set-gmp-allocate-relocatable nil)
+
+If you wish to make this permanent follow with
+
+)lisp (si::save-system "/tmp/axiom")
+mv /tmp/axiom /usr/lib/axiom-0.20040705/bin/AXIOMsys
+
+I will track this down and fix this in the next GCL release.  It
+would be helpful if someone who builds axiom with GCL's local copy of
+the gmp source statically linked in  (i.e. ldd on AXIOMsys does not
+show a gmp link) could report whether the issue persists.  
+
+For those who want to know, we have to patch gmp in one place to allow
+bignums to be relocatable, which is a tremendous speed advantage.  By
+default on Debian, we dynamically link against external gmp, and it
+appears that the latest version has an additional place where a patch
+is now needed.
+
+Take care,
+
+William Sit <wyscc@cunyvm.cuny.edu> writes:
+
+> > Heiko Scheit <heiko.scheit@mpi-hd.mpg.de> writes:
+> > [snipped]
+> >   echo "digits(DIGITS); sqrt(2.)" | axiom
+> > One can see that for
+> > > DIGITS=121278-121280 the result is not correct.  For 121290 digits the
+> > > result is OK again.  As reference the output of Mathematica is given
+> > > in the last row.
+> > >
+> > > DIGITS    |         result
+> > > --------------------------------
+> > > 121275    |    8347436383 149
+> > > 121276    |    8347436383 14897
+> > > 121277    |    8347436383 148974
+> > > 121278    |    8347436382 1263421
+> > > 121279    |    8347436382 9853356
+> > > 121280    |    8347436383 114184622
+> > > 121290    |    8347436383 1489743406 4670264
+> > > ---       |    8347436383 1489743406 467026400   (Mathematica output)
+> > [snipped]
+> 
+> I verified that NAG 2.3 version gives correct result for 121278-121280 (RedHat
+> 9.0, i386 Pentium II (MMX) simulated on a Mac OS 10.2.8 using Virtual PC 6.01).
+> 
+> 121278       8347436383 1489743
+> 121279       8347436383 14897434
+> 121280       8347436383 148974341
+
+\start> 
+Date: Sun, 8 Aug 2004 04:27:31 -0400
+From: "Bill Page" <bill.page1@sympatico.ca>
+To: <axiom-developer@nongnu.org>
+Subject: [Axiom-developer] Axiom breaks lines
+Cc: daly@idsi.net, 'Bob McElrath' <bob@mcelrath.org>
+
+I have added Robert Sutor's LaTeX line break program to the Axiom wiki
+interface.
+
+Axiom commands can sometimes generate long lines of LaTeX. If these
+long truncated on the right. A program written in "C" long ago by
+Robert Sutor was used in the preparation of the examples shown in the
+original Axiom Book to automatically break the long LaTeX lines
+generated by Axiom the ")set output tex on" command. This program has
+now been incorporated into the Axiom wiki interface so that Axiom
+output is no longer truncated on the right.
+
+Because I wanted this to be as efficient as possible, I took the time to
+learn how to call "C" language routines directly from Python. There is a
+tool called swig http://www.swig.org that makes this quite easy!
+
+The updated Axiom interface is now available for testing on
+http://test.axiom-developer.org. This new version of the Axiom
+interface as well as the new Reduce interface will be migrated to the
+main Axiom portal and to the MathAction wiki sometime next week. In
+the mean time, it would be great if you could test it here and report
+any problems.
+
+\start
+Date: Sun, 08 Aug 2004 12:29:45 +0100
+From: Mark Murray <mark@grondar.org>
+To: Axiom Developers <axiom-developer@nongnu.org>
+Subject: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+Heya folks
+
+Enclosed are the current set of patches I have to get Axiom working on
+FreeBSD. A great deal of this work is Camm Maguire's; I've just been
+shoving it around in brute-force-and-ignorance mode for a while. :-)
+
+A big bit of the patch is to add "gcl-system" as a sort of GCL version.
+if this is chosen, then the system supplied GCL is used instead of the
+piggybacked build. For FreeBSD this works out well, as the GCL port
+then does the job. FreeBSD also has a port of noweb, so that is used in
+preference to the noweb piggybacked build. I've tried to make the patch
+generic to all builds.
+
+There are also some bugfixes. FreeBSD does not have a <malloc.h> include
+(well, it does, but including it is an error), and SIGCLD is replaced by
+the POSIX SIGCHLD. There are other sundry warning and path fixes, and
+an attempt to get "make clean" to remove all the generated files in the
+build (some Makefile and Makefile.dvi remnants are unaccounted for.
+
+I've been running Axiom now for many months; any chances of getting the
+some of the major bits and some of the FreeBSD build infrastructure in?
+
+My offer for a FreeBSD box to test things on still stands :-)
+
+M
+--
+Mark Murray
+iumop ap!sdn w,I idlaH
+
+------- =_aaaaaaaaaa0
+
+Index: Makefile
+===================================================================
+RCS file: /cvsroot/axiom/axiom/Makefile,v
+retrieving revision 1.11
+diff -u -d -B -b -r1.11 Makefile
+--- Makefile	21 Jul 2004 02:59:33 -0000	1.11
++++ Makefile	8 Aug 2004 10:06:11 -0000
+@@ -7,7 +7,9 @@
+ #GCLVERSION=gcl-2.5.2
+ #GCLVERSION=gcl-2.6.1
+ #GCLVERSION=gcl-2.6.2
+-GCLVERSION=gcl-2.6.3
++#GCLVERSION=gcl-2.6.2a
++#GCLVERSION=gcl-2.6.3
++GCLVERSION=gcl-system
+ AWK=gawk
+ GCLDIR=${LSP}/${GCLVERSION}
+ SRC=${SPD}/src
+@@ -21,7 +23,7 @@
+ CCLBASE=${OBJ}/${SYS}/ccl/ccllisp
+ INSTALL=/usr/local/axiom
+ COMMAND=${INSTALL}/mnt/${SYS}/bin/axiom
+-TANGLE=${SPADBIN}/lib/notangle
++TANGLE=notangle
+ 
+ NOISE="-o ${TMP}/trace"
+ 
+@@ -69,6 +71,7 @@
+ 	@mkdir -p ${OBJ}/noweb
+ 	@mkdir -p ${TMP}
+ 	@mkdir -p ${MNT}/${SYS}/bin/lib
++ifneq "${SYS}" "freebsd"
+ 	@( cd ${OBJ}/noweb ; \
+ 	tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \
+ 	cd ${OBJ}/noweb/src ; \
+@@ -80,6 +83,7 @@
+ 	${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \
+                 MAN=${MNT}/${SYS}/bin/man \
+                 TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace )
++endif
+ 	@echo The file marks the fact that noweb has been made > noweb
+ 
+ nowebclean:
+@@ -96,7 +100,13 @@
+ 	@echo 78 installing Axiom in ${INSTALL}
+ 	@mkdir -p ${INSTALL}
+ 	@cp -pr ${MNT} ${INSTALL}
+-	@echo AXIOM=${INSTALL}/mnt/${SYS} >${COMMAND}
++	@echo '#!/bin/sh -' >${COMMAND}
++	@echo AXIOM=${INSTALL}/mnt/${SYS} >>${COMMAND}
++	@echo export AXIOM >>${COMMAND}
++	@echo DAASE='$${AXIOM}' >>${COMMAND}
++	@echo export DAASE >>${COMMAND}
++	@echo PATH='$${PATH}':'$${AXIOM}/bin' >>${COMMAND}
++	@echo export PATH >>${COMMAND}
+ 	@cat ${SRC}/etc/axiom >>${COMMAND}
+ 	@chmod +x ${COMMAND}
+ 	@echo 79 Axiom installation finished.
+Index: Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/Makefile.pamphlet,v
+retrieving revision 1.25
+diff -u -d -B -b -r1.25 Makefile.pamphlet
+--- Makefile.pamphlet	21 Jul 2004 02:59:33 -0000	1.25
++++ Makefile.pamphlet	8 Aug 2004 10:06:16 -0000
+@@ -186,7 +186,7 @@
+ CCLBASE=${OBJ}/${SYS}/ccl/ccllisp
+ INSTALL=/usr/local/axiom
+ COMMAND=${INSTALL}/mnt/${SYS}/bin/axiom
+-TANGLE=${SPADBIN}/lib/notangle
++TANGLE=notangle
+ 
+ NOISE="-o ${TMP}/trace"
+ 
+@@ -268,6 +268,7 @@
+ 	@mkdir -p ${OBJ}/noweb
+ 	@mkdir -p ${TMP}
+ 	@mkdir -p ${MNT}/${SYS}/bin/lib
++ifneq "${SYS}" "freebsd"
+ 	@( cd ${OBJ}/noweb ; \
+ 	tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \
+ 	cd ${OBJ}/noweb/src ; \
+@@ -279,6 +280,7 @@
+ 	${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \
+                 MAN=${MNT}/${SYS}/bin/man \
+                 TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace )
++endif
+ 	@echo The file marks the fact that noweb has been made > noweb
+ 
+ nowebclean:
+@@ -406,7 +408,13 @@
+ 	@echo 78 installing Axiom in ${INSTALL}
+ 	@mkdir -p ${INSTALL}
+ 	@cp -pr ${MNT} ${INSTALL}
+-	@echo AXIOM=${INSTALL}/mnt/${SYS} >${COMMAND}
++	@echo '#!/bin/sh -' >${COMMAND}
++	@echo AXIOM=${INSTALL}/mnt/${SYS} >>${COMMAND}
++	@echo export AXIOM >>${COMMAND}
++	@echo DAASE='$${AXIOM}' >>${COMMAND}
++	@echo export DAASE >>${COMMAND}
++	@echo PATH='$${PATH}':'$${AXIOM}/bin' >>${COMMAND}
++	@echo export PATH >>${COMMAND}
+ 	@cat ${SRC}/etc/axiom >>${COMMAND}
+ 	@chmod +x ${COMMAND}
+ 	@echo 79 Axiom installation finished.
+@@ -550,6 +558,11 @@
+ optimizations for function calling in Axiom. This is handled automatically
+ by changing this variable.
+ 
++If GCLVERSION is ``gcl-system'', then no GCL is not built locally,
++and it is assumed that the ``gcl'' command is available off the
++path. If this GCL is unsuitable for building Axiom, then very bad
++things will happen.
++
+ NOTE WELL: IF YOU CHANGE THIS YOU SHOULD ERASE THE lsp/Makefile FILE.
+ This will cause the build to remake the lsp/Makefile from the
+ lsp/Makefile.pamphlet file and get the correct version. If you
+@@ -562,7 +575,8 @@
+ #GCLVERSION=gcl-2.6.1
+ #GCLVERSION=gcl-2.6.2
+ #GCLVERSION=gcl-2.6.2a
+-GCLVERSION=gcl-2.6.3
++#GCLVERSION=gcl-2.6.3
++GCLVERSION=gcl-system
+ @
+ 
+ \subsection{Makefile.axposf1v3}
+@@ -858,6 +872,53 @@
+ <<clean>>
+ 
+ @
++\subsection{Makefile.freebsd}
++Annoyingly enough it seems that GCL uses a default extension of .lsp
++rather than .lisp so we add the {\bf LISP} variable here. We need to
++depend on the default extension behavior because the system build
++will load either the interpreted or compiled form of a file depending
++on which is available. This varies at different stages of the build.
++<<Makefile.freebsd>>=
++# System dependent Makefile for the freebsd platform
++# Platform variable
++PLF:=FREEBSDplatform
++# C compiler flags
++CCF:="-O -pipe -fno-strength-reduce -Wall -D_GNU_SOURCE -D${PLF} -I/usr/X11R6/include -I/usr/local/include"
++# Loader flags
++LDF:="-L/usr/X11R6/lib -L/usr/local/lib"
++# C compiler to use
++CC:=gcc 
++AWK=awk
++RANLIB=ranlib
++TOUCH=touch
++TAR=tar
++AXIOMXLROOT=${AXIOM}/compiler
++O=o
++BYE=bye
++LISP=lsp
++DAASE=${SRC}/share
++# where the libXpm.a library lives
++XLIB=/usr/X11R6/lib
++
++ENV=PLF=${PLF} CCF=${CCF} LDF=${LDF} CC=${CC} AWK=${AWK} RANLIB=${RANLIB} \
++    TOUCH=${TOUCH} TAR=${TAR} AXIOMXLROOT=${AXIOMXLROOT} O=${O} BYE=${BYE} \
++    LISP=${LISP} DAASE=${DAASE} XLIB=${XLIB} TANGLE=${TANGLE}
++
++all: rootdirs srcsetup lspdir srcdir
++	@echo 45 Makefile.freebsd called
++	@echo 46 Environment : ${ENV} 
++	@echo 47 finished system build on `date` | tee >lastBuildDate
++
++<<rootdirs>>
++<<noweb>>
++<<literate commands>>
++<<srcsetup>>
++<<src>>
++<<lsp>>
++<<document>>
++<<clean>>
++
++@
+ \subsection{Makefile.linux}
+ Annoyingly enough it seems that GCL uses a default extension of .lsp
+ rather than .lisp so we add the {\bf LISP} variable here. We need to
+Index: lsp/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/lsp/Makefile.pamphlet,v
+retrieving revision 1.9
+diff -u -d -B -b -r1.9 Makefile.pamphlet
+--- lsp/Makefile.pamphlet	21 Jul 2004 02:59:33 -0000	1.9
++++ lsp/Makefile.pamphlet	8 Aug 2004 10:06:20 -0000
+@@ -744,15 +744,48 @@
+ 	  echo 20 applying toploop patch to unixport/init_gcl.lsp ; \
+ 	  patch <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.patch )
+ @ 
++\subsection{GCL already installed}
++<<gcl-system>>=
++# locally installed GCL
++OUT=${OBJ}/${SYS}/bin
++
++all:
++	@echo 21 building ${LSP} ${GCLVERSION}
++
++gcldir: 
++	@echo 22 building for ${GCLVERSION}
++	echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t))(setq compiler::*default-system-p* t))" si::*system-directory* (quote (list ".lsp"))) "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a")' | gcl
++	@echo 23 finished gcl build on `date` | tee >gcldir
++
++ccldir: ${LSP}/ccl/Makefile
++	@echo 24 building CCL
++	@mkdir -p ${INT}/ccl
++	@mkdir -p ${OBJ}/${SYS}/ccl
++	@( cd ccl ; ${ENV} ${MAKE} )
++
++${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet
++	@echo 25 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet
++	@( cd ccl ; ${SPADBIN}/document ${NOISE} Makefile )
++
++document:
++	@echo 26 making docs in ${LSP}
++	@mkdir -p ${INT}/doc/lsp/ccl
++	@( cd ccl ; ${ENV} ${MAKE} document )
++
++clean:
++	@echo 27 cleaning ${LSP}/ccl
++	@( cd ccl ; ${ENV} ${MAKE} clean )
++@
++\eject
+ <<*>>=
+ # gcl version 2.4.1
+ OUT=${OBJ}/${SYS}/bin
+ 
+ all:
+-	@echo 14 building ${LSP} ${GCLVERSION}
++	@echo 28 building ${LSP} ${GCLVERSION}
+ 
+ gcldir: 
+-	@echo 15 building ${GCLVERSION}
++	@echo 29 building ${GCLVERSION}
+ 	@tar -zxf ${ZIPS}/${GCLVERSION}.tgz
+ <<gcl-2.4.1.socket.patch>>
+ <<gcl-2.4.1.fortran.patch>>
+@@ -762,25 +795,25 @@
+ 	./configure --enable-vssize=65536 ; \
+ 	${ENV} ${MAKE} ; \
+ 	cp unixport/saved_gcl ${OUT}/lisp )
+-	@echo 21 finished system build on `date` | tee >gcldir
++	@echo 30 finished system build on `date` | tee >gcldir
+ 
+ ccldir: ${LSP}/ccl/Makefile
+-	@echo 22 building CCL
++	@echo 31 building CCL
+ 	@mkdir -p ${INT}/ccl
+ 	@mkdir -p ${OBJ}/${SYS}/ccl
+ 	@( cd ccl ; ${ENV} ${MAKE} )
+ 
+ ${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet
+-	@echo 23 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet
++	@echo 32 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet
+ 	@( cd ccl ; ${SPADBIN}/document ${NOISE} Makefile )
+ 
+ document:
+-	@echo 24 making docs in ${LSP}
++	@echo 33 making docs in ${LSP}
+ 	@mkdir -p ${INT}/doc/lsp/ccl
+ 	@( cd ccl ; ${ENV} ${MAKE} document )
+ 
+ clean:
+-	@echo 25 cleaning ${LSP}/ccl
++	@echo 34 cleaning ${LSP}/ccl
+ 	@( cd ccl ; ${ENV} ${MAKE} clean )
+ @
+ \eject
+Index: src/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/Makefile.pamphlet,v
+retrieving revision 1.11
+diff -u -d -B -b -r1.11 Makefile.pamphlet
+--- src/Makefile.pamphlet	15 Jul 2004 03:45:11 -0000	1.11
++++ src/Makefile.pamphlet	8 Aug 2004 10:06:24 -0000
+@@ -24,8 +24,12 @@
+ 
+ <<environment>>=
+ SETUP=scriptsdir libdir
++ifeq ($(PASS1),)
+ DIRS=bootdir interpdir sharedir algebradir inputdir etcdir clefdir docdir \
+      graphdir
++else
++DIRS=bootdir interpdir sharedir algebradir
++endif
+ DOCS=scriptsdocument libdocument ${DIRS:dir=document} 
+ CLNS=scriptsclean libclean ${DIRS:dir=clean} 
+ 
+Index: src/boot/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/boot/Makefile.pamphlet,v
+retrieving revision 1.6
+diff -u -d -B -b -r1.6 Makefile.pamphlet
+--- src/boot/Makefile.pamphlet	27 Jun 2004 15:00:58 -0000	1.6
++++ src/boot/Makefile.pamphlet	8 Aug 2004 10:06:48 -0000
+@@ -1151,7 +1151,7 @@
+ expansion. Adding a single quote symbol will break this expansion.
+ 
+ <<environment>>= 
+-CMD0=	(progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}"))
++CMD0=	(compiler::link (quote (${OBJS1})) "${SAVESYS}" (format nil "(let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t)) (when (fboundp (quote si::sgc-on)) (si::sgc-on t)) (setq compiler::*default-system-p* t)" si::*system-directory* (quote  (list ".lsp"))))
+  
+ @
+ \subsection{boothdr.lisp \cite{1}}
+Index: src/etc/axiom
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/etc/axiom,v
+retrieving revision 1.3
+diff -u -d -B -b -r1.3 axiom
+--- src/etc/axiom	7 Feb 2004 03:24:24 -0000	1.3
++++ src/etc/axiom	8 Aug 2004 10:07:42 -0000
+@@ -1,8 +1,10 @@
+-export AXIOM
+ 
+ system=`uname -s`
+ 
+ case "$system" in
++    FreeBSD) clef -e $AXIOM/bin/AXIOMsys "$@"
++        ;;
++    
+     Linux) clef -e $AXIOM/bin/AXIOMsys "$@"
+         ;;
+     
+Index: src/include/useproto.h
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/include/useproto.h,v
+retrieving revision 1.2
+diff -u -d -B -b -r1.2 useproto.h
+--- src/include/useproto.h	9 Oct 2003 10:45:16 -0000	1.2
++++ src/include/useproto.h	8 Aug 2004 10:07:50 -0000
+@@ -34,7 +34,7 @@
+ #ifndef _USEPROTO_H_
+ #define _USEPROTO_H_ 1
+ 
+-#if defined(SGIplatform)||defined(LINUXplatform)||defined(HPplatform) ||defined(RIOSplatform) ||defined(RIOS4platform) || defined(SUN4OS5platform)
++#if defined(SGIplatform)||defined(LINUXplatform)||defined(HPplatform) ||defined(RIOSplatform) ||defined(RIOS4platform) || defined(SUN4OS5platform)||defined(FREEBSDplatform)
+ #ifdef _NO_PROTO
+ #undef _NO_PROTO
+ #endif
+Index: src/interp/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/interp/Makefile.pamphlet,v
+retrieving revision 1.11
+diff -u -d -B -b -r1.11 Makefile.pamphlet
+--- src/interp/Makefile.pamphlet	27 Jun 2004 15:01:27 -0000	1.11
++++ src/interp/Makefile.pamphlet	8 Aug 2004 10:08:59 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{../../src/scripts/tex/axiom}
++\usepackage{axiom}
+ \begin{document}
+ \title{\$SPAD/src/interp Makefile}
+ \author{Timothy Daly}
+@@ -616,8 +616,29 @@
+ 	@ echo '(load "${OUT}/c-util")' >> ${OUT}/makedep.lisp
+ 	@ echo '(unless (probe-file "${OUT}/g-util.${O}") (compile-file "${OUT}/g-util.${LISP}" :output-file "${OUT}/g-util.${O}"))' >> ${OUT}/makedep.lisp
+ 	@ echo '(load "${OUT}/g-util")' >> ${OUT}/makedep.lisp
+-	@ (cd ${MNT}/${SYS}/bin ; \
+-	   echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' | ${LISPSYS})
++	@ (cd ${OBJ}/${SYS}/bin ; \
++	   echo '(progn \
++		(setq si::*collect-binary-modules* t) \
++		(load "${OUT}/makedep.lisp") \
++		(compiler::link \
++			(remove-duplicates si::*binary-modules* :test (quote equal)) \
++			"$(DEPSYS)" \
++			(format nil "\
++				(setq si::*collect-binary-modules* t) \
++				(let ((si::*load-path* (cons ~S si::*load-path*))\
++					(si::*load-types* ~S))\
++					(compiler::emit-fn t))\
++				(load \"$(OUT)/makedep.lisp\")\
++				(gbc t)\
++				(when si::*binary-modules* \
++					(error si::*binary-modules*))\
++				(setq si::collect-binary-modules* nil si::*binary-modules* nil)\
++				(gbc t)\
++				(when (fboundp (quote si::sgc-on)) (si::sgc-on t))\
++				(setq compiler::*default-system-p* t)\
++			" si::*system-directory* (quote (list ".lsp")))\
++			"" \
++			nil))' | $(LISPSYS))
+ 	@ echo 4 ${DEPSYS} created
+ 
+ @
+@@ -670,7 +691,33 @@
+ 	@ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp
+ 	@ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> ${OUT}/makeint.lisp
+ 	@ (cd ${OBJ}/${SYS}/bin ; \
+-	  echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
++	  echo '(progn \
++			(setq si::*collect-binary-modules* t)\
++			(setq x si::*system-directory*)\
++			(load "${OUT}/makeint.lisp")\
++			(setq si::*system-directory* x)\
++			(unintern (quote x))\
++			(compiler::link \
++				(remove-duplicates si::*binary-modules* :test (quote equal))\
++				"$(SAVESYS)" \
++				(format nil "\
++					(let ((si::*load-path* (cons ~S si::*load-path*))\
++						(si::*load-types* ~S))\
++						(compiler::emit-fn t))\
++					 (setq si::*collect-binary-modules* t)\
++					 (setq x si::*system-directory*)\
++					 (load \"$(OUT)/makeint.lisp\")\
++					 (setq si::*system-directory* x)\
++					 (unintern (quote x))\
++					 (when si::*binary-modules* \
++						(error si::*binary-modules*))\
++					(setq si::collect-binary-modules* nil si::*binary-modules* nil)\
++					(gbc t)\
++					(when (fboundp (quote si::sgc-on)) (si::sgc-on t))\
++					(setq compiler::*default-system-p* t)\
++				" si::*system-directory* (quote (list ".lsp")))\
++			"$(OBJ)/$(SYS)/lib/sockio-c.o $(OBJ)/$(SYS)/lib/cfuns-c.o $(OBJ)/$(SYS)/lib/libspad.a" \
++			nil))' | $(LISPSYS))
+ 	@ echo 6 ${SAVESYS} created
+ 	@ cp ${SAVESYS} ${AXIOMSYS}
+ 	@ echo 6a ${AXIOMSYS} created
+@@ -6262,6 +6309,8 @@
+ <<Makefile.dvi (DOC from IN)>>=
+ ${DOC}/Makefile.dvi: ${IN}/Makefile.pamphlet ${DOC}/axiom.sty
+ 	@echo 613 making ${DOC}/Makefile.dvi from ${IN}/Makefile.pamphlet
++	@echo 'BUG? SOURCE DOES NOT EXIST.'
++	@touch ${IN}/Makefile.dvi
+ 	@cp ${IN}/Makefile.dvi ${DOC}
+ 
+ @
+Index: src/interp/nlib.lisp.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/interp/nlib.lisp.pamphlet,v
+retrieving revision 1.3
+diff -u -d -B -b -r1.3 nlib.lisp.pamphlet
+--- src/interp/nlib.lisp.pamphlet	24 May 2004 22:53:55 -0000	1.3
++++ src/interp/nlib.lisp.pamphlet	8 Aug 2004 10:09:03 -0000
+@@ -295,7 +295,15 @@
+ (defun rpackfile (filespec)
+   (setq filespec (make-filename filespec))
+   (if (string= (pathname-type filespec) "NRLIB")
+-      (recompile-lib-file-if-necessary (concat (namestring filespec) "/code.lsp"))
++      (let* ((base (pathname-name filespec))
++	     (code (concatenate 'string (namestring filespec) "/code.lsp"))
++	     (temp (concatenate 'string (namestring filespec) "/" base ".lsp"))
++	     (o (make-pathname :type "o")))
++	(si::system (format nil "cp ~S ~S" code temp))
++	(recompile-lib-file-if-necessary temp)
++	(si::system (format nil "mv ~S ~S~%" 
++			    (namestring (merge-pathnames o temp))
++			    (namestring (merge-pathnames o code)))))
+   ;; only pack non libraries to avoid lucid file handling problems    
+     (let* ((rstream (rdefiostream (list (cons 'file filespec) (cons 'mode 'input))))
+ 	   (nstream nil)
+Index: src/interp/util.lisp.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/interp/util.lisp.pamphlet,v
+retrieving revision 1.5
+diff -u -d -B -b -r1.5 util.lisp.pamphlet
+--- src/interp/util.lisp.pamphlet	24 May 2004 22:54:05 -0000	1.5
++++ src/interp/util.lisp.pamphlet	8 Aug 2004 10:09:12 -0000
+@@ -77,6 +77,16 @@
+ ;     (compile-file collectfn))
+ ;   (load collectfn)
+ ;   (compiler::emit-fn t)
++;
++;  (let ((collectfn (concatenate 'string si::*system-directory* "../cmpnew/gcl_collectfn.lsp"))
++;       (collectfn1 (concatenate 'string obj "/" sys "/interp/collectfn")))
++;   (with-open-file (st collectfn :direction :input)
++;      (with-open-file (st1 (concatenate 'string collectfn1 ".lsp") :direction :output)
++;       (si::copy-stream st st1)))
++;   (unless (probe-file (concatenate 'string collectfn1 ".o"))
++;     (compile-file collectfn1))
++;   (load collectfn1)
++;
+    (mapcar
+      #'load
+      (directory (concatenate 'string obj "/" sys "/interp/*.fn")))
+@@ -813,7 +823,7 @@
+ This function will do that. A correct call looks like:
+ \begin{verbatim}
+ (in-package "BOOT")
+-(recompile-all-libs "/spad/mnt/linux/algebra")
++(recompile-all-libs "/spad/mnt/${SYS}/algebra")
+ \end{verbatim}
+ <<recompile-all-libs>>=
+ (defun recompile-all-libs (dir)
+@@ -838,11 +848,11 @@
+ Note that it will build a pathname from the current {\bf AXIOM}
+ shell variable. So if the {\bf AXIOM} shell variable had the value
+ \begin{verbatim}
+-/spad/mnt/linux
++/spad/mnt/${SYS}
+ \end{verbatim}
+ then the wildcard expands to
+ \begin{verbatim}
+-/spad/mnt/linux/nalg/*.spad
++/spad/mnt/${SYS}/nalg/*.spad
+ \end{verbatim}
+ and all of the matching files would be recompiled.
+ <<recompile-all-algebra-files>>=
+@@ -879,7 +889,7 @@
+ before compiling this file. A correct call looks like:
+ \begin{verbatim}
+ (in-package "BOOT")
+-(reroot "/spad/mnt/linux")
++(reroot "/spad/mnt/${SYS}")
+ \end{verbatim}
+ <<reroot>>=
+ (defun reroot (dir)
+Index: src/lib/XDither.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/XDither.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 XDither.c.pamphlet
+--- src/lib/XDither.c.pamphlet	27 Jun 2004 15:01:41 -0000	1.4
++++ src/lib/XDither.c.pamphlet	8 Aug 2004 10:09:16 -0000
+@@ -51,7 +51,6 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <malloc.h>
+ 
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+Index: src/lib/XShade.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/XShade.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 XShade.c.pamphlet
+--- src/lib/XShade.c.pamphlet	27 Jun 2004 15:01:42 -0000	1.4
++++ src/lib/XShade.c.pamphlet	8 Aug 2004 10:09:16 -0000
+@@ -50,7 +50,6 @@
+ #include "useproto.h"
+ 
+ #include <stdio.h>
+-#include <malloc.h>
+ #include <stdlib.h>
+ 
+ #include <X11/Xlib.h>
+Index: src/lib/cfuns-c.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/cfuns-c.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 cfuns-c.c.pamphlet
+--- src/lib/cfuns-c.c.pamphlet	27 Jun 2004 15:01:43 -0000	1.4
++++ src/lib/cfuns-c.c.pamphlet	8 Aug 2004 10:09:19 -0000
+@@ -52,7 +52,6 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <malloc.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ 
+Index: src/lib/fnct_key.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/fnct_key.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 fnct_key.c.pamphlet
+--- src/lib/fnct_key.c.pamphlet	27 Jun 2004 15:01:43 -0000	1.4
++++ src/lib/fnct_key.c.pamphlet	8 Aug 2004 10:09:21 -0000
+@@ -352,7 +352,7 @@
+                 close(fd);
+             }
+         }
+-        bsdSignal(SIGCLD, null_fnct,RestartSystemCalls);
++        bsdSignal(SIGCHLD, null_fnct,RestartSystemCalls);
+         switch (id = fork()) {
+           case -1:
+             perror("Special key");
+Index: src/lib/openpty.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/openpty.c.pamphlet,v
+retrieving revision 1.7
+diff -u -d -B -b -r1.7 openpty.c.pamphlet
+--- src/lib/openpty.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.7
++++ src/lib/openpty.c.pamphlet	8 Aug 2004 10:09:21 -0000
+@@ -92,7 +92,7 @@
+ #endif
+ 
+ {
+-#if defined(SUNplatform) || defined (HP9platform) || defined(RTplatform) ||defined(AIX370platform) 
++#if defined(SUNplatform) || defined (HP9platform) || defined(RTplatform) ||defined(AIX370platform) || defined(FREEBSDplatform)
+   int looking = 1, i;
+   int oflag = O_RDWR;                  /* flag for opening the pty */
+   
+@@ -204,7 +204,7 @@
+ 	sprintf(serv, "/dev/ttyp%02x", channelNo);
+ 	channelNo++;
+ #endif
+-#if defined(SUNplatform) || defined (HP9platform) || defined(LINUXplatform) 
++#if defined(FREEBSDplatform) || defined(SUNplatform) || defined (HP9platform) || defined(LINUXplatform) 
+ 	static int channelNo = 0;
+ 	static char group[] = "pqrstuvwxyzPQRST";
+ 	static int groupNo = 0;
+Index: src/scripts/document
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/scripts/document,v
+retrieving revision 1.3
+diff -u -d -B -b -r1.3 document
+--- src/scripts/document	12 Nov 2003 11:16:15 -0000	1.3
++++ src/scripts/document	8 Aug 2004 10:09:25 -0000
+@@ -5,8 +6,9 @@
+   exit 0
+ fi
+ 
+-tangle=$AXIOM/bin/lib/notangle
+-weave=$AXIOM/bin/lib/noweave
++tangle=notangle
++weave=noweave
++
+ if [ "$#" = "3" ]; then
+  REDIRECT=$2
+  FILE=`basename $3 .pamphlet`
+
+------- =_aaaaaaaaaa0
+
+==================================================================
+==
+== Path fixes
+==
+==================================================================
+
+Index: src/booklets/Sorting.booklet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/booklets/Sorting.booklet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 Sorting.booklet
+--- src/booklets/Sorting.booklet	28 Aug 2003 12:15:28 -0000	1.1
++++ src/booklets/Sorting.booklet	8 Aug 2004 10:06:39 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{/home/axiomgnu/new/mnt/linux/bin/tex/noweb}
++\usepackage{noweb}
+ \begin{document}
+ \title{Sorting Facilities}
+ \author{Timothy Daly}
+Index: src/clef/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/clef/Makefile.pamphlet,v
+retrieving revision 1.3
+diff -u -d -B -b -r1.3 Makefile.pamphlet
+--- src/clef/Makefile.pamphlet	27 Jun 2004 15:00:58 -0000	1.3
++++ src/clef/Makefile.pamphlet	8 Aug 2004 10:06:48 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{../../mnt/linux/bin/axiom}
++\usepackage{axiom}
+ \begin{document}
+ \title{\$SPAD/src/clef Makefile}
+ \author{Timothy Daly}
+Index: src/clef/edible.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/clef/edible.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 edible.c.pamphlet
+--- src/clef/edible.c.pamphlet	30 Jul 2004 16:45:33 -0000	1.4
++++ src/clef/edible.c.pamphlet	8 Aug 2004 10:06:50 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{../../mnt/linux/bin/axiom}
++\usepackage{axiom}
+ \begin{document}
+ \title{\$SPAD/src/clef edible.c}
+ \author{The Axiom Team}
+Index: src/doc/axiom.bib.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/doc/axiom.bib.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 axiom.bib.pamphlet
+--- src/doc/axiom.bib.pamphlet	28 Aug 2003 12:28:30 -0000	1.1
++++ src/doc/axiom.bib.pamphlet	8 Aug 2004 10:07:40 -0000
+@@ -12231,7 +12231,7 @@
+ \subsection{Makefile}
+ <<Makefile>>=
+ @MISC{Makefile,
+-   path=./mnt/linux/bin/Makefile.pamphlet
++   path=./mnt/${SYS}/bin/Makefile.pamphlet
+ }
+ 
+ @
+Index: src/interp/debugsys.lisp.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/interp/debugsys.lisp.pamphlet,v
+retrieving revision 1.2
+diff -u -d -B -b -r1.2 debugsys.lisp.pamphlet
+--- src/interp/debugsys.lisp.pamphlet	24 May 2004 22:53:51 -0000	1.2
++++ src/interp/debugsys.lisp.pamphlet	8 Aug 2004 10:09:01 -0000
+@@ -79,7 +79,7 @@
+       (thesymb "/int/interp/buildom.clisp")
+       (thesymb "/int/interp/cattable.clisp")
+       (thesymb "/int/interp/cformat.clisp")
+-      (thesymb "/obj/linux/interp/cfuns.o")
++      (thesymb "/obj/${SYS}/interp/cfuns.o")
+       (thesymb "/int/interp/clam.clisp")
+       (thesymb "/int/interp/clammed.clisp")
+       (thesymb "/int/interp/comp.lisp")
+@@ -152,7 +152,7 @@
+       (thesymb "/int/interp/sfsfun.clisp")
+       (thesymb "/int/interp/simpbool.clisp")
+       (thesymb "/int/interp/slam.clisp")
+-      (thesymb "/obj/linux/interp/sockio.o")
++      (thesymb "/obj/${SYS}/interp/sockio.o")
+       (thesymb "/int/interp/spad.lisp")
+       (thesymb "/int/interp/spaderror.lisp")
+       (thesymb "/int/interp/template.clisp")
+@@ -232,13 +232,13 @@
+    ())
+   (list 
+    (thesymb "/int/interp/ax.clisp"))
+-  "/mnt/linux"
++  "/mnt/${SYS}"
+   "/lsp"
+   "/src"
+   "/int"
+   "/obj"
+   "/mnt"
+-  "linux")
++  "${SYS}")
+ (in-package "SCRATCHPAD-COMPILER")
+ (boot::set-restart-hook)
+ (in-package "BOOT")
+@@ -247,7 +247,7 @@
+ (load (user::thepath "/int/interp/obey.lsp"))
+ ;(si::multiply-bignum-stack 10)
+ (si::gbc-time 0)
+-(setq si::*system-directory* (user::thepath "/mnt/linux/bin/"))
++(setq si::*system-directory* (user::thepath "/mnt/${SYS}/bin/"))
+ (gbc t)
+ 
+ @
+
+==================================================================
+==
+== Cleaning
+==
+==================================================================
+
+Index: src/booklets/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/booklets/Makefile.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 Makefile.pamphlet
+--- src/booklets/Makefile.pamphlet	28 Aug 2003 12:15:28 -0000	1.1
++++ src/booklets/Makefile.pamphlet	8 Aug 2004 10:06:26 -0000
+@@ -19,6 +19,7 @@
+ clean:
+ 	@echo 2 cleaning ${INT}/docs/src/booklets
+ 	@rm -rf ${INT}/docs/src/booklets
++	@rm -f Makefile Makefile.dvi
+ @
+ \eject
+ \begin{thebibliography}{99}
+Index: src/doc/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/doc/Makefile.pamphlet,v
+retrieving revision 1.7
+diff -u -d -B -b -r1.7 Makefile.pamphlet
+--- src/doc/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.7
++++ src/doc/Makefile.pamphlet	8 Aug 2004 10:06:50 -0000
+@@ -105,6 +105,7 @@
+ 
+ clean:
+ 	@echo 4 cleaning ${SRC}/doc
++	@rm -f Makefile Makefile.dvi
+ @
+ \eject
+ \begin{thebibliography}{99}
+Index: src/etc/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/etc/Makefile.pamphlet,v
+retrieving revision 1.6
+diff -u -d -B -b -r1.6 Makefile.pamphlet
+--- src/etc/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.6
++++ src/etc/Makefile.pamphlet	8 Aug 2004 10:07:42 -0000
+@@ -91,6 +91,7 @@
+ 	@rm -rf ${MID}
+ 	@echo 4 cleaning ${DOC}
+ 	@rm -rf ${DOC}
++	@rm -f Makefile Makefile.dvi
+ 
+ @
+ \eject
+Index: src/input/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/input/Makefile.pamphlet,v
+retrieving revision 1.10
+diff -u -d -B -b -r1.10 Makefile.pamphlet
+--- src/input/Makefile.pamphlet	15 Jul 2004 03:45:11 -0000	1.10
++++ src/input/Makefile.pamphlet	8 Aug 2004 10:08:22 -0000
+@@ -6880,6 +6880,7 @@
+ 	@rm -rf ${MID}
+ 	@echo 7 cleaning ${OUT}
+ 	@rm -rf ${OUT}
++	@rm -f Makefile Makefile.dvi
+ 
+ <<algaggr>>
+ <<algbrbf>>
+Index: src/lib/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/Makefile.pamphlet,v
+retrieving revision 1.8
+diff -u -d -B -b -r1.8 Makefile.pamphlet
+--- src/lib/Makefile.pamphlet	27 Jun 2004 15:01:39 -0000	1.8
++++ src/lib/Makefile.pamphlet	8 Aug 2004 10:09:14 -0000
+@@ -490,6 +490,7 @@
+ clean:
+ 	@echo 70 cleaning ${IN}
+ 	@rm -rf ${MID} ${OUT} ${DOCINT} ${DOCMNT}
++	@rm -f Makefile Makefile.dvi
+ 
+ @
+ \subsection{Makefile documentation}
+Index: src/scripts/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/scripts/Makefile.pamphlet,v
+retrieving revision 1.2
+diff -u -d -B -b -r1.2 Makefile.pamphlet
+--- src/scripts/Makefile.pamphlet	27 Jun 2004 15:01:44 -0000	1.2
++++ src/scripts/Makefile.pamphlet	8 Aug 2004 10:09:25 -0000
+@@ -19,6 +19,10 @@
+ 	@cp -pr * ${OUT}
+ 	@mkdir -p ${OUT}/tex
+ 	@rm -f ${OUT}/Makefile*
++
++clean:
++	@echo 2 cleaning ${SRC}/scripts
++	@rm -f Makefile Makefile.dvi
+ @
+ \eject
+ \begin{thebibliography}{99}
+
+==================================================================
+==
+== Bugfixes
+==
+==================================================================
+
+Index: src/graph/Makefile.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/Makefile.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 Makefile.pamphlet
+--- src/graph/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.1
++++ src/graph/Makefile.pamphlet	8 Aug 2004 10:07:44 -0000
+@@ -414,7 +414,7 @@
+ 
+ ${DOC}/viewports:
+ 	@ echo 25 making ${DOC}/viewports from ${IN}/viewports 
+-	@ cp -pr ${IN}/viewports ${DOC}
++	@ echo 'BUG? SOURCE DOES NOT EXIST.' cp -pr ${IN}/viewports ${DOC}
+ 
+ <<viewmandir>>
+ <<Gdrawsdir>>
+Index: src/graph/viewman/cleanup.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/viewman/cleanup.c.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 cleanup.c.pamphlet
+--- src/graph/viewman/cleanup.c.pamphlet	27 Jun 2004 15:01:22 -0000	1.1
++++ src/graph/viewman/cleanup.c.pamphlet	8 Aug 2004 10:07:47 -0000
+@@ -53,7 +53,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <stdio.h>
+-#include <malloc.h>
+ #include <assert.h>
+ #include <signal.h>
+ #include <sys/wait.h>
+Index: src/graph/viewman/sselect.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/viewman/sselect.c.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 sselect.c.pamphlet
+--- src/graph/viewman/sselect.c.pamphlet	27 Jun 2004 15:01:24 -0000	1.1
++++ src/graph/viewman/sselect.c.pamphlet	8 Aug 2004 10:07:47 -0000
+@@ -104,7 +104,7 @@
+ 	/* flush(spadSock); */
+         /* send_int(spadSock,1);   acknowledge to spad */
+         checkClosedChild = no;
+-        bsdSignal(SIGCLD,endChild,DontRestartSystemCalls);
++        bsdSignal(SIGCHLD,endChild,DontRestartSystemCalls);
+       }
+     }
+     ret_val = select(n, (void *)rd, (void *)wr, (void *)ex, (void *)timeout);
+Index: src/graph/viewman/viewman.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/viewman/viewman.c.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 viewman.c.pamphlet
+--- src/graph/viewman/viewman.c.pamphlet	27 Jun 2004 15:01:24 -0000	1.1
++++ src/graph/viewman/viewman.c.pamphlet	8 Aug 2004 10:07:50 -0000
+@@ -116,7 +116,7 @@
+   int keepLooking,code;
+   
+   bsdSignal(SIGPIPE,brokenPipe,DontRestartSystemCalls);
+-  bsdSignal(SIGCLD,endChild,RestartSystemCalls);
++  bsdSignal(SIGCHLD,endChild,RestartSystemCalls);
+   bsdSignal(SIGTERM,goodbye,DontRestartSystemCalls);
+   
+   /* Connect up to AXIOM server */
+
+==================================================================
+==
+== Warning fixes
+==
+==================================================================
+
+Index: src/lib/pixmap.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/pixmap.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 pixmap.c.pamphlet
+--- src/lib/pixmap.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.4
++++ src/lib/pixmap.c.pamphlet	8 Aug 2004 10:09:23 -0000
+@@ -361,8 +361,7 @@
+ write_pixmap_file(Display *dsp, int scr, char  *fn, Window wid, int x, int y, int width,int height)
+ #endif
+ {
+-  XpmAttributes attr;
+-  XImage *xi,*xireturn;
++  XImage *xi;
+   int status;
+   
+   /* reads image structure in ZPixmap format */
+Index: src/lib/wct.c.pamphlet
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/wct.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 wct.c.pamphlet
+--- src/lib/wct.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.4
++++ src/lib/wct.c.pamphlet	8 Aug 2004 10:09:25 -0000
+@@ -287,7 +287,7 @@
+   printTime((long *)&(pwct->ftime));
+   cc = skimString(pwct->fimage, pwct->fsize, NHEAD, NTAIL);
+   printf("%s", "            " + (cc - (NHEAD + NTAIL)));
+-  printf(" [%d w, %d c]", pwct->wordc, pwct->fsize);
++  printf(" [%d w, %ld c]", pwct->wordc, (long)pwct->fsize);
+   printf("\n");
+ 
+ #ifdef SHOW_WORDS
+
+
+\start
+Date: Sun, 8 Aug 2004 08:21:14 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+Mark,
+
+Thanks for the summary patch. I'm on vacation this week so I have
+time to work on this. I'll be sending you requests for clarification
+since the basic reason for pamphlet files is to explain things like
+changes and I'm going to have to write that text.
+
+I'll send you the BSD userid request under separate cover.
+
+\start
+Date: 09 Aug 2004 18:42:42 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: Heiko Scheit <heiko.scheit@mpi-hd.mpg.de>, Kevin Ryde <user42@zip.com.au>, 	263991@bugs.debian.org,	gmp-discuss@b.swox.com
+Subject: GCL and GMP (was Re: [Axiom-developer] Re: Bug#263991: axiom: wrong calculation ofsqrt(2.))
+
+Greetings!  I think I have fixed this issue once and for all, and
+would like feedback.
+
+Dr. Schelter originally integrated gmp into gcl with a single patch to
+the gmp source with the intention of allowing gcl_gmp_alloc return
+memory blocks which could be moved around on garbage collection.  This
+is a *big* performance win, so foregoing this is not a particularly
+practical option.  Further along this vein, the gmp docs state that
+they can store pointers to other blocks in allocated blocks, which
+will (or should at least, never yet detected) foil conservative
+garbage collection strategies like ours.  So the bottom line is we
+want to make sure that the garbage collector is never called from
+within a gmp allocation, whether or not that allocation is
+relocatable.  
+
+The gmp docs state that the code cannot handle user allocation
+functions which return NULL on out of memory, for example.  This is
+too bad -- wonder if that could ever be fixed.  The docs also state
+that a longjmp strategy, i.e. jumping back to the beginning of the
+call, calling the garbage collector outside gmp, and then retrying the
+gmp call, will have undefined consequences, but that 'this might
+change someday'.  Nevertheless, this seems our best option at present
+:-).  
+
+The only alternative is to try to patch the source wherever gmp
+allocates temporary memory on the heap to use alloca instead.  The
+problem with such a strategy is that it presents a moving target as
+gmp is developed.  We default to a dynamic link against gmp with the
+patched function(s) supplied locally.  Apparently Dr. Schelter
+overlooked at least one needed patch, or the pathway was inadvertently
+made possible some time ago, but in either case, this shows the
+difficulty with this strategy.  
+
+With the longjmp option, we can forget about compiling any gmp code at
+all when the user has libgmp3-dev installed, perhaps even forgoing the
+time-consuming configure.  I'm sure Mark Murray would be happy to hear
+this.  
+
+Just done some preliminary testing, and it fixes this issue and
+appears stable thus far.  Here is an example of the wrapper:
+
+#define MEM_GMP_VOID_CALL(n_,a_,b_...) \
+   EXTERN_INLINE void Join(m,a_)(Join(P,n_)(b_)) { \
+	   jmp_gmp=0;\
+           if (setjmp(gmp_jmp))\
+              GBC(t_relocatable);\
+           if (jmp_gmp++>1) \
+              FEerror("gmp jmp loop in" #a_, 0);\
+           a_(Join(A,n_)());\
+           jmp_gmp=0;\
+   }
+
+#define MEM_GMP_CALL(n_,rt_,a_,b_...) \
+   EXTERN_INLINE rt_ Join(m,a_)(Join(P,n_)(b_)) { \
+           rt_ tmp;\
+	   jmp_gmp=0;\
+           if (setjmp(gmp_jmp))\
+              GBC(t_relocatable);\
+           if (jmp_gmp++>1) \
+              FEerror("gmp jmp loop in" #a_, 0);\
+           tmp=a_(Join(A,n_)());\
+           jmp_gmp=0;\
+           return tmp;\
+   }
+
+MEM_GMP_VOID_CALL(3,mpz_add,mpz_t,mpz_t,mpz_t)
+....
+#define __gmpz_add m__gmpz_add
+....
+
+and then in the alloc function:
+
+	    if (jmp_gmp)
+	      longjmp(gmp_jmp,jmp_gmp);
+	    else
+	      GBC(t_relocatable);
+
+
+If I could enter a wishlist request to the gmp people, it would be
+that
+
+1) An option be provided where temporary memory could always be at
+   least attempted on the stack first.
+2) An error recovery pathway for user allocation functions returning
+   NULL.  This would allow us to replace the longjmp with a simply
+   trap of the error exit, collect the garbage, and retry.  (Don't
+   know if setjmp carries much more overhead, but...)
+3) An explanation of what kind of 'undefined consequences' the longjmp
+   could have, and perhaps eventually making things safe for this
+   possibility in the code.  Is there a problem in single-threaded
+   only code?
+
+This is likely important enough to go out soon.  Thoughts on this from
+GCL developers most appreciated.
+
+
+Take care,
+
+
+Camm Maguire <camm@enhanced.com> writes:
+
+> Greetings!  This is GCL's fault.  A workaround at present is:
+> 
+> )lisp (set-gmp-allocate-relocatable nil)
+> 
+> If you wish to make this permanent follow with
+> 
+> )lisp (si::save-system "/tmp/axiom")
+> mv /tmp/axiom /usr/lib/axiom-0.20040705/bin/AXIOMsys
+> 
+> I will track this down and fix this in the next GCL release.  It
+> would be helpful if someone who builds axiom with GCL's local copy of
+> the gmp source statically linked in  (i.e. ldd on AXIOMsys does not
+> show a gmp link) could report whether the issue persists.  
+> 
+> For those who want to know, we have to patch gmp in one place to allow
+> bignums to be relocatable, which is a tremendous speed advantage.  By
+> default on Debian, we dynamically link against external gmp, and it
+> appears that the latest version has an additional place where a patch
+> is now needed.
+> 
+> Take care,
+> 
+> William Sit <wyscc@cunyvm.cuny.edu> writes:
+> 
+> > > Heiko Scheit <heiko.scheit@mpi-hd.mpg.de> writes:
+> > > [snipped]
+> > >   echo "digits(DIGITS); sqrt(2.)" | axiom
+> > > One can see that for
+> > > > DIGITS=121278-121280 the result is not correct.  For 121290 digits the
+> > > > result is OK again.  As reference the output of Mathematica is given
+> > > > in the last row.
+> > > >
+> > > > DIGITS    |         result
+> > > > --------------------------------
+> > > > 121275    |    8347436383 149
+> > > > 121276    |    8347436383 14897
+> > > > 121277    |    8347436383 148974
+> > > > 121278    |    8347436382 1263421
+> > > > 121279    |    8347436382 9853356
+> > > > 121280    |    8347436383 114184622
+> > > > 121290    |    8347436383 1489743406 4670264
+> > > > ---       |    8347436383 1489743406 467026400   (Mathematica output)
+> > > [snipped]
+> > 
+> > I verified that NAG 2.3 version gives correct result for 121278-121280 (RedHat
+> > 9.0, i386 Pentium II (MMX) simulated on a Mac OS 10.2.8 using Virtual PC 6.01).
+> > 
+> > 121278       8347436383 1489743
+> > 121279       8347436383 14897434
+> > 121280       8347436383 148974341
+
+\start
+Date: Tue, 10 Aug 2004 02:02:20 -0400
+From: root <daly@idsi.net>
+To: axiom-developer@nongnu.org, axiom-math@nongnu.org
+Subject: [Axiom-developer] musings on notation
+Cc: Sean Cleary <cleary@sci.ccny.cuny.edu>, Douglas Troeger <dtroeger@cssfs0.engr.ccny.cuny.edu>, Gilbert Baumslag <gilbert@sci.ccny.cuny.edu>, Richard Fateman <fateman@cs.berkeley.edu>, Tim Daly <daly@idsi.net>, Paul Graham <tryarc@paulgraham.com>
+
+I'm reading "Hackers & Painters" by Paul Graham and pondering some
+of his comments in relation to Axiom. 
+
+Chapter 11 is about "The Hundred-Year Language". I've been aiming
+Axiom at the "30 Year Horizon", which you've all heard from me before
+so it's obvious why Paul's notion appeals to me. 
+
+Paul makes the comment that programs are just notation and that we
+ought to give thought to the idea of "designing" the notation so that
+it says the things we want to say in an elegant way. In particular,
+Axiom's notation is much closer to mathematics than most other notations.
+
+Axiom, being basically mathematics, could use a large dose of this 
+advice. Historically math has made progress based on notations (e.g.
+0, dx/dy, matrices). At present the best we seem to strive for is to
+mimic standard math notation on output as closely as possible.
+
+However, I've been scratching at a more general idea that could be
+explored in Axiom. Axiom adds some ideas new, novel, and unique in
+mathematics which we have not recognized notationally. For example,
+the idea of "process", the idea of "functors", or "provisos".
+
+We have been limiting the idea of "process" to represent traditional
+mathematical functions. We tend to adopt the notation f(x)=
+
+However, one of the ideas we're pondering (indefinites) seems to me
+to need a new notation. It is clear that one way to think about an
+indefinite integer, for example, is as a loop. So, as Fateman pointed
+out, we might want to raise a matrix M to an indefinite power N. This
+could be expressed as 
+  (let (X=I) for i in 1..N do X=X*M)
+
+This is a procedural, semi-function, way of thinking about the solution.
+We do not yet have a decent notation for a process. Such a notation
+would be as valuable as the leap from summation to integration. It would
+allow the "30 year horizon computational mathematician" to write process
+objects, compute functions over processes as well as processes over
+functions (which we now do). 
+
+It might be time to consider a notation using distinct marks chosen
+from a non-mathematical alphabet (such as a pictographic language
+like chinese or japanese) to represent the new ideas.
+
+Notation is a way to encapsulate thought. I think Axiom needs to 
+pioneer a notation to encapsulate the ideas it presents (functors,
+for instance) cleanly so we use mathematics (operators, proofs, 
+state spaces, mappings) to think, compute, and communicate the ideas 
+clearly.
+
+Obviously I'm not the first to think of this issue so I'm musing in
+public with the hope of getting references. I'll collect what I
+can and set up a webpage devoted to the sources if there is enough
+of a response.
+
+\start
+Date: Tue, 10 Aug 2004 11:51:26 -0700 (PDT)
+From: C Y <smustudent1@yahoo.com>
+To: daly@idsi.net, axiom-developer@nongnu.org, axiom-math@nongnu.org
+Subject: Re: [Axiom-developer] musings on notation
+Cc: Gilbert Baumslag <gilbert@sci.ccny.cuny.edu>, Douglas Troeger <dtroeger@cssfs0.engr.ccny.cuny.edu>, Sean Cleary <cleary@sci.ccny.cuny.edu>, Richard Fateman <fateman@cs.berkeley.edu>, Tim Daly <daly@idsi.net>, Paul Graham <tryarc@paulgraham.com>
+
+> Notation is a way to encapsulate thought. I think Axiom needs to 
+> pioneer a notation to encapsulate the ideas it presents (functors,
+> for instance) cleanly so we use mathematics (operators, proofs, 
+> state spaces, mappings) to think, compute, and communicate the ideas 
+> clearly.
+
+I don't have any profound insights as far as notation, but I would
+suggest a particular documentation approach to this type of work.
+
+Mathematical notation is implimented (or at least based on) standard
+mathematical ideas because they are intuitive to the normal mathematics
+user.  Unique notation, however useful or powerful it might be, will be
+rejected by all but a few unless two things happen:
+
+1)  The notation becomes a standard way of doing something useful in a
+computer algebra system
+2)  End users are compelled to learn the notation because they can't
+live without the extra expressiveness/features/etc. it provides.
+
+1) is wrapped up in 2), in my opinion.  And the only way to get a foot
+in the door with 2) is to a) document the new notation comprehensively,
+clearly, and usably and b) provide non-trivial useful examples where
+the new notation solves a problem where old notation would have had
+great difficulties.  We have to sell the new notation, not just develop
+it.  We have to make people want it.
+
+The tool that comes to mind as an effectively marketed tool is Sun's
+new system tool dtrace.  Their strategy was simple but very effective -
+they showed useful examples where subtle system problems were
+identified by dtrace quickly where no other system tools could have
+done it nearly as well.  I think any new notation Axiom is going to
+introduce will have to do the same - not just propose it and show it is
+elegant, but have cases of it effectively addressing real world (or at
+least math world) problems.  Show people that it is worth the time and
+pain to learn new concepts and tools.  Then, if people like the new
+abilities well enough, perhaps a standard can be created.
+
+I would also suggest this be the figure of merit for proposed new
+notation - not only that it be powerful in theory, but shown to be
+powerful in interesting examples.  Just my 2c.
+
+\start
+From: Martin Rubey <martin.rubey@univie.ac.at>
+Date: Tue, 10 Aug 2004 21:42:11 +0000
+To: daly@idsi.net
+Subject: [Axiom-developer] Re: [Axiom-math] musings on notation
+
+root writes:
+...
+
+ > However, I've been scratching at a more general idea that could be
+ > explored in Axiom. Axiom adds some ideas new, novel, and unique in
+ > mathematics which we have not recognized notationally. For example,
+ > the idea of "process", the idea of "functors", or "provisos".
+ > 
+ > We have been limiting the idea of "process" to represent traditional
+ > mathematical functions. We tend to adopt the notation f(x)=
+ > 
+ > However, one of the ideas we're pondering (indefinites) seems to me
+ > to need a new notation. It is clear that one way to think about an
+ > indefinite integer, for example, is as a loop. So, as Fateman pointed
+ > out, we might want to raise a matrix M to an indefinite power N. This
+ > could be expressed as 
+ >   (let (X=I) for i in 1..N do X=X*M)
+ > 
+ > This is a procedural, semi-function, way of thinking about the solution.
+ > We do not yet have a decent notation for a process. Such a notation
+ > would be as valuable as the leap from summation to integration. It would
+ > allow the "30 year horizon computational mathematician" to write process
+ > objects, compute functions over processes as well as processes over
+ > functions (which we now do). 
+...
+
+Hm, what's wrong with the current notation "f(x)=" ? Axiom does allow you to
+define, for example
+
+^(x, n)==reduce(*, [x for i in 1..n])
+
+and use it as you would use any other function:
+
+matrix([[0,1],[1,0]]) ^ 2.
+
+What could be more decent?
+
+Yes, "Indefinite Integers" are missing, but we do have good notation (and
+representation for "procedural" functions)
+
+Do I miss something?
+
+\start
+Date: Wed, 11 Aug 2004 01:31:23 -0400
+From: root <daly@idsi.net>
+To: pg@archub.org
+Subject: [Axiom-developer] Re: musings on notation
+
+Paul,
+
+Paul Graham wrote:
+>The thing to do would be to show how you can make some
+>existing e.g. Lisp program shorter by using functors.
+
+Actually Axiom and its programming language do make programs much
+shorter. It closely mirrors the mathematics and uses a unification
+of the idea of categories from math with the idea of type hierarchy
+from comp sci to get very expressive, short programs. Most functions
+are less than 10 lines long and on average are below that length. The
+resulting algorithms are extremely readable (provided you know the
+theory, of course).
+
+It's not the length of the program that I'm trying to optimize but
+the length of the thought process. Imagine having to say "take the
+limit of this function as x tends toward zero such that given any
+epsilon we can always find a delta... We don't do this. We just say
+integrate and we just write the \int symbol.
+
+The problem that needs to be attacked, however, is that there doesn't
+appear to be a notation that I could write by hand for a "thing" that
+has the properties of a program (including the notion of process) as
+well as the properties of a mathematical object. (Or the "thing" that
+has the properties of a closure as well as a mathematical object).
+
+Let me try an example. Consider the simple case of trying to raise a
+square matrix to an integer power:
+ 
+ P = 3
+ M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+ M^P
+
+which we know how to do. 
+
+The harder case is to assume we don't know the actual value of P but
+we know its Category. So if an IndefiniteInteger which have the
+property of integers but we don't say which one. IndefiniteInteger is
+a type we understand so we can say:
+
+ P = IndefiniteInteger()
+ M = SquareMatrix(2)
+ M^P
+
+which implies that we have to compute a symbolic object (M^P) but know
+that P is of some well-defined type with certain properties but with
+unspecified value. We can't compute it's actual value until P takes on
+a particular integer value.
+
+The notational case is even harder. So I'd like to be able
+to say:
+
+ P = Program(foo)
+ M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+ M^P
+
+but first I need to define categorical properties of the "Program"
+type. So it might be a functor of the form:
+
+ Program(C:Code) -> Integer()
+
+that is, a Program type is Categorically defined to accept things
+of type Code and is guaranteed to produce an Integer(). Notice
+what happened here. I'm trying to raise a square matrix to an
+unspecified power and all I can guarantee is that the operation
+WOULD be defined if I were to compute it. I want a name for this
+concept "the operation would be defined if we run it". 
+
+Now mathematically this is hard because we haven't defined the
+Category structure for Code. Do we require all Code functions to be
+total (a definite valid value for every input?). Do we require the
+Category of Stateless so that the function always returns the same
+result? If so, we could functionally compose Program types, define
+operators, and be able to compute:
+
+  Q = P*P
+
+where the '*' function is
+ 
+  *(Program,Program) -> Program
+
+However, Program objects could include the notion of "running" over
+time (unless you subscribe to Dijkstra's view). There is some previous
+work in this area in lisp (scheme has continuations, lisp has closure, 
+delay and force). I'd like to distinguish these "special property" 
+objects with a new mathematical notation so they become apparent.
+
+Thus, a polynomial that uses P above is not obviously "runnable" if
+we just create a program variable and use it in the polynomial:
+
+ p = Program(knarlyfunction)
+ poly = p^2 + 2*p + 1
+
+'poly' has a value that  now depends on {running, forcing, continuing} p.
+
+
+
+
+I'm suggesting that we need to have a "run, force, continue" notation
+similar to integration, with integration we normally write:
+
+ integrate(poly,p)
+
+to integrate poly with respect to p. With programs we could say
+
+ force(poly)
+
+where 'force' is a fancy looking kanji character on input and output.
+The reason for choosing a fancy character is to "lift" the idea of
+forcing functions into the notation so we can start defining the 
+difference between
+
+  force( integrate(poly,p) )
+
+and 
+
+  integrate( force(poly) , p)
+
+or even
+
+ force( force(poly) )
+
+where 'force' means "the operation would be defined if we run it".
+
+
+
+This raising the question of how this new notational idea composes with
+other notations. What does kanji-F (force) mean and what are its
+properties?
+ 
+
+
+
+Indeed, some mathematical problems lend themselves well to such a
+notation. Consider a function that, when integrated, returns multiple
+branches. This could be handled by continuations. So in the computatation
+
+                                | x<0 => sin(x)
+                                |
+  integrate(knarlyfunction,x) =>| x=0 => 0
+                                |
+                                | x>0 => cos(x)
+
+consider what could happen. Somewhere in the integration it 
+becomes apparent that, say, the result is discontinuous at 0.
+The code breaks the computation into 3 delayed branches (or
+continuations, or closures, or whatever) and returns these
+continuations unforced.
+
+  kanji-C1 = Program(knarlyfunction, proviso(x<0))
+  kanji-C2 = Program(knarlyfunction, proviso(x=0))
+  kanji-C3 = Program(knarlyfunction, proviso(x>0))
+
+so kanji-C1 is a closure objects that can return a result. 
+and then does 
+
+  force(kanji-C1)
+  force(kanji-C2)
+  force(kanji-C3)
+
+
+Consider what happens if we think about this notationally rather
+than computationally. We could state that 
+
+  integrate(knarlyfunction,x) => {kanji-C1, kanji-C2, kanji-C3}
+
+and leave the results as symbolic values rather than forcing them.
+Since we are building symbolic mathematical software this is a 
+ideally what we'd like to be able to do. Then we could evaluate
+a polynomial thus:
+
+  poly = x^2 + 2*x + 3
+  eval(poly, x==kanji-C1) 
+
+and get the result
+
+  kanji-C4
+
+and force(kanji-C4) => sin(x)&2 + 2*sin(x) + 3
+
+
+
+The overall thought is that if we have a notation that will allow
+us to write results using pencil-and-paper then we can begin to
+express what these things mean in a computational mathematics system.
+
+Currently we're using the ideas but we haven't reified them.
+
+
+
+
+CY had set me to thinking about this earlier today with his email:
+==================================================================
+
+
+> C Y Student wrote:
+> I don't have any profound insights as far as notation, but I would
+> suggest a particular documentation approach to this type of work.
+> 
+> Mathematical notation is implimented (or at least based on) standard
+> mathematical ideas because they are intuitive to the normal mathematics
+> user.  Unique notation, however useful or powerful it might be, will be
+> rejected by all but a few unless two things happen:
+> 
+> 1)  The notation becomes a standard way of doing something useful in a
+> computer algebra system
+> 2)  End users are compelled to learn the notation because they can't
+> live without the extra expressiveness/features/etc. it provides.
+> 
+> 1) is wrapped up in 2), in my opinion.  And the only way to get a foot
+> in the door with 2) is to a) document the new notation comprehensively,
+> clearly, and usably and b) provide non-trivial useful examples where
+> the new notation solves a problem where old notation would have had
+> great difficulties.  We have to sell the new notation, not just develop
+> it.  We have to make people want it.
+> 
+> The tool that comes to mind as an effectively marketed tool is Sun's
+> new system tool dtrace.  Their strategy was simple but very effective -
+> they showed useful examples where subtle system problems were
+> identified by dtrace quickly where no other system tools could have
+> done it nearly as well.  I think any new notation Axiom is going to
+> introduce will have to do the same - not just propose it and show it is
+> elegant, but have cases of it effectively addressing real world (or at
+> least math world) problems.  Show people that it is worth the time and
+> pain to learn new concepts and tools.  Then, if people like the new
+> abilities well enough, perhaps a standard can be created.
+> 
+> I would also suggest this be the figure of merit for proposed new
+> notation - not only that it be powerful in theory, but shown to be
+> powerful in interesting examples.  Just my 2c.
+
+\start
+From: Martin Rubey <martin.rubey@univie.ac.at>
+Date: Wed, 11 Aug 2004 12:54:36 +0000
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] Re: musings on notation
+Cc: pg@archub.org
+
+root writes:
+ > The problem that needs to be attacked, however, is that there doesn't
+ > appear to be a notation that I could write by hand for a "thing" that
+ > has the properties of a program (including the notion of process) as
+ > well as the properties of a mathematical object. (Or the "thing" that
+ > has the properties of a closure as well as a mathematical object).
+
+Sorry, but I still do not understand. In fact, I don't see the need for such a
+notation. I'd say that "programs" are just "mathematical objects"... After all,
+a polynomial for example, or better, the cosine is definitely a mathematical
+object, but it's also a "program".
+
+ > Let me try an example. Consider the simple case of trying to raise a
+ > square matrix to an integer power:
+ >  
+ >  P = 3
+ >  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+ >  M^P
+ > 
+ > which we know how to do. 
+
+OK.
+
+ > The harder case is to assume we don't know the actual value of P but
+ > we know its Category. So if an IndefiniteInteger which have the
+ > property of integers but we don't say which one. IndefiniteInteger is
+ > a type we understand so we can say:
+ > 
+ >  P = IndefiniteInteger()
+ >  M = SquareMatrix(2)
+ >  M^P
+
+Well, we do not yet have reached a conclusion what an IndefiniteInteger should
+be, do we? There is the possibility described by Davenport and Faure, and
+certainly there are others. In the above I also have trouble determining the
+type of M^P. I don't think you meant to have an exponentiation of domains? So
+it should probably read
+
+ P : IndefiniteInteger()
+ M : SquareMatrix(2) = matrix([[1,2],[3,4]])
+ M^P
+
+or
+
+ P : IndefiniteInteger()
+ M : IndefiniteSquareMatrix(2)
+ M^P
+
+or something like that. I'm not sure whether we want to modify the domain
+SquareMatrix to allow for exponentiation with an IndefiniteInteger, but on the
+other hand, why not? The result would be an IndefiniteSquareMatrix (or the zero
+matrix or the identity -- oops, bug report on the way), that's for sure...
+
+ > The notational case is even harder. So I'd like to be able
+ > to say:
+ > 
+ >  P = Program(foo)
+ >  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+ >  M^P
+
+What do you mean by that? Is M^P a program, that evaluates to a
+SquareMatrix(2)? I don't think that there is a notational problem here.
+I don't really know whether an operator that delays execution of a program
+would be useful. Its consequences for the type-system are -- I admit -- not
+easy to foresee. However, I have the feeling that we do not have the userbase
+yet to explore these fields. I have the feeling, that it disperses our "energy"
+a little, however.
+
+I think it would be good to continue the discussion on indefinite things, but
+one such topic is enough -- for me at least. One suggestion: could we have a
+wishlist on the savannah website? Maybe registered users could even vote for
+priorities there?
+
+All the best,
+
+\start
+Date: Wed, 11 Aug 2004 13:19:42 +0100
+From: Mike Dewar <miked@nag.co.uk>
+To: axiom-developer@nongnu.org, axiom-math@nongnu.org
+Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation
+Cc: W Naylor <wn@cs.bath.ac.uk>
+
+I don't know if Bill Naylor subscribes to this list, but his PhD (at
+Bath, supervised by James Davenport) involved using straight-line
+programs to represent polynomials in Axiom.  Just as with other
+mathematical objects you could do arithmetic with them, perform
+operations such as GCD computations etc., however their representation
+was as an explicit program.  These programs were represented in Axiom as
+instances of domains in the usual way - if I remember rightly the
+infrastructure he created was quite extensive.  I don't know if this
+work really addresses Tim's original thoughts about notation which
+started off this thread but it might be worth looking at or even
+reviving.  
+
+Mike.
+
+On Wed, Aug 11, 2004 at 12:54:36PM +0000, Martin Rubey wrote:
+> root writes:
+>  > The problem that needs to be attacked, however, is that there doesn't
+>  > appear to be a notation that I could write by hand for a "thing" that
+>  > has the properties of a program (including the notion of process) as
+>  > well as the properties of a mathematical object. (Or the "thing" that
+>  > has the properties of a closure as well as a mathematical object).
+> 
+> Sorry, but I still do not understand. In fact, I don't see the need for such a
+> notation. I'd say that "programs" are just "mathematical objects"... After all,
+> a polynomial for example, or better, the cosine is definitely a mathematical
+> object, but it's also a "program".
+> 
+>  > Let me try an example. Consider the simple case of trying to raise a
+>  > square matrix to an integer power:
+>  >  
+>  >  P = 3
+>  >  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+>  >  M^P
+>  > 
+>  > which we know how to do. 
+> 
+> OK.
+> 
+>  > The harder case is to assume we don't know the actual value of P but
+>  > we know its Category. So if an IndefiniteInteger which have the
+>  > property of integers but we don't say which one. IndefiniteInteger is
+>  > a type we understand so we can say:
+>  > 
+>  >  P = IndefiniteInteger()
+>  >  M = SquareMatrix(2)
+>  >  M^P
+> 
+> Well, we do not yet have reached a conclusion what an IndefiniteInteger should
+> be, do we? There is the possibility described by Davenport and Faure, and
+> certainly there are others. In the above I also have trouble determining the
+> type of M^P. I don't think you meant to have an exponentiation of domains? So
+> it should probably read
+> 
+>  P : IndefiniteInteger()
+>  M : SquareMatrix(2) = matrix([[1,2],[3,4]])
+>  M^P
+> 
+> or
+> 
+>  P : IndefiniteInteger()
+>  M : IndefiniteSquareMatrix(2)
+>  M^P
+> 
+> or something like that. I'm not sure whether we want to modify the domain
+> SquareMatrix to allow for exponentiation with an IndefiniteInteger, but on the
+> other hand, why not? The result would be an IndefiniteSquareMatrix (or the zero
+> matrix or the identity -- oops, bug report on the way), that's for sure...
+> 
+>  > The notational case is even harder. So I'd like to be able
+>  > to say:
+>  > 
+>  >  P = Program(foo)
+>  >  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+>  >  M^P
+> 
+> What do you mean by that? Is M^P a program, that evaluates to a
+> SquareMatrix(2)? I don't think that there is a notational problem here.
+> I don't really know whether an operator that delays execution of a program
+> would be useful. Its consequences for the type-system are -- I admit -- not
+> easy to foresee. However, I have the feeling that we do not have the userbase
+> yet to explore these fields. I have the feeling, that it disperses our "energy"
+> a little, however.
+> 
+> I think it would be good to continue the discussion on indefinite things, but
+> one such topic is enough -- for me at least. One suggestion: could we have a
+> wishlist on the savannah website? Maybe registered users could even vote for
+> priorities there?
+
+\start> 
+Date: Wed, 11 Aug 2004 09:11:42 -0400
+From: root <daly@idsi.net>
+To: martin.rubey@univie.ac.at
+Subject: Re: [Axiom-developer] Re: musings on notation
+Cc: pg@archub.org
+
+Martin,
+ 
+> I think it would be good to continue the discussion on indefinite things, but
+> one such topic is enough -- for me at least. One suggestion: could we have a
+> wishlist on the savannah website? Maybe registered users could even vote for
+> priorities there?
+
+Such a wish list is a good idea. Rather than have it centrally maintained,
+however, why don't we try collaborating on it? Given Bill Page's wiki
+technology it is possible for you to create a wish list web page on the
+Axiom wiki site. Visit http://page.axiom-developer.org
+
+Btw, I've incorporated most of your changes. I'm documenting and testing
+them for potential breakage.
+
+\start
+Date: Wed, 11 Aug 2004 09:13:08 -0400
+From: root <daly@idsi.net>
+To: martin.rubey@univie.ac.at
+Subject: Re: [Axiom-developer] Re: musings on notation
+Cc: pg@archub.org
+
+Mark,
+
+Norggg... sorry that last was for Mark Murray. ...  Btw, I've incorporated
+most of your changes. I'm documenting and testing them for potential
+breakage.
+
+
+\start
+Date: Wed, 11 Aug 2004 08:30:28 -0400
+From: "Page, Bill" <Bill.Page@drdc-rddc.gc.ca>
+To: axiom-developer@nongnu.org
+Subject: RE: [Axiom-math] Re: [Axiom-developer] Re: musings on notation
+Cc: W Naylor <wn@cs.bath.ac.uk>
+
+Tim, Mike, et al.
+
+Here is Bill Naylor's web site:
+
+  http://www.scl.csd.uwo.ca/~bill/
+
+I think it would be very interesting to resurrect these
+ideas on "Straight Line Programs"!
+
+Regards,
+Bill Page.
+
+> -----Original Message-----
+> From: Mike Dewar [mailto:miked@nag.co.uk]
+> Sent: Wednesday, August 11, 2004 8:20 AM
+> To: axiom-developer@nongnu.org; axiom-math@nongnu.org
+> Cc: W Naylor
+> Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings 
+> on notation
+> 
+> 
+> I don't know if Bill Naylor subscribes to this list, but his PhD (at
+> Bath, supervised by James Davenport) involved using straight-line
+> programs to represent polynomials in Axiom.  Just as with other
+> mathematical objects you could do arithmetic with them, perform
+> operations such as GCD computations etc., however their representation
+> was as an explicit program.  These programs were represented 
+> in Axiom as instances of domains in the usual way - if I remember
+> rightly the infrastructure he created was quite extensive.  I don't
+> know if this work really addresses Tim's original thoughts about
+> notation which started off this thread but it might be worth looking
+> at or even reviving.  
+
+\start
+Date: Wed, 11 Aug 2004 13:55:25 +0100
+From: Mark Murray <markm@FreeBSD.org>
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] Re: musings on notation 
+
+root writes:
+> Mark,
+> 
+> Norggg... sorry that last was for Mark Murray. ...  Btw, I've incorporated
+> most of your changes. I'm documenting and testing them for potential
+> breakage.
+
+Excellent, thank you!
+
+\start
+Date: Wed, 11 Aug 2004 14:47:32 +0100
+From: Mike Dewar <miked@nag.co.uk>
+To: "Bill Page (E-mail)" <bill.page1@sympatico.ca>
+Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation
+Cc: W Naylor <wn@cs.bath.ac.uk>
+
+Actually Bill left ORCCA more than two years ago and after teaching in
+New Zealand is back at Bath working on Web Services.  His current home
+page is http://www.cs.bath.ac.uk/~wn which I see includes his PhD thesis
+and the accompanying software.
+
+Cheers, Mike.
+
+On Wed, Aug 11, 2004 at 08:30:28AM -0400, Page, Bill wrote:
+> Tim, Mike, et al.
+> 
+> Here is Bill Naylor's web site:
+> 
+>   http://www.scl.csd.uwo.ca/~bill/
+> 
+> I think it would be very interesting to resurrect these
+> ideas on "Straight Line Programs"!
+> 
+> Regards,
+> Bill Page.
+> 
+> > -----Original Message-----
+> > From: Mike Dewar [mailto:miked@nag.co.uk]
+> > Sent: Wednesday, August 11, 2004 8:20 AM
+> > To: axiom-developer@nongnu.org; axiom-math@nongnu.org
+> > Cc: W Naylor
+> > Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings 
+> > on notation
+> > 
+> > 
+> > I don't know if Bill Naylor subscribes to this list, but his PhD (at
+> > Bath, supervised by James Davenport) involved using straight-line
+> > programs to represent polynomials in Axiom.  Just as with other
+> > mathematical objects you could do arithmetic with them, perform
+> > operations such as GCD computations etc., however their representation
+> > was as an explicit program.  These programs were represented 
+> > in Axiom as instances of domains in the usual way - if I remember
+> > rightly the infrastructure he created was quite extensive.  I don't
+> > know if this work really addresses Tim's original thoughts about
+> > notation which started off this thread but it might be worth looking
+> > at or even reviving.  
+
+\start
+Date: Wed, 11 Aug 2004 15:07:56 +0100 (BST)
+From: W Naylor <wn@cs.bath.ac.uk>
+To: Mike Dewar <miked@nag.co.uk>
+Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation
+
+Well you can check out my thesis from my web site if you like:
+
+http://www.cs.bath.ac.uk/~wn/thesis.ps.gz
+
+there is also a tar file of some of the code I wrote as well (can't 
+remember if it works though!!),
+
+cheers,
+
+Bill
+
+On Wed, 11 Aug 2004, Mike Dewar wrote:
+
+> I don't know if Bill Naylor subscribes to this list, but his PhD (at
+> Bath, supervised by James Davenport) involved using straight-line
+> programs to represent polynomials in Axiom.  Just as with other
+> mathematical objects you could do arithmetic with them, perform
+> operations such as GCD computations etc., however their representation
+> was as an explicit program.  These programs were represented in Axiom as
+> instances of domains in the usual way - if I remember rightly the
+> infrastructure he created was quite extensive.  I don't know if this
+> work really addresses Tim's original thoughts about notation which
+> started off this thread but it might be worth looking at or even
+> reviving.  
+> 
+> Mike.
+> 
+> On Wed, Aug 11, 2004 at 12:54:36PM +0000, Martin Rubey wrote:
+> > root writes:
+> >  > The problem that needs to be attacked, however, is that there doesn't
+> >  > appear to be a notation that I could write by hand for a "thing" that
+> >  > has the properties of a program (including the notion of process) as
+> >  > well as the properties of a mathematical object. (Or the "thing" that
+> >  > has the properties of a closure as well as a mathematical object).
+> > 
+> > Sorry, but I still do not understand. In fact, I don't see the need for such a
+> > notation. I'd say that "programs" are just "mathematical objects"... After all,
+> > a polynomial for example, or better, the cosine is definitely a mathematical
+> > object, but it's also a "program".
+> > 
+> >  > Let me try an example. Consider the simple case of trying to raise a
+> >  > square matrix to an integer power:
+> >  >  
+> >  >  P = 3
+> >  >  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+> >  >  M^P
+> >  > 
+> >  > which we know how to do. 
+> > 
+> > OK.
+> > 
+> >  > The harder case is to assume we don't know the actual value of P but
+> >  > we know its Category. So if an IndefiniteInteger which have the
+> >  > property of integers but we don't say which one. IndefiniteInteger is
+> >  > a type we understand so we can say:
+> >  > 
+> >  >  P = IndefiniteInteger()
+> >  >  M = SquareMatrix(2)
+> >  >  M^P
+> > 
+> > Well, we do not yet have reached a conclusion what an IndefiniteInteger should
+> > be, do we? There is the possibility described by Davenport and Faure, and
+> > certainly there are others. In the above I also have trouble determining the
+> > type of M^P. I don't think you meant to have an exponentiation of domains? So
+> > it should probably read
+> > 
+> >  P : IndefiniteInteger()
+> >  M : SquareMatrix(2) = matrix([[1,2],[3,4]])
+> >  M^P
+> > 
+> > or
+> > 
+> >  P : IndefiniteInteger()
+> >  M : IndefiniteSquareMatrix(2)
+> >  M^P
+> > 
+> > or something like that. I'm not sure whether we want to modify the domain
+> > SquareMatrix to allow for exponentiation with an IndefiniteInteger, but on the
+> > other hand, why not? The result would be an IndefiniteSquareMatrix (or the zero
+> > matrix or the identity -- oops, bug report on the way), that's for sure...
+> > 
+> >  > The notational case is even harder. So I'd like to be able
+> >  > to say:
+> >  > 
+> >  >  P = Program(foo)
+> >  >  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+> >  >  M^P
+> > 
+> > What do you mean by that? Is M^P a program, that evaluates to a
+> > SquareMatrix(2)? I don't think that there is a notational problem here.
+> > I don't really know whether an operator that delays execution of a program
+> > would be useful. Its consequences for the type-system are -- I admit -- not
+> > easy to foresee. However, I have the feeling that we do not have the userbase
+> > yet to explore these fields. I have the feeling, that it disperses our "energy"
+> > a little, however.
+> > 
+> > I think it would be good to continue the discussion on indefinite things, but
+> > one such topic is enough -- for me at least. One suggestion: could we have a
+> > wishlist on the savannah website? Maybe registered users could even vote for
+> > priorities there?
+
+\start
+Date: 11 Aug 2004 10:57:53 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] Axiom on sparc solaris
+
+Greetings!  This is low priority now, but the Makefile.solaris was
+empty.
+
+Take care,
+
+root <daly@idsi.net> writes:
+
+> Camm,
+> 
+> I don't have access to a solaris machine.
+> Please send me the Makefile.solaris that gets created.
+
+\start
+Date: Wed, 11 Aug 2004 23:53:22 +0200
+From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= <g.vanuxem@wanadoo.fr>
+To: Axiom Developer <axiom-developer@nongnu.org>
+Subject: [Axiom-developer] axiom and CMUCL
+
+Hi,
+
+Is it possible to compile axiom with cmucl and how ?
+
+\start
+Date: Thu, 12 Aug 2004 14:20:09 +0200
+From: "Weiss, Juergen" <weiss@uni-mainz.de>
+To: =?iso-8859-1?Q?Vanuxem_Gr=E9gory?= <g.vanuxem@wanadoo.fr>
+Subject: RE: [Axiom-developer] axiom and CMUCL
+
+Compiling Axiom with CMU CL requires some minor changes to the lisp =
+code. A
+snapshot of a CMU CL version may be found =
+www.uni-mainz.de/~weiss/axiom_cmu.tgz.
+But beware, it's an old snapshot (about a year old) and you have to make
+some changes in the makefiles by hand. Your mileage may vary.
+
+With best regards
+
+Juergen Weiss
+
+
+> -----Original Message-----
+> From: axiom-developer-bounces+weiss=uni-mainz.de@nongnu.org 
+> [mailto:axiom-developer-bounces+weiss=uni-mainz.de@nongnu.org]
+>  On Behalf Of Vanuxem Gr=E9gory
+> Sent: Wednesday, August 11, 2004 11:53 PM
+> To: Axiom Developer
+> Subject: [Axiom-developer] axiom and CMUCL
+> 
+> Hi,
+> 
+> Is it possible to compile axiom with cmucl and how ?
+
+\start
+Date: Thu, 12 Aug 2004 11:11:57 -0400
+From: root <daly@idsi.net>
+To: weiss@uni-mainz.de
+Subject: Re: [Axiom-developer] axiom and CMUCL
+
+Juergen,
+
+Do you have a list of those changes? I'll try to merge them.
+
+\start
+Date: 11 Aug 2004 10:51:29 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: Mark Murray <mark@grondar.org>
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+Cc: Axiom Developers <axiom-developer@nongnu.org>
+
+Greetings!
+
+Thanks for putting this together, Mark!
+
+Two items:
+
+1) The patch below needs slight modification -- the variable
+   compiler::*default-system-p* should be set to nil in the final
+   image.  I'll include the latest patches I am testing now that do
+   this. 
+
+2) I see you have incorporated the longer of the two patches.  I would
+   encourage the use of the shorter on i386, amd64, m68k, arm, sparc,
+   powerpc, and s390 at present.  We hope to extend the validity of of
+   the shorter patch to ia64 alpha hppa mips and mipsel soon.  The
+   longer patch is  only required on these latter platforms as a
+   workaround at this juncture.  Perhaps both targets could exist in
+   the makefiles.  In fact, it is possible to choose between the two
+   with the lisp reader macro #+bfd
+
+Take care,
+
+=============================================================================
+patch.all
+=============================================================================
+--- ./src/Makefile.pamphlet.orig	2004-06-27 15:00:46.000000000 +0000
++++ ./src/Makefile.pamphlet	2004-07-05 15:56:03.000000000 +0000
+@@ -24,8 +24,11 @@
+ 
+ <<environment>>=
+ SETUP=scriptsdir libdir
+-DIRS=bootdir interpdir sharedir algebradir inputdir etcdir clefdir docdir \
+-     graphdir
++ifeq ($(PASS1),)
++DIRS=bootdir interpdir sharedir algebradir inputdir etcdir clefdir docdir graphdir
++else
++DIRS=bootdir interpdir sharedir algebradir #inputdir etcdir clefdir docdir graphdir
++endif
+ DOCS=scriptsdocument libdocument ${DIRS:dir=document} 
+ CLNS=scriptsclean libclean ${DIRS:dir=clean} 
+ 
+--- ./src/graph/Makefile.pamphlet.orig	2004-06-27 15:00:59.000000000 +0000
++++ ./src/graph/Makefile.pamphlet	2004-07-05 19:53:59.000000000 +0000
+@@ -414,7 +414,7 @@
+ 
+ ${DOC}/viewports:
+ 	@ echo 25 making ${DOC}/viewports from ${IN}/viewports 
+-	@ cp -pr ${IN}/viewports ${DOC}
++#	@ cp -pr ${IN}/viewports ${DOC}
+ 
+ <<viewmandir>>
+ <<Gdrawsdir>>
+=============================================================================
+patch.nosave (i386, amd64, m68k, arm, sparc, powerpc, and s390)
+=============================================================================
+--- ./lsp/Makefile.pamphlet.orig	2004-07-01 21:24:34.000000000 +0000
++++ ./lsp/Makefile.pamphlet	2004-07-05 16:09:27.000000000 +0000
+@@ -457,15 +457,7 @@
+ 	@echo 1 building ${LSP} ${GCLVERSION}
+ 
+ gcldir: 
+-	@echo 2 building ${GCLVERSION}
+-	@tar -zxf ${ZIPS}/${GCLVERSION}.tgz
+-<<gcl-2.6.2a-mvdir>>
+-<<gcl-2.6.2a.socket.patch>>
+-<<gcl-2.6.2a.libspad.patch>>
+-<<gcl-2.6.2a.toploop.patch>>
+-<<gcl-2.6.2a.tail-recursive.patch>>
+-<<gcl-2.6.2a.collectfn.fix>>
+-<<gclConfigureMake>>
++	echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S *load-path*))) (compiler::emit-fn t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t)))" si::*system-directory*) "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a")' | gcl
+ 	@echo 13 finished system build on `date` | tee >gcldir
+ 
+ ccldir: ${LSP}/ccl/Makefile
+--- ./src/interp/Makefile.pamphlet.orig	2004-06-27 15:01:27.000000000 +0000
++++ ./src/interp/Makefile.pamphlet	2004-07-05 16:16:32.000000000 +0000
+@@ -669,8 +669,10 @@
+ 	@ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> ${OUT}/makeint.lisp
+ 	@ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp
+ 	@ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> ${OUT}/makeint.lisp
++#	@ (cd ${OBJ}/${SYS}/bin ; \
++#	  echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+ 	@ (cd ${OBJ}/${SYS}/bin ; \
+-	  echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
++	  echo '(progn (gbc t) (setq x si::*system-directory*)(load "${OUT}/makeint.lisp") (setq si::*system-directory* x) (unintern (quote x))(gbc t)(user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+ 	@ echo 6 ${SAVESYS} created
+ 	@ cp ${SAVESYS} ${AXIOMSYS}
+ 	@ echo 6a ${AXIOMSYS} created
+=============================================================================
+patch.save (ia64 alpha hppa mips and mipsel)
+=============================================================================
+--- ./lsp/Makefile.pamphlet.orig	2004-07-01 21:24:34.000000000 +0000
++++ ./lsp/Makefile.pamphlet	2004-07-05 16:09:27.000000000 +0000
+@@ -457,15 +457,7 @@
+ 	@echo 1 building ${LSP} ${GCLVERSION}
+ 
+ gcldir: 
+-	@echo 2 building ${GCLVERSION}
+-	@tar -zxf ${ZIPS}/${GCLVERSION}.tgz
+-<<gcl-2.6.2a-mvdir>>
+-<<gcl-2.6.2a.socket.patch>>
+-<<gcl-2.6.2a.libspad.patch>>
+-<<gcl-2.6.2a.toploop.patch>>
+-<<gcl-2.6.2a.tail-recursive.patch>>
+-<<gcl-2.6.2a.collectfn.fix>>
+-<<gclConfigureMake>>
++	echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t))(setq compiler::*default-system-p* t))" si::*system-directory* (quote (list ".lsp"))) "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a")' | gcl
+ 	@echo 13 finished system build on `date` | tee >gcldir
+ 
+ ccldir: ${LSP}/ccl/Makefile
+--- ./src/algebra/Makefile.pamphlet.orig	2004-07-15 02:15:39.000000000 +0000
++++ ./src/algebra/Makefile.pamphlet	2004-07-15 02:16:48.000000000 +0000
+@@ -35190,7 +35190,8 @@
+ 	@ cp ${SRC}/doc/gloss.text ${OUT}
+ 	@ cp ${SRC}/doc/topics.data ${MID}
+ 	@ cp ${SRC}/doc/topics.data ${OUT}
+-	@ (cd ${MID} ; echo ')lisp (make-databases "" nil)' | ${INTERPSYS} )
++#	@ (cd ${MID} ; echo ')lisp (make-databases "" nil)' | ${INTERPSYS} )
++	@ (cp ${SRC}/../debian/*.daase ${MID})
+ 	@ cp ${MID}/*.daase ${OUT}
+ 	@ echo "databases up to date" >${INT}/algebra/dbcomplete
+ 
+--- ./src/boot/Makefile.pamphlet.orig	2004-06-27 15:00:58.000000000 +0000
++++ ./src/boot/Makefile.pamphlet	2004-07-05 16:19:42.000000000 +0000
+@@ -1151,7 +1151,8 @@
+ expansion. Adding a single quote symbol will break this expansion.
+ 
+ <<environment>>= 
+-CMD0=	(progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}"))
++CMD0=	(compiler::link (quote (${OBJS1})) "${SAVESYS}" (format nil "(let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t)) (when (fboundp (quote si::sgc-on)) (si::sgc-on t)) (setq compiler::*default-system-p* t)" si::*system-directory* (quote  (list ".lsp"))))
++#CMD0=	(progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}"))
+  
+ @
+ \subsection{boothdr.lisp \cite{1}}
+--- ./src/interp/Makefile.pamphlet.orig	2004-06-27 15:01:27.000000000 +0000
++++ ./src/interp/Makefile.pamphlet	2004-07-05 16:43:38.000000000 +0000
+@@ -616,8 +616,31 @@
+ 	@ echo '(load "${OUT}/c-util")' >> ${OUT}/makedep.lisp
+ 	@ echo '(unless (probe-file "${OUT}/g-util.${O}") (compile-file "${OUT}/g-util.${LISP}" :output-file "${OUT}/g-util.${O}"))' >> ${OUT}/makedep.lisp
+ 	@ echo '(load "${OUT}/g-util")' >> ${OUT}/makedep.lisp
++#	@ (cd ${MNT}/${SYS}/bin ; \
++#	   echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' | ${LISPSYS})
+ 	@ (cd ${MNT}/${SYS}/bin ; \
+-	   echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' | ${LISPSYS})
++	echo '(progn \
++		(setq si::*collect-binary-modules* t) \
++		(load "${OUT}/makedep.lisp") \
++		(compiler::link \
++			(remove-duplicates si::*binary-modules* :test (quote equal)) \
++			"$(DEPSYS)" \
++			(format nil "\
++				(setq si::*collect-binary-modules* t) \
++				(let ((si::*load-path* (cons ~S si::*load-path*))\
++                                     (si::*load-types* ~S))\
++					(compiler::emit-fn t))\
++				(load \"$(OUT)/makedep.lisp\")\
++				(gbc t)\
++				(when si::*binary-modules* \
++					(error si::*binary-modules*))\
++				(setq si::collect-binary-modules* nil si::*binary-modules* nil)\
++				(gbc t)\
++				(when (fboundp (quote si::sgc-on)) (si::sgc-on t))\
++				(setq compiler::*default-system-p* t)\
++			" si::*system-directory* (quote (list ".lsp")))\
++			"" \
++			nil))' | $(LISPSYS))
+ 	@ echo 4 ${DEPSYS} created
+ 
+ @
+@@ -669,8 +689,36 @@
+ 	@ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> ${OUT}/makeint.lisp
+ 	@ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp
+ 	@ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> ${OUT}/makeint.lisp
++#	@ (cd ${OBJ}/${SYS}/bin ; \
++#	  echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+ 	@ (cd ${OBJ}/${SYS}/bin ; \
+-	  echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
++	  echo '(progn \
++			(setq si::*collect-binary-modules* t)\
++			(setq x si::*system-directory*)\
++			(load "${OUT}/makeint.lisp")\
++			(setq si::*system-directory* x)\
++			(unintern (quote x))\
++			(compiler::link \
++				(remove-duplicates si::*binary-modules* :test (quote equal))\
++				"$(SAVESYS)" \
++				(format nil "\
++					(let ((si::*load-path* (cons ~S si::*load-path*))\
++                                             (si::*load-types* ~S))\
++						(compiler::emit-fn t))\
++					 (setq si::*collect-binary-modules* t)\
++					 (setq x si::*system-directory*)\
++					 (load \"$(OUT)/makeint.lisp\")\
++					 (setq si::*system-directory* x)\
++					 (unintern (quote x))\
++					 (when si::*binary-modules* \
++						(error si::*binary-modules*))\
++					(setq si::collect-binary-modules* nil si::*binary-modules* nil)\
++					(gbc t)\
++					(when (fboundp (quote si::sgc-on)) (si::sgc-on t))\
++					(setq compiler::*default-system-p* nil)\
++				" si::*system-directory* (quote (list ".lsp")))\
++			"$(OBJ)/$(SYS)/lib/sockio-c.o $(OBJ)/$(SYS)/lib/cfuns-c.o $(OBJ)/$(SYS)/lib/libspad.a" \
++			nil))' | $(LISPSYS))
+ 	@ echo 6 ${SAVESYS} created
+ 	@ cp ${SAVESYS} ${AXIOMSYS}
+ 	@ echo 6a ${AXIOMSYS} created
+--- src/interp/nlib.lisp.pamphlet~	2004-05-24 22:53:55.000000000 +0000
++++ src/interp/nlib.lisp.pamphlet	2004-07-19 19:59:00.000000000 +0000
+@@ -295,7 +295,16 @@
+ (defun rpackfile (filespec)
+   (setq filespec (make-filename filespec))
+   (if (string= (pathname-type filespec) "NRLIB")
+-      (recompile-lib-file-if-necessary (concat (namestring filespec) "/code.lsp"))
++      (let* ((base (pathname-name filespec))
++	     (code (concatenate 'string (namestring filespec) "/code.lsp"))
++	     (temp (concatenate 'string (namestring filespec) "/" base ".lsp"))
++	     (o (make-pathname :type "o")))
++	(si::system (format nil "cp ~S ~S" code temp))
++	(recompile-lib-file-if-necessary temp)
++	(si::system (format nil "mv ~S ~S~%" 
++			    (namestring (merge-pathnames o temp))
++			    (namestring (merge-pathnames o code)))))
++    ;(recompile-lib-file-if-necessary (concat (namestring filespec) "/code.lsp"))
+   ;; only pack non libraries to avoid lucid file handling problems    
+     (let* ((rstream (rdefiostream (list (cons 'file filespec) (cons 'mode 'input))))
+ 	   (nstream nil)
+=============================================================================
+
+Mark Murray <mark@grondar.org> writes:
+
+> Heya folks
+> 
+> Enclosed are the current set of patches I have to get Axiom working on
+> FreeBSD. A great deal of this work is Camm Maguire's; I've just been
+> shoving it around in brute-force-and-ignorance mode for a while. :-)
+> 
+> A big bit of the patch is to add "gcl-system" as a sort of GCL version.
+> if this is chosen, then the system supplied GCL is used instead of the
+> piggybacked build. For FreeBSD this works out well, as the GCL port
+> then does the job. FreeBSD also has a port of noweb, so that is used in
+> preference to the noweb piggybacked build. I've tried to make the patch
+> generic to all builds.
+> 
+> There are also some bugfixes. FreeBSD does not have a <malloc.h> include
+> (well, it does, but including it is an error), and SIGCLD is replaced by
+> the POSIX SIGCHLD. There are other sundry warning and path fixes, and
+> an attempt to get "make clean" to remove all the generated files in the
+> build (some Makefile and Makefile.dvi remnants are unaccounted for.
+> 
+> I've been running Axiom now for many months; any chances of getting the
+> some of the major bits and some of the FreeBSD build infrastructure in?
+> 
+> My offer for a FreeBSD box to test things on still stands :-)
+> 
+> M
+> --
+> Mark Murray
+> iumop ap!sdn w,I idlaH
+> Index: Makefile
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/Makefile,v
+> retrieving revision 1.11
+> diff -u -d -B -b -r1.11 Makefile
+> --- Makefile	21 Jul 2004 02:59:33 -0000	1.11
+> +++ Makefile	8 Aug 2004 10:06:11 -0000
+> @@ -7,7 +7,9 @@
+>  #GCLVERSION=gcl-2.5.2
+>  #GCLVERSION=gcl-2.6.1
+>  #GCLVERSION=gcl-2.6.2
+> -GCLVERSION=gcl-2.6.3
+> +#GCLVERSION=gcl-2.6.2a
+> +#GCLVERSION=gcl-2.6.3
+> +GCLVERSION=gcl-system
+>  AWK=gawk
+>  GCLDIR=${LSP}/${GCLVERSION}
+>  SRC=${SPD}/src
+> @@ -21,7 +23,7 @@
+>  CCLBASE=${OBJ}/${SYS}/ccl/ccllisp
+>  INSTALL=/usr/local/axiom
+>  COMMAND=${INSTALL}/mnt/${SYS}/bin/axiom
+> -TANGLE=${SPADBIN}/lib/notangle
+> +TANGLE=notangle
+>  
+>  NOISE="-o ${TMP}/trace"
+>  
+> @@ -69,6 +71,7 @@
+>  	@mkdir -p ${OBJ}/noweb
+>  	@mkdir -p ${TMP}
+>  	@mkdir -p ${MNT}/${SYS}/bin/lib
+> +ifneq "${SYS}" "freebsd"
+>  	@( cd ${OBJ}/noweb ; \
+>  	tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \
+>  	cd ${OBJ}/noweb/src ; \
+> @@ -80,6 +83,7 @@
+>  	${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \
+>                  MAN=${MNT}/${SYS}/bin/man \
+>                  TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace )
+> +endif
+>  	@echo The file marks the fact that noweb has been made > noweb
+>  
+>  nowebclean:
+> @@ -96,7 +100,13 @@
+>  	@echo 78 installing Axiom in ${INSTALL}
+>  	@mkdir -p ${INSTALL}
+>  	@cp -pr ${MNT} ${INSTALL}
+> -	@echo AXIOM=${INSTALL}/mnt/${SYS} >${COMMAND}
+> +	@echo '#!/bin/sh -' >${COMMAND}
+> +	@echo AXIOM=${INSTALL}/mnt/${SYS} >>${COMMAND}
+> +	@echo export AXIOM >>${COMMAND}
+> +	@echo DAASE='$${AXIOM}' >>${COMMAND}
+> +	@echo export DAASE >>${COMMAND}
+> +	@echo PATH='$${PATH}':'$${AXIOM}/bin' >>${COMMAND}
+> +	@echo export PATH >>${COMMAND}
+>  	@cat ${SRC}/etc/axiom >>${COMMAND}
+>  	@chmod +x ${COMMAND}
+>  	@echo 79 Axiom installation finished.
+> Index: Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/Makefile.pamphlet,v
+> retrieving revision 1.25
+> diff -u -d -B -b -r1.25 Makefile.pamphlet
+> --- Makefile.pamphlet	21 Jul 2004 02:59:33 -0000	1.25
+> +++ Makefile.pamphlet	8 Aug 2004 10:06:16 -0000
+> @@ -186,7 +186,7 @@
+>  CCLBASE=${OBJ}/${SYS}/ccl/ccllisp
+>  INSTALL=/usr/local/axiom
+>  COMMAND=${INSTALL}/mnt/${SYS}/bin/axiom
+> -TANGLE=${SPADBIN}/lib/notangle
+> +TANGLE=notangle
+>  
+>  NOISE="-o ${TMP}/trace"
+>  
+> @@ -268,6 +268,7 @@
+>  	@mkdir -p ${OBJ}/noweb
+>  	@mkdir -p ${TMP}
+>  	@mkdir -p ${MNT}/${SYS}/bin/lib
+> +ifneq "${SYS}" "freebsd"
+>  	@( cd ${OBJ}/noweb ; \
+>  	tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \
+>  	cd ${OBJ}/noweb/src ; \
+> @@ -279,6 +280,7 @@
+>  	${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \
+>                  MAN=${MNT}/${SYS}/bin/man \
+>                  TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace )
+> +endif
+>  	@echo The file marks the fact that noweb has been made > noweb
+>  
+>  nowebclean:
+> @@ -406,7 +408,13 @@
+>  	@echo 78 installing Axiom in ${INSTALL}
+>  	@mkdir -p ${INSTALL}
+>  	@cp -pr ${MNT} ${INSTALL}
+> -	@echo AXIOM=${INSTALL}/mnt/${SYS} >${COMMAND}
+> +	@echo '#!/bin/sh -' >${COMMAND}
+> +	@echo AXIOM=${INSTALL}/mnt/${SYS} >>${COMMAND}
+> +	@echo export AXIOM >>${COMMAND}
+> +	@echo DAASE='$${AXIOM}' >>${COMMAND}
+> +	@echo export DAASE >>${COMMAND}
+> +	@echo PATH='$${PATH}':'$${AXIOM}/bin' >>${COMMAND}
+> +	@echo export PATH >>${COMMAND}
+>  	@cat ${SRC}/etc/axiom >>${COMMAND}
+>  	@chmod +x ${COMMAND}
+>  	@echo 79 Axiom installation finished.
+> @@ -550,6 +558,11 @@
+>  optimizations for function calling in Axiom. This is handled automatically
+>  by changing this variable.
+>  
+> +If GCLVERSION is ``gcl-system'', then no GCL is not built locally,
+> +and it is assumed that the ``gcl'' command is available off the
+> +path. If this GCL is unsuitable for building Axiom, then very bad
+> +things will happen.
+> +
+>  NOTE WELL: IF YOU CHANGE THIS YOU SHOULD ERASE THE lsp/Makefile FILE.
+>  This will cause the build to remake the lsp/Makefile from the
+>  lsp/Makefile.pamphlet file and get the correct version. If you
+> @@ -562,7 +575,8 @@
+>  #GCLVERSION=gcl-2.6.1
+>  #GCLVERSION=gcl-2.6.2
+>  #GCLVERSION=gcl-2.6.2a
+> -GCLVERSION=gcl-2.6.3
+> +#GCLVERSION=gcl-2.6.3
+> +GCLVERSION=gcl-system
+>  @
+>  
+>  \subsection{Makefile.axposf1v3}
+> @@ -858,6 +872,53 @@
+>  <<clean>>
+>  
+>  @
+> +\subsection{Makefile.freebsd}
+> +Annoyingly enough it seems that GCL uses a default extension of .lsp
+> +rather than .lisp so we add the {\bf LISP} variable here. We need to
+> +depend on the default extension behavior because the system build
+> +will load either the interpreted or compiled form of a file depending
+> +on which is available. This varies at different stages of the build.
+> +<<Makefile.freebsd>>=
+> +# System dependent Makefile for the freebsd platform
+> +# Platform variable
+> +PLF:=FREEBSDplatform
+> +# C compiler flags
+> +CCF:="-O -pipe -fno-strength-reduce -Wall -D_GNU_SOURCE -D${PLF} -I/usr/X11R6/include -I/usr/local/include"
+> +# Loader flags
+> +LDF:="-L/usr/X11R6/lib -L/usr/local/lib"
+> +# C compiler to use
+> +CC:=gcc 
+> +AWK=awk
+> +RANLIB=ranlib
+> +TOUCH=touch
+> +TAR=tar
+> +AXIOMXLROOT=${AXIOM}/compiler
+> +O=o
+> +BYE=bye
+> +LISP=lsp
+> +DAASE=${SRC}/share
+> +# where the libXpm.a library lives
+> +XLIB=/usr/X11R6/lib
+> +
+> +ENV=PLF=${PLF} CCF=${CCF} LDF=${LDF} CC=${CC} AWK=${AWK} RANLIB=${RANLIB} \
+> +    TOUCH=${TOUCH} TAR=${TAR} AXIOMXLROOT=${AXIOMXLROOT} O=${O} BYE=${BYE} \
+> +    LISP=${LISP} DAASE=${DAASE} XLIB=${XLIB} TANGLE=${TANGLE}
+> +
+> +all: rootdirs srcsetup lspdir srcdir
+> +	@echo 45 Makefile.freebsd called
+> +	@echo 46 Environment : ${ENV} 
+> +	@echo 47 finished system build on `date` | tee >lastBuildDate
+> +
+> +<<rootdirs>>
+> +<<noweb>>
+> +<<literate commands>>
+> +<<srcsetup>>
+> +<<src>>
+> +<<lsp>>
+> +<<document>>
+> +<<clean>>
+> +
+> +@
+>  \subsection{Makefile.linux}
+>  Annoyingly enough it seems that GCL uses a default extension of .lsp
+>  rather than .lisp so we add the {\bf LISP} variable here. We need to
+> Index: lsp/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/lsp/Makefile.pamphlet,v
+> retrieving revision 1.9
+> diff -u -d -B -b -r1.9 Makefile.pamphlet
+> --- lsp/Makefile.pamphlet	21 Jul 2004 02:59:33 -0000	1.9
+> +++ lsp/Makefile.pamphlet	8 Aug 2004 10:06:20 -0000
+> @@ -744,15 +744,48 @@
+>  	  echo 20 applying toploop patch to unixport/init_gcl.lsp ; \
+>  	  patch <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.patch )
+>  @ 
+> +\subsection{GCL already installed}
+> +<<gcl-system>>=
+> +# locally installed GCL
+> +OUT=${OBJ}/${SYS}/bin
+> +
+> +all:
+> +	@echo 21 building ${LSP} ${GCLVERSION}
+> +
+> +gcldir: 
+> +	@echo 22 building for ${GCLVERSION}
+> +	echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t))(setq compiler::*default-system-p* t))" si::*system-directory* (quote (list ".lsp"))) "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a")' | gcl
+> +	@echo 23 finished gcl build on `date` | tee >gcldir
+> +
+> +ccldir: ${LSP}/ccl/Makefile
+> +	@echo 24 building CCL
+> +	@mkdir -p ${INT}/ccl
+> +	@mkdir -p ${OBJ}/${SYS}/ccl
+> +	@( cd ccl ; ${ENV} ${MAKE} )
+> +
+> +${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet
+> +	@echo 25 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet
+> +	@( cd ccl ; ${SPADBIN}/document ${NOISE} Makefile )
+> +
+> +document:
+> +	@echo 26 making docs in ${LSP}
+> +	@mkdir -p ${INT}/doc/lsp/ccl
+> +	@( cd ccl ; ${ENV} ${MAKE} document )
+> +
+> +clean:
+> +	@echo 27 cleaning ${LSP}/ccl
+> +	@( cd ccl ; ${ENV} ${MAKE} clean )
+> +@
+> +\eject
+>  <<*>>=
+>  # gcl version 2.4.1
+>  OUT=${OBJ}/${SYS}/bin
+>  
+>  all:
+> -	@echo 14 building ${LSP} ${GCLVERSION}
+> +	@echo 28 building ${LSP} ${GCLVERSION}
+>  
+>  gcldir: 
+> -	@echo 15 building ${GCLVERSION}
+> +	@echo 29 building ${GCLVERSION}
+>  	@tar -zxf ${ZIPS}/${GCLVERSION}.tgz
+>  <<gcl-2.4.1.socket.patch>>
+>  <<gcl-2.4.1.fortran.patch>>
+> @@ -762,25 +795,25 @@
+>  	./configure --enable-vssize=65536 ; \
+>  	${ENV} ${MAKE} ; \
+>  	cp unixport/saved_gcl ${OUT}/lisp )
+> -	@echo 21 finished system build on `date` | tee >gcldir
+> +	@echo 30 finished system build on `date` | tee >gcldir
+>  
+>  ccldir: ${LSP}/ccl/Makefile
+> -	@echo 22 building CCL
+> +	@echo 31 building CCL
+>  	@mkdir -p ${INT}/ccl
+>  	@mkdir -p ${OBJ}/${SYS}/ccl
+>  	@( cd ccl ; ${ENV} ${MAKE} )
+>  
+>  ${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet
+> -	@echo 23 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet
+> +	@echo 32 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet
+>  	@( cd ccl ; ${SPADBIN}/document ${NOISE} Makefile )
+>  
+>  document:
+> -	@echo 24 making docs in ${LSP}
+> +	@echo 33 making docs in ${LSP}
+>  	@mkdir -p ${INT}/doc/lsp/ccl
+>  	@( cd ccl ; ${ENV} ${MAKE} document )
+>  
+>  clean:
+> -	@echo 25 cleaning ${LSP}/ccl
+> +	@echo 34 cleaning ${LSP}/ccl
+>  	@( cd ccl ; ${ENV} ${MAKE} clean )
+>  @
+>  \eject
+> Index: src/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/Makefile.pamphlet,v
+> retrieving revision 1.11
+> diff -u -d -B -b -r1.11 Makefile.pamphlet
+> --- src/Makefile.pamphlet	15 Jul 2004 03:45:11 -0000	1.11
+> +++ src/Makefile.pamphlet	8 Aug 2004 10:06:24 -0000
+> @@ -24,8 +24,12 @@
+>  
+>  <<environment>>=
+>  SETUP=scriptsdir libdir
+> +ifeq ($(PASS1),)
+>  DIRS=bootdir interpdir sharedir algebradir inputdir etcdir clefdir docdir \
+>       graphdir
+> +else
+> +DIRS=bootdir interpdir sharedir algebradir
+> +endif
+>  DOCS=scriptsdocument libdocument ${DIRS:dir=document} 
+>  CLNS=scriptsclean libclean ${DIRS:dir=clean} 
+>  
+> Index: src/boot/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/boot/Makefile.pamphlet,v
+> retrieving revision 1.6
+> diff -u -d -B -b -r1.6 Makefile.pamphlet
+> --- src/boot/Makefile.pamphlet	27 Jun 2004 15:00:58 -0000	1.6
+> +++ src/boot/Makefile.pamphlet	8 Aug 2004 10:06:48 -0000
+> @@ -1151,7 +1151,7 @@
+>  expansion. Adding a single quote symbol will break this expansion.
+>  
+>  <<environment>>= 
+> -CMD0=	(progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}"))
+> +CMD0=	(compiler::link (quote (${OBJS1})) "${SAVESYS}" (format nil "(let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t)) (when (fboundp (quote si::sgc-on)) (si::sgc-on t)) (setq compiler::*default-system-p* t)" si::*system-directory* (quote  (list ".lsp"))))
+>   
+>  @
+>  \subsection{boothdr.lisp \cite{1}}
+> Index: src/etc/axiom
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/etc/axiom,v
+> retrieving revision 1.3
+> diff -u -d -B -b -r1.3 axiom
+> --- src/etc/axiom	7 Feb 2004 03:24:24 -0000	1.3
+> +++ src/etc/axiom	8 Aug 2004 10:07:42 -0000
+> @@ -1,8 +1,10 @@
+> -export AXIOM
+>  
+>  system=`uname -s`
+>  
+>  case "$system" in
+> +    FreeBSD) clef -e $AXIOM/bin/AXIOMsys "$@"
+> +        ;;
+> +    
+>      Linux) clef -e $AXIOM/bin/AXIOMsys "$@"
+>          ;;
+>      
+> Index: src/include/useproto.h
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/include/useproto.h,v
+> retrieving revision 1.2
+> diff -u -d -B -b -r1.2 useproto.h
+> --- src/include/useproto.h	9 Oct 2003 10:45:16 -0000	1.2
+> +++ src/include/useproto.h	8 Aug 2004 10:07:50 -0000
+> @@ -34,7 +34,7 @@
+>  #ifndef _USEPROTO_H_
+>  #define _USEPROTO_H_ 1
+>  
+> -#if defined(SGIplatform)||defined(LINUXplatform)||defined(HPplatform) ||defined(RIOSplatform) ||defined(RIOS4platform) || defined(SUN4OS5platform)
+> +#if defined(SGIplatform)||defined(LINUXplatform)||defined(HPplatform) ||defined(RIOSplatform) ||defined(RIOS4platform) || defined(SUN4OS5platform)||defined(FREEBSDplatform)
+>  #ifdef _NO_PROTO
+>  #undef _NO_PROTO
+>  #endif
+> Index: src/interp/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/interp/Makefile.pamphlet,v
+> retrieving revision 1.11
+> diff -u -d -B -b -r1.11 Makefile.pamphlet
+> --- src/interp/Makefile.pamphlet	27 Jun 2004 15:01:27 -0000	1.11
+> +++ src/interp/Makefile.pamphlet	8 Aug 2004 10:08:59 -0000
+> @@ -1,5 +1,5 @@
+>  \documentclass{article}
+> -\usepackage{../../src/scripts/tex/axiom}
+> +\usepackage{axiom}
+>  \begin{document}
+>  \title{\$SPAD/src/interp Makefile}
+>  \author{Timothy Daly}
+> @@ -616,8 +616,29 @@
+>  	@ echo '(load "${OUT}/c-util")' >> ${OUT}/makedep.lisp
+>  	@ echo '(unless (probe-file "${OUT}/g-util.${O}") (compile-file "${OUT}/g-util.${LISP}" :output-file "${OUT}/g-util.${O}"))' >> ${OUT}/makedep.lisp
+>  	@ echo '(load "${OUT}/g-util")' >> ${OUT}/makedep.lisp
+> -	@ (cd ${MNT}/${SYS}/bin ; \
+> -	   echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' | ${LISPSYS})
+> +	@ (cd ${OBJ}/${SYS}/bin ; \
+> +	   echo '(progn \
+> +		(setq si::*collect-binary-modules* t) \
+> +		(load "${OUT}/makedep.lisp") \
+> +		(compiler::link \
+> +			(remove-duplicates si::*binary-modules* :test (quote equal)) \
+> +			"$(DEPSYS)" \
+> +			(format nil "\
+> +				(setq si::*collect-binary-modules* t) \
+> +				(let ((si::*load-path* (cons ~S si::*load-path*))\
+> +					(si::*load-types* ~S))\
+> +					(compiler::emit-fn t))\
+> +				(load \"$(OUT)/makedep.lisp\")\
+> +				(gbc t)\
+> +				(when si::*binary-modules* \
+> +					(error si::*binary-modules*))\
+> +				(setq si::collect-binary-modules* nil si::*binary-modules* nil)\
+> +				(gbc t)\
+> +				(when (fboundp (quote si::sgc-on)) (si::sgc-on t))\
+> +				(setq compiler::*default-system-p* t)\
+> +			" si::*system-directory* (quote (list ".lsp")))\
+> +			"" \
+> +			nil))' | $(LISPSYS))
+>  	@ echo 4 ${DEPSYS} created
+>  
+>  @
+> @@ -670,7 +691,33 @@
+>  	@ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp
+>  	@ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> ${OUT}/makeint.lisp
+>  	@ (cd ${OBJ}/${SYS}/bin ; \
+> -	  echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+> +	  echo '(progn \
+> +			(setq si::*collect-binary-modules* t)\
+> +			(setq x si::*system-directory*)\
+> +			(load "${OUT}/makeint.lisp")\
+> +			(setq si::*system-directory* x)\
+> +			(unintern (quote x))\
+> +			(compiler::link \
+> +				(remove-duplicates si::*binary-modules* :test (quote equal))\
+> +				"$(SAVESYS)" \
+> +				(format nil "\
+> +					(let ((si::*load-path* (cons ~S si::*load-path*))\
+> +						(si::*load-types* ~S))\
+> +						(compiler::emit-fn t))\
+> +					 (setq si::*collect-binary-modules* t)\
+> +					 (setq x si::*system-directory*)\
+> +					 (load \"$(OUT)/makeint.lisp\")\
+> +					 (setq si::*system-directory* x)\
+> +					 (unintern (quote x))\
+> +					 (when si::*binary-modules* \
+> +						(error si::*binary-modules*))\
+> +					(setq si::collect-binary-modules* nil si::*binary-modules* nil)\
+> +					(gbc t)\
+> +					(when (fboundp (quote si::sgc-on)) (si::sgc-on t))\
+> +					(setq compiler::*default-system-p* t)\
+> +				" si::*system-directory* (quote (list ".lsp")))\
+> +			"$(OBJ)/$(SYS)/lib/sockio-c.o $(OBJ)/$(SYS)/lib/cfuns-c.o $(OBJ)/$(SYS)/lib/libspad.a" \
+> +			nil))' | $(LISPSYS))
+>  	@ echo 6 ${SAVESYS} created
+>  	@ cp ${SAVESYS} ${AXIOMSYS}
+>  	@ echo 6a ${AXIOMSYS} created
+> @@ -6262,6 +6309,8 @@
+>  <<Makefile.dvi (DOC from IN)>>=
+>  ${DOC}/Makefile.dvi: ${IN}/Makefile.pamphlet ${DOC}/axiom.sty
+>  	@echo 613 making ${DOC}/Makefile.dvi from ${IN}/Makefile.pamphlet
+> +	@echo 'BUG? SOURCE DOES NOT EXIST.'
+> +	@touch ${IN}/Makefile.dvi
+>  	@cp ${IN}/Makefile.dvi ${DOC}
+>  
+>  @
+> Index: src/interp/nlib.lisp.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/interp/nlib.lisp.pamphlet,v
+> retrieving revision 1.3
+> diff -u -d -B -b -r1.3 nlib.lisp.pamphlet
+> --- src/interp/nlib.lisp.pamphlet	24 May 2004 22:53:55 -0000	1.3
+> +++ src/interp/nlib.lisp.pamphlet	8 Aug 2004 10:09:03 -0000
+> @@ -295,7 +295,15 @@
+>  (defun rpackfile (filespec)
+>    (setq filespec (make-filename filespec))
+>    (if (string= (pathname-type filespec) "NRLIB")
+> -      (recompile-lib-file-if-necessary (concat (namestring filespec) "/code.lsp"))
+> +      (let* ((base (pathname-name filespec))
+> +	     (code (concatenate 'string (namestring filespec) "/code.lsp"))
+> +	     (temp (concatenate 'string (namestring filespec) "/" base ".lsp"))
+> +	     (o (make-pathname :type "o")))
+> +	(si::system (format nil "cp ~S ~S" code temp))
+> +	(recompile-lib-file-if-necessary temp)
+> +	(si::system (format nil "mv ~S ~S~%" 
+> +			    (namestring (merge-pathnames o temp))
+> +			    (namestring (merge-pathnames o code)))))
+>    ;; only pack non libraries to avoid lucid file handling problems    
+>      (let* ((rstream (rdefiostream (list (cons 'file filespec) (cons 'mode 'input))))
+>  	   (nstream nil)
+> Index: src/interp/util.lisp.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/interp/util.lisp.pamphlet,v
+> retrieving revision 1.5
+> diff -u -d -B -b -r1.5 util.lisp.pamphlet
+> --- src/interp/util.lisp.pamphlet	24 May 2004 22:54:05 -0000	1.5
+> +++ src/interp/util.lisp.pamphlet	8 Aug 2004 10:09:12 -0000
+> @@ -77,6 +77,16 @@
+>  ;     (compile-file collectfn))
+>  ;   (load collectfn)
+>  ;   (compiler::emit-fn t)
+> +;
+> +;  (let ((collectfn (concatenate 'string si::*system-directory* "../cmpnew/gcl_collectfn.lsp"))
+> +;       (collectfn1 (concatenate 'string obj "/" sys "/interp/collectfn")))
+> +;   (with-open-file (st collectfn :direction :input)
+> +;      (with-open-file (st1 (concatenate 'string collectfn1 ".lsp") :direction :output)
+> +;       (si::copy-stream st st1)))
+> +;   (unless (probe-file (concatenate 'string collectfn1 ".o"))
+> +;     (compile-file collectfn1))
+> +;   (load collectfn1)
+> +;
+>     (mapcar
+>       #'load
+>       (directory (concatenate 'string obj "/" sys "/interp/*.fn")))
+> @@ -813,7 +823,7 @@
+>  This function will do that. A correct call looks like:
+>  \begin{verbatim}
+>  (in-package "BOOT")
+> -(recompile-all-libs "/spad/mnt/linux/algebra")
+> +(recompile-all-libs "/spad/mnt/${SYS}/algebra")
+>  \end{verbatim}
+>  <<recompile-all-libs>>=
+>  (defun recompile-all-libs (dir)
+> @@ -838,11 +848,11 @@
+>  Note that it will build a pathname from the current {\bf AXIOM}
+>  shell variable. So if the {\bf AXIOM} shell variable had the value
+>  \begin{verbatim}
+> -/spad/mnt/linux
+> +/spad/mnt/${SYS}
+>  \end{verbatim}
+>  then the wildcard expands to
+>  \begin{verbatim}
+> -/spad/mnt/linux/nalg/*.spad
+> +/spad/mnt/${SYS}/nalg/*.spad
+>  \end{verbatim}
+>  and all of the matching files would be recompiled.
+>  <<recompile-all-algebra-files>>=
+> @@ -879,7 +889,7 @@
+>  before compiling this file. A correct call looks like:
+>  \begin{verbatim}
+>  (in-package "BOOT")
+> -(reroot "/spad/mnt/linux")
+> +(reroot "/spad/mnt/${SYS}")
+>  \end{verbatim}
+>  <<reroot>>=
+>  (defun reroot (dir)
+> Index: src/lib/XDither.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/XDither.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 XDither.c.pamphlet
+> --- src/lib/XDither.c.pamphlet	27 Jun 2004 15:01:41 -0000	1.4
+> +++ src/lib/XDither.c.pamphlet	8 Aug 2004 10:09:16 -0000
+> @@ -51,7 +51,6 @@
+>  
+>  #include <stdio.h>
+>  #include <stdlib.h>
+> -#include <malloc.h>
+>  
+>  #include <X11/Xlib.h>
+>  #include <X11/Xutil.h>
+> Index: src/lib/XShade.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/XShade.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 XShade.c.pamphlet
+> --- src/lib/XShade.c.pamphlet	27 Jun 2004 15:01:42 -0000	1.4
+> +++ src/lib/XShade.c.pamphlet	8 Aug 2004 10:09:16 -0000
+> @@ -50,7 +50,6 @@
+>  #include "useproto.h"
+>  
+>  #include <stdio.h>
+> -#include <malloc.h>
+>  #include <stdlib.h>
+>  
+>  #include <X11/Xlib.h>
+> Index: src/lib/cfuns-c.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/cfuns-c.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 cfuns-c.c.pamphlet
+> --- src/lib/cfuns-c.c.pamphlet	27 Jun 2004 15:01:43 -0000	1.4
+> +++ src/lib/cfuns-c.c.pamphlet	8 Aug 2004 10:09:19 -0000
+> @@ -52,7 +52,6 @@
+>  #include <unistd.h>
+>  #include <stdlib.h>
+>  #include <string.h>
+> -#include <malloc.h>
+>  #include <sys/types.h>
+>  #include <sys/stat.h>
+>  
+> Index: src/lib/fnct_key.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/fnct_key.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 fnct_key.c.pamphlet
+> --- src/lib/fnct_key.c.pamphlet	27 Jun 2004 15:01:43 -0000	1.4
+> +++ src/lib/fnct_key.c.pamphlet	8 Aug 2004 10:09:21 -0000
+> @@ -352,7 +352,7 @@
+>                  close(fd);
+>              }
+>          }
+> -        bsdSignal(SIGCLD, null_fnct,RestartSystemCalls);
+> +        bsdSignal(SIGCHLD, null_fnct,RestartSystemCalls);
+>          switch (id = fork()) {
+>            case -1:
+>              perror("Special key");
+> Index: src/lib/openpty.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/openpty.c.pamphlet,v
+> retrieving revision 1.7
+> diff -u -d -B -b -r1.7 openpty.c.pamphlet
+> --- src/lib/openpty.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.7
+> +++ src/lib/openpty.c.pamphlet	8 Aug 2004 10:09:21 -0000
+> @@ -92,7 +92,7 @@
+>  #endif
+>  
+>  {
+> -#if defined(SUNplatform) || defined (HP9platform) || defined(RTplatform) ||defined(AIX370platform) 
+> +#if defined(SUNplatform) || defined (HP9platform) || defined(RTplatform) ||defined(AIX370platform) || defined(FREEBSDplatform)
+>    int looking = 1, i;
+>    int oflag = O_RDWR;                  /* flag for opening the pty */
+>    
+> @@ -204,7 +204,7 @@
+>  	sprintf(serv, "/dev/ttyp%02x", channelNo);
+>  	channelNo++;
+>  #endif
+> -#if defined(SUNplatform) || defined (HP9platform) || defined(LINUXplatform) 
+> +#if defined(FREEBSDplatform) || defined(SUNplatform) || defined (HP9platform) || defined(LINUXplatform) 
+>  	static int channelNo = 0;
+>  	static char group[] = "pqrstuvwxyzPQRST";
+>  	static int groupNo = 0;
+> Index: src/scripts/document
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/scripts/document,v
+> retrieving revision 1.3
+> diff -u -d -B -b -r1.3 document
+> --- src/scripts/document	12 Nov 2003 11:16:15 -0000	1.3
+> +++ src/scripts/document	8 Aug 2004 10:09:25 -0000
+> @@ -5,8 +6,9 @@
+>    exit 0
+>  fi
+>  
+> -tangle=$AXIOM/bin/lib/notangle
+> -weave=$AXIOM/bin/lib/noweave
+> +tangle=notangle
+> +weave=noweave
+> +
+>  if [ "$#" = "3" ]; then
+>   REDIRECT=$2
+>   FILE=`basename $3 .pamphlet`
+> ==================================================================
+> ==
+> == Path fixes
+> ==
+> ==================================================================
+> 
+> Index: src/booklets/Sorting.booklet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/booklets/Sorting.booklet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 Sorting.booklet
+> --- src/booklets/Sorting.booklet	28 Aug 2003 12:15:28 -0000	1.1
+> +++ src/booklets/Sorting.booklet	8 Aug 2004 10:06:39 -0000
+> @@ -1,5 +1,5 @@
+>  \documentclass{article}
+> -\usepackage{/home/axiomgnu/new/mnt/linux/bin/tex/noweb}
+> +\usepackage{noweb}
+>  \begin{document}
+>  \title{Sorting Facilities}
+>  \author{Timothy Daly}
+> Index: src/clef/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/clef/Makefile.pamphlet,v
+> retrieving revision 1.3
+> diff -u -d -B -b -r1.3 Makefile.pamphlet
+> --- src/clef/Makefile.pamphlet	27 Jun 2004 15:00:58 -0000	1.3
+> +++ src/clef/Makefile.pamphlet	8 Aug 2004 10:06:48 -0000
+> @@ -1,5 +1,5 @@
+>  \documentclass{article}
+> -\usepackage{../../mnt/linux/bin/axiom}
+> +\usepackage{axiom}
+>  \begin{document}
+>  \title{\$SPAD/src/clef Makefile}
+>  \author{Timothy Daly}
+> Index: src/clef/edible.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/clef/edible.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 edible.c.pamphlet
+> --- src/clef/edible.c.pamphlet	30 Jul 2004 16:45:33 -0000	1.4
+> +++ src/clef/edible.c.pamphlet	8 Aug 2004 10:06:50 -0000
+> @@ -1,5 +1,5 @@
+>  \documentclass{article}
+> -\usepackage{../../mnt/linux/bin/axiom}
+> +\usepackage{axiom}
+>  \begin{document}
+>  \title{\$SPAD/src/clef edible.c}
+>  \author{The Axiom Team}
+> Index: src/doc/axiom.bib.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/doc/axiom.bib.pamphlet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 axiom.bib.pamphlet
+> --- src/doc/axiom.bib.pamphlet	28 Aug 2003 12:28:30 -0000	1.1
+> +++ src/doc/axiom.bib.pamphlet	8 Aug 2004 10:07:40 -0000
+> @@ -12231,7 +12231,7 @@
+>  \subsection{Makefile}
+>  <<Makefile>>=
+>  @MISC{Makefile,
+> -   path=./mnt/linux/bin/Makefile.pamphlet
+> +   path=./mnt/${SYS}/bin/Makefile.pamphlet
+>  }
+>  
+>  @
+> Index: src/interp/debugsys.lisp.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/interp/debugsys.lisp.pamphlet,v
+> retrieving revision 1.2
+> diff -u -d -B -b -r1.2 debugsys.lisp.pamphlet
+> --- src/interp/debugsys.lisp.pamphlet	24 May 2004 22:53:51 -0000	1.2
+> +++ src/interp/debugsys.lisp.pamphlet	8 Aug 2004 10:09:01 -0000
+> @@ -79,7 +79,7 @@
+>        (thesymb "/int/interp/buildom.clisp")
+>        (thesymb "/int/interp/cattable.clisp")
+>        (thesymb "/int/interp/cformat.clisp")
+> -      (thesymb "/obj/linux/interp/cfuns.o")
+> +      (thesymb "/obj/${SYS}/interp/cfuns.o")
+>        (thesymb "/int/interp/clam.clisp")
+>        (thesymb "/int/interp/clammed.clisp")
+>        (thesymb "/int/interp/comp.lisp")
+> @@ -152,7 +152,7 @@
+>        (thesymb "/int/interp/sfsfun.clisp")
+>        (thesymb "/int/interp/simpbool.clisp")
+>        (thesymb "/int/interp/slam.clisp")
+> -      (thesymb "/obj/linux/interp/sockio.o")
+> +      (thesymb "/obj/${SYS}/interp/sockio.o")
+>        (thesymb "/int/interp/spad.lisp")
+>        (thesymb "/int/interp/spaderror.lisp")
+>        (thesymb "/int/interp/template.clisp")
+> @@ -232,13 +232,13 @@
+>     ())
+>    (list 
+>     (thesymb "/int/interp/ax.clisp"))
+> -  "/mnt/linux"
+> +  "/mnt/${SYS}"
+>    "/lsp"
+>    "/src"
+>    "/int"
+>    "/obj"
+>    "/mnt"
+> -  "linux")
+> +  "${SYS}")
+>  (in-package "SCRATCHPAD-COMPILER")
+>  (boot::set-restart-hook)
+>  (in-package "BOOT")
+> @@ -247,7 +247,7 @@
+>  (load (user::thepath "/int/interp/obey.lsp"))
+>  ;(si::multiply-bignum-stack 10)
+>  (si::gbc-time 0)
+> -(setq si::*system-directory* (user::thepath "/mnt/linux/bin/"))
+> +(setq si::*system-directory* (user::thepath "/mnt/${SYS}/bin/"))
+>  (gbc t)
+>  
+>  @
+> 
+> ==================================================================
+> ==
+> == Cleaning
+> ==
+> ==================================================================
+> 
+> Index: src/booklets/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/booklets/Makefile.pamphlet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 Makefile.pamphlet
+> --- src/booklets/Makefile.pamphlet	28 Aug 2003 12:15:28 -0000	1.1
+> +++ src/booklets/Makefile.pamphlet	8 Aug 2004 10:06:26 -0000
+> @@ -19,6 +19,7 @@
+>  clean:
+>  	@echo 2 cleaning ${INT}/docs/src/booklets
+>  	@rm -rf ${INT}/docs/src/booklets
+> +	@rm -f Makefile Makefile.dvi
+>  @
+>  \eject
+>  \begin{thebibliography}{99}
+> Index: src/doc/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/doc/Makefile.pamphlet,v
+> retrieving revision 1.7
+> diff -u -d -B -b -r1.7 Makefile.pamphlet
+> --- src/doc/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.7
+> +++ src/doc/Makefile.pamphlet	8 Aug 2004 10:06:50 -0000
+> @@ -105,6 +105,7 @@
+>  
+>  clean:
+>  	@echo 4 cleaning ${SRC}/doc
+> +	@rm -f Makefile Makefile.dvi
+>  @
+>  \eject
+>  \begin{thebibliography}{99}
+> Index: src/etc/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/etc/Makefile.pamphlet,v
+> retrieving revision 1.6
+> diff -u -d -B -b -r1.6 Makefile.pamphlet
+> --- src/etc/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.6
+> +++ src/etc/Makefile.pamphlet	8 Aug 2004 10:07:42 -0000
+> @@ -91,6 +91,7 @@
+>  	@rm -rf ${MID}
+>  	@echo 4 cleaning ${DOC}
+>  	@rm -rf ${DOC}
+> +	@rm -f Makefile Makefile.dvi
+>  
+>  @
+>  \eject
+> Index: src/input/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/input/Makefile.pamphlet,v
+> retrieving revision 1.10
+> diff -u -d -B -b -r1.10 Makefile.pamphlet
+> --- src/input/Makefile.pamphlet	15 Jul 2004 03:45:11 -0000	1.10
+> +++ src/input/Makefile.pamphlet	8 Aug 2004 10:08:22 -0000
+> @@ -6880,6 +6880,7 @@
+>  	@rm -rf ${MID}
+>  	@echo 7 cleaning ${OUT}
+>  	@rm -rf ${OUT}
+> +	@rm -f Makefile Makefile.dvi
+>  
+>  <<algaggr>>
+>  <<algbrbf>>
+> Index: src/lib/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/Makefile.pamphlet,v
+> retrieving revision 1.8
+> diff -u -d -B -b -r1.8 Makefile.pamphlet
+> --- src/lib/Makefile.pamphlet	27 Jun 2004 15:01:39 -0000	1.8
+> +++ src/lib/Makefile.pamphlet	8 Aug 2004 10:09:14 -0000
+> @@ -490,6 +490,7 @@
+>  clean:
+>  	@echo 70 cleaning ${IN}
+>  	@rm -rf ${MID} ${OUT} ${DOCINT} ${DOCMNT}
+> +	@rm -f Makefile Makefile.dvi
+>  
+>  @
+>  \subsection{Makefile documentation}
+> Index: src/scripts/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/scripts/Makefile.pamphlet,v
+> retrieving revision 1.2
+> diff -u -d -B -b -r1.2 Makefile.pamphlet
+> --- src/scripts/Makefile.pamphlet	27 Jun 2004 15:01:44 -0000	1.2
+> +++ src/scripts/Makefile.pamphlet	8 Aug 2004 10:09:25 -0000
+> @@ -19,6 +19,10 @@
+>  	@cp -pr * ${OUT}
+>  	@mkdir -p ${OUT}/tex
+>  	@rm -f ${OUT}/Makefile*
+> +
+> +clean:
+> +	@echo 2 cleaning ${SRC}/scripts
+> +	@rm -f Makefile Makefile.dvi
+>  @
+>  \eject
+>  \begin{thebibliography}{99}
+> 
+> ==================================================================
+> ==
+> == Bugfixes
+> ==
+> ==================================================================
+> 
+> Index: src/graph/Makefile.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/graph/Makefile.pamphlet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 Makefile.pamphlet
+> --- src/graph/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.1
+> +++ src/graph/Makefile.pamphlet	8 Aug 2004 10:07:44 -0000
+> @@ -414,7 +414,7 @@
+>  
+>  ${DOC}/viewports:
+>  	@ echo 25 making ${DOC}/viewports from ${IN}/viewports 
+> -	@ cp -pr ${IN}/viewports ${DOC}
+> +	@ echo 'BUG? SOURCE DOES NOT EXIST.' cp -pr ${IN}/viewports ${DOC}
+>  
+>  <<viewmandir>>
+>  <<Gdrawsdir>>
+> Index: src/graph/viewman/cleanup.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/graph/viewman/cleanup.c.pamphlet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 cleanup.c.pamphlet
+> --- src/graph/viewman/cleanup.c.pamphlet	27 Jun 2004 15:01:22 -0000	1.1
+> +++ src/graph/viewman/cleanup.c.pamphlet	8 Aug 2004 10:07:47 -0000
+> @@ -53,7 +53,6 @@
+>  #include <stdlib.h>
+>  #include <unistd.h>
+>  #include <stdio.h>
+> -#include <malloc.h>
+>  #include <assert.h>
+>  #include <signal.h>
+>  #include <sys/wait.h>
+> Index: src/graph/viewman/sselect.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/graph/viewman/sselect.c.pamphlet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 sselect.c.pamphlet
+> --- src/graph/viewman/sselect.c.pamphlet	27 Jun 2004 15:01:24 -0000	1.1
+> +++ src/graph/viewman/sselect.c.pamphlet	8 Aug 2004 10:07:47 -0000
+> @@ -104,7 +104,7 @@
+>  	/* flush(spadSock); */
+>          /* send_int(spadSock,1);   acknowledge to spad */
+>          checkClosedChild = no;
+> -        bsdSignal(SIGCLD,endChild,DontRestartSystemCalls);
+> +        bsdSignal(SIGCHLD,endChild,DontRestartSystemCalls);
+>        }
+>      }
+>      ret_val = select(n, (void *)rd, (void *)wr, (void *)ex, (void *)timeout);
+> Index: src/graph/viewman/viewman.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/graph/viewman/viewman.c.pamphlet,v
+> retrieving revision 1.1
+> diff -u -d -B -b -r1.1 viewman.c.pamphlet
+> --- src/graph/viewman/viewman.c.pamphlet	27 Jun 2004 15:01:24 -0000	1.1
+> +++ src/graph/viewman/viewman.c.pamphlet	8 Aug 2004 10:07:50 -0000
+> @@ -116,7 +116,7 @@
+>    int keepLooking,code;
+>    
+>    bsdSignal(SIGPIPE,brokenPipe,DontRestartSystemCalls);
+> -  bsdSignal(SIGCLD,endChild,RestartSystemCalls);
+> +  bsdSignal(SIGCHLD,endChild,RestartSystemCalls);
+>    bsdSignal(SIGTERM,goodbye,DontRestartSystemCalls);
+>    
+>    /* Connect up to AXIOM server */
+> 
+> ==================================================================
+> ==
+> == Warning fixes
+> ==
+> ==================================================================
+> 
+> Index: src/lib/pixmap.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/pixmap.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 pixmap.c.pamphlet
+> --- src/lib/pixmap.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.4
+> +++ src/lib/pixmap.c.pamphlet	8 Aug 2004 10:09:23 -0000
+> @@ -361,8 +361,7 @@
+>  write_pixmap_file(Display *dsp, int scr, char  *fn, Window wid, int x, int y, int width,int height)
+>  #endif
+>  {
+> -  XpmAttributes attr;
+> -  XImage *xi,*xireturn;
+> +  XImage *xi;
+>    int status;
+>    
+>    /* reads image structure in ZPixmap format */
+> Index: src/lib/wct.c.pamphlet
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/src/lib/wct.c.pamphlet,v
+> retrieving revision 1.4
+> diff -u -d -B -b -r1.4 wct.c.pamphlet
+> --- src/lib/wct.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.4
+> +++ src/lib/wct.c.pamphlet	8 Aug 2004 10:09:25 -0000
+> @@ -287,7 +287,7 @@
+>    printTime((long *)&(pwct->ftime));
+>    cc = skimString(pwct->fimage, pwct->fsize, NHEAD, NTAIL);
+>    printf("%s", "            " + (cc - (NHEAD + NTAIL)));
+> -  printf(" [%d w, %d c]", pwct->wordc, pwct->fsize);
+> +  printf(" [%d w, %ld c]", pwct->wordc, (long)pwct->fsize);
+>    printf("\n");
+>  
+>  #ifdef SHOW_WORDS
+
+\start
+Date: Thu, 12 Aug 2004 11:00:55 -0300
+From: "Daniel Yokomiso" <daniel.yokomiso@minddrome.com>
+To: <axiom-developer@nongnu.org>
+Subject: [Axiom-developer] Re: [Axiom-math] Re: musings on notation
+
+----- Original Message ----- 
+From: "root" <daly@idsi.net>
+To: <pg@archub.org>
+Cc: <axiom-developer@nongnu.org>; "C Y" <smustudent1@yahoo.com>;
+<axiom-math@nongnu.org>
+Sent: Wednesday, August 11, 2004 2:31 AM
+Subject: [Axiom-math] Re: musings on notation
+
+[snip]
+
+> The notational case is even harder. So I'd like to be able
+> to say:
+>
+>  P = Program(foo)
+>  M:SquareMatrix(2) = matrix([[1,2],[3,4]])
+>  M^P
+>
+> but first I need to define categorical properties of the "Program"
+> type. So it might be a functor of the form:
+>
+>  Program(C:Code) -> Integer()
+>
+> that is, a Program type is Categorically defined to accept things
+> of type Code and is guaranteed to produce an Integer(). Notice
+> what happened here. I'm trying to raise a square matrix to an
+> unspecified power and all I can guarantee is that the operation
+> WOULD be defined if I were to compute it. I want a name for this
+> concept "the operation would be defined if we run it".
+>
+> Now mathematically this is hard because we haven't defined the
+> Category structure for Code. Do we require all Code functions to be
+> total (a definite valid value for every input?). Do we require the
+> Category of Stateless so that the function always returns the same
+> result? If so, we could functionally compose Program types, define
+> operators, and be able to compute:
+>
+>   Q = P*P
+>
+> where the '*' function is
+>
+>   *(Program,Program) -> Program
+
+
+[snip]
+
+This reminds me of Multi-Stage Programming, where we construct programs that
+should be executed later. The relevant papers are available in:
+http://www.cs.rice.edu/~taha/MSP/
+
+\start
+Date: Thu, 12 Aug 2004 15:31:38 -0400
+From: root <daly@idsi.net>
+To: wn@cs.bath.ac.uk
+Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation
+Cc: miked@nag.co.uk
+
+Bill,
+
+I've been reading through your thesis and it's excellent. I've also
+downloaded the program sources which all appear to be in aldor.  I'd
+like your permission to bring the thesis work back to life on the
+current Axiom and use the thesis to explain the work as a literate
+program. I'll have to rewrite portions of the CCL and the Aldor
+sections to bring them in line with the current level. Also, Axiom now
+contains a "pamphlet" (basically tex with a few extras) structure
+which allows code to be embedded "inline" in the document as part of
+the explanation. This is useful for making code maintainable in future
+releases.
+
+I don't see any makefiles with the code. Is there an input file that
+was used to build these?
+
+\start
+Date: Thu, 12 Aug 2004 17:06:40 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch accepted and integrated. --t
+
+
+RCS file: /cvsroot/axiom/axiom/src/lib/wct.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 wct.c.pamphlet
+--- src/lib/wct.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.4
++++ src/lib/wct.c.pamphlet	8 Aug 2004 10:09:25 -0000
+@@ -287,7 +287,7 @@
+   printTime((long *)&(pwct->ftime));
+   cc = skimString(pwct->fimage, pwct->fsize, NHEAD, NTAIL);
+   printf("%s", "            " + (cc - (NHEAD + NTAIL)));
+-  printf(" [%d w, %d c]", pwct->wordc, pwct->fsize);
++  printf(" [%d w, %ld c]", pwct->wordc, (long)pwct->fsize);
+   printf("\n");
+ 
+ #ifdef SHOW_WORDS
+
+
+\start
+Date: Thu, 12 Aug 2004 17:06:56 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch accepted and integrated. --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/lib/pixmap.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 pixmap.c.pamphlet
+--- src/lib/pixmap.c.pamphlet	27 Jun 2004 15:01:44 -0000	1.4
++++ src/lib/pixmap.c.pamphlet	8 Aug 2004 10:09:23 -0000
+@@ -361,8 +361,7 @@
+ write_pixmap_file(Display *dsp, int scr, char  *fn, Window wid, int x, int y, int width,int height)
+ #endif
+ {
+-  XpmAttributes attr;
+-  XImage *xi,*xireturn;
++  XImage *xi;
+   int status;
+   
+   /* reads image structure in ZPixmap format */
+
+
+\start
+Date: Thu, 12 Aug 2004 20:39:48 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/viewman/viewman.c.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 viewman.c.pamphlet
+--- src/graph/viewman/viewman.c.pamphlet	27 Jun 2004 15:01:24 -0000	1.1
++++ src/graph/viewman/viewman.c.pamphlet	8 Aug 2004 10:07:50 -0000
+@@ -116,7 +116,7 @@
+   int keepLooking,code;
+   
+   bsdSignal(SIGPIPE,brokenPipe,DontRestartSystemCalls);
+-  bsdSignal(SIGCLD,endChild,RestartSystemCalls);
++  bsdSignal(SIGCHLD,endChild,RestartSystemCalls);
+   bsdSignal(SIGTERM,goodbye,DontRestartSystemCalls);
+   
+   /* Connect up to AXIOM server */
+
+
+\start
+Date: Thu, 12 Aug 2004 20:49:12 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/viewman/sselect.c.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 sselect.c.pamphlet
+--- src/graph/viewman/sselect.c.pamphlet	27 Jun 2004 15:01:24 -0000	1.1
++++ src/graph/viewman/sselect.c.pamphlet	8 Aug 2004 10:07:47 -0000
+@@ -104,7 +104,7 @@
+ 	/* flush(spadSock); */
+         /* send_int(spadSock,1);   acknowledge to spad */
+         checkClosedChild = no;
+-        bsdSignal(SIGCLD,endChild,DontRestartSystemCalls);
++        bsdSignal(SIGCHLD,endChild,DontRestartSystemCalls);
+       }
+     }
+     ret_val = select(n, (void *)rd, (void *)wr, (void *)ex, (void *)timeout);
+
+
+\start
+Date: Thu, 12 Aug 2004 21:21:26 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/viewman/cleanup.c.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 cleanup.c.pamphlet
+--- src/graph/viewman/cleanup.c.pamphlet	27 Jun 2004 15:01:22 -0000	1.1
++++ src/graph/viewman/cleanup.c.pamphlet	8 Aug 2004 10:07:47 -0000
+@@ -53,7 +53,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <stdio.h>
+-#include <malloc.h>
+ #include <assert.h>
+ #include <signal.h>
+ #include <sys/wait.h>
+
+
+
+\start
+Date: Thu, 12 Aug 2004 21:22:42 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch ignored. there will be something there soon. --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/graph/Makefile.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 Makefile.pamphlet
+--- src/graph/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.1
++++ src/graph/Makefile.pamphlet	8 Aug 2004 10:07:44 -0000
+@@ -414,7 +414,7 @@
+ 
+ ${DOC}/viewports:
+ 	@ echo 25 making ${DOC}/viewports from ${IN}/viewports 
+-	@ cp -pr ${IN}/viewports ${DOC}
++	@ echo 'BUG? SOURCE DOES NOT EXIST.' cp -pr ${IN}/viewports ${DOC}
+ 
+ <<viewmandir>>
+ <<Gdrawsdir>>
+
+
+\start
+Date: Thu, 12 Aug 2004 21:38:19 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+RCS file: /cvsroot/axiom/axiom/src/scripts/Makefile.pamphlet,v
+retrieving revision 1.2
+diff -u -d -B -b -r1.2 Makefile.pamphlet
+--- src/scripts/Makefile.pamphlet	27 Jun 2004 15:01:44 -0000	1.2
++++ src/scripts/Makefile.pamphlet	8 Aug 2004 10:09:25 -0000
+@@ -19,6 +19,10 @@
+ 	@cp -pr * ${OUT}
+ 	@mkdir -p ${OUT}/tex
+ 	@rm -f ${OUT}/Makefile*
++
++clean:
++	@echo 2 cleaning ${SRC}/scripts
++	@rm -f Makefile Makefile.dvi
+ @
+ \eject
+ \begin{thebibliography}{99}
+
+\start
+Date: Thu, 12 Aug 2004 21:40:05 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+RCS file: /cvsroot/axiom/axiom/src/input/Makefile.pamphlet,v
+retrieving revision 1.10
+diff -u -d -B -b -r1.10 Makefile.pamphlet
+--- src/input/Makefile.pamphlet	15 Jul 2004 03:45:11 -0000	1.10
++++ src/input/Makefile.pamphlet	8 Aug 2004 10:08:22 -0000
+@@ -6880,6 +6880,7 @@
+ 	@rm -rf ${MID}
+ 	@echo 7 cleaning ${OUT}
+ 	@rm -rf ${OUT}
++	@rm -f Makefile Makefile.dvi
+ 
+ <<algaggr>>
+ <<algbrbf>>
+
+\start
+Date: Thu, 12 Aug 2004 21:43:20 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/etc/Makefile.pamphlet,v
+retrieving revision 1.6
+diff -u -d -B -b -r1.6 Makefile.pamphlet
+--- src/etc/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.6
++++ src/etc/Makefile.pamphlet	8 Aug 2004 10:07:42 -0000
+@@ -91,6 +91,7 @@
+ 	@rm -rf ${MID}
+ 	@echo 4 cleaning ${DOC}
+ 	@rm -rf ${DOC}
++	@rm -f Makefile Makefile.dvi
+ 
+ @
+ \eject
+
+\start
+Date: Thu, 12 Aug 2004 21:54:20 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/doc/Makefile.pamphlet,v
+retrieving revision 1.7
+diff -u -d -B -b -r1.7 Makefile.pamphlet
+--- src/doc/Makefile.pamphlet	27 Jun 2004 15:00:59 -0000	1.7
++++ src/doc/Makefile.pamphlet	8 Aug 2004 10:06:50 -0000
+@@ -105,6 +105,7 @@
+ 
+ clean:
+ 	@echo 4 cleaning ${SRC}/doc
++	@rm -f Makefile Makefile.dvi
+ @
+ \eject
+ \begin{thebibliography}{99}
+
+\start
+Date: Thu, 12 Aug 2004 21:56:14 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+Cc: axiom-developer@nongnu.org
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/booklets/Makefile.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 Makefile.pamphlet
+--- src/booklets/Makefile.pamphlet	28 Aug 2003 12:15:28 -0000	1.1
++++ src/booklets/Makefile.pamphlet	8 Aug 2004 10:06:26 -0000
+@@ -19,6 +19,7 @@
+ clean:
+ 	@echo 2 cleaning ${INT}/docs/src/booklets
+ 	@rm -rf ${INT}/docs/src/booklets
++	@rm -f Makefile Makefile.dvi
+ @
+ \eject
+ \begin{thebibliography}{99}
+
+\start
+Date: Thu, 12 Aug 2004 22:22:00 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+this is actually a generated file used for very deep debugging
+and the patch shouldn't matter all that much because clearly Axiom
+will only fail on linux systems :-) But I agree it needs fixing.
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/interp/debugsys.lisp.pamphlet,v
+retrieving revision 1.2
+diff -u -d -B -b -r1.2 debugsys.lisp.pamphlet
+--- src/interp/debugsys.lisp.pamphlet	24 May 2004 22:53:51 -0000	1.2
++++ src/interp/debugsys.lisp.pamphlet	8 Aug 2004 10:09:01 -0000
+@@ -79,7 +79,7 @@
+       (thesymb "/int/interp/buildom.clisp")
+       (thesymb "/int/interp/cattable.clisp")
+       (thesymb "/int/interp/cformat.clisp")
+-      (thesymb "/obj/linux/interp/cfuns.o")
++      (thesymb "/obj/${SYS}/interp/cfuns.o")
+       (thesymb "/int/interp/clam.clisp")
+       (thesymb "/int/interp/clammed.clisp")
+       (thesymb "/int/interp/comp.lisp")
+@@ -152,7 +152,7 @@
+       (thesymb "/int/interp/sfsfun.clisp")
+       (thesymb "/int/interp/simpbool.clisp")
+       (thesymb "/int/interp/slam.clisp")
+-      (thesymb "/obj/linux/interp/sockio.o")
++      (thesymb "/obj/${SYS}/interp/sockio.o")
+       (thesymb "/int/interp/spad.lisp")
+       (thesymb "/int/interp/spaderror.lisp")
+       (thesymb "/int/interp/template.clisp")
+@@ -232,13 +232,13 @@
+    ())
+   (list 
+    (thesymb "/int/interp/ax.clisp"))
+-  "/mnt/linux"
++  "/mnt/${SYS}"
+   "/lsp"
+   "/src"
+   "/int"
+   "/obj"
+   "/mnt"
+-  "linux")
++  "${SYS}")
+ (in-package "SCRATCHPAD-COMPILER")
+ (boot::set-restart-hook)
+ (in-package "BOOT")
+@@ -247,7 +247,7 @@
+ (load (user::thepath "/int/interp/obey.lsp"))
+ ;(si::multiply-bignum-stack 10)
+ (si::gbc-time 0)
+-(setq si::*system-directory* (user::thepath "/mnt/linux/bin/"))
++(setq si::*system-directory* (user::thepath "/mnt/${SYS}/bin/"))
+ (gbc t)
+ 
+ @
+
+\start
+Date: Thu, 12 Aug 2004 22:25:05 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/doc/axiom.bib.pamphlet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 axiom.bib.pamphlet
+--- src/doc/axiom.bib.pamphlet	28 Aug 2003 12:28:30 -0000	1.1
++++ src/doc/axiom.bib.pamphlet	8 Aug 2004 10:07:40 -0000
+@@ -12231,7 +12231,7 @@
+ \subsection{Makefile}
+ <<Makefile>>=
+ @MISC{Makefile,
+-   path=./mnt/linux/bin/Makefile.pamphlet
++   path=./mnt/${SYS}/bin/Makefile.pamphlet
+ }
+ 
+ @
+
+\start
+Date: Thu, 12 Aug 2004 23:53:56 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+This required some more extensive changes because the .dvi file was
+not being generated. The src/Makefile and src/clef/Makefile were
+also changed.
+
+patch applied --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/clef/edible.c.pamphlet,v
+retrieving revision 1.4
+diff -u -d -B -b -r1.4 edible.c.pamphlet
+--- src/clef/edible.c.pamphlet	30 Jul 2004 16:45:33 -0000	1.4
++++ src/clef/edible.c.pamphlet	8 Aug 2004 10:06:50 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{../../mnt/linux/bin/axiom}
++\usepackage{axiom}
+ \begin{document}
+ \title{\$SPAD/src/clef edible.c}
+ \author{The Axiom Team}
+
+\start
+Date: Fri, 13 Aug 2004 00:55:47 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+Makefiles get expanded in the context of the source directory.
+Thus Makefiles use a src relative path to the axiom.sty file.
+This used to be true of all files but a recent change was made
+to generate the mnt/sys/doc directory. Most files get expanded
+in the doc directory now.
+
+The axiom.sty file for Makefiles lives in the mnt/sys/bin subdirectory.
+The axiom.sty file for other files is dynamically created in their 
+corresponding doc directory. This was done to enable further changes
+in documentation which are "in process" locally but have not yet
+been uploaded.
+
+patch rejected --t
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/clef/Makefile.pamphlet,v
+retrieving revision 1.3
+diff -u -d -B -b -r1.3 Makefile.pamphlet
+--- src/clef/Makefile.pamphlet	27 Jun 2004 15:00:58 -0000	1.3
++++ src/clef/Makefile.pamphlet	8 Aug 2004 10:06:48 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{../../mnt/linux/bin/axiom}
++\usepackage{axiom}
+ \begin{document}
+ \title{\$SPAD/src/clef Makefile}
+ \author{Timothy Daly}
+
+\start
+Date: Fri, 13 Aug 2004 01:05:34 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+Actually, this is experimental at the moment and I didn't realize
+I included it in the upload. The follow-on technology for pamphlets
+will be booklets. Booklets are like pamphlets but the chunk names,
+which right now are completely free-form, will in the future have
+an optional syntax of a URI. So you'll be able to create chunks 
+that access web pages:
+
+<<http://page.axiom-developer.org/foo/bar/baz.pamphlet>>
+
+or chunks that access local pages
+
+<<file:///path/axiom/src/doc/file.pamphlet>>
+
+or with individual subchunks:
+
+<<file:///path/axiom/src/doc/file.pamphlet?R=sortchunk>>
+
+or chunks that run programs
+
+<<lisp://path/axiom/int/input/foo.lisp>>
+
+etc. With this file I've done a survey of Axiom's sorting facilities.
+The idea is to rewrite this file to use URIs where appropriate and
+develop David Mentre's booklet program further.
+
+In addition, this should use the axiom.sty file not the noweb.sty
+which is no longer used except by noweb itself.
+
+
+patch modified to use \usepackage{axiom} --t
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/src/booklets/Sorting.booklet,v
+retrieving revision 1.1
+diff -u -d -B -b -r1.1 Sorting.booklet
+--- src/booklets/Sorting.booklet	28 Aug 2003 12:15:28 -0000	1.1
++++ src/booklets/Sorting.booklet	8 Aug 2004 10:06:39 -0000
+@@ -1,5 +1,5 @@
+ \documentclass{article}
+-\usepackage{/home/axiomgnu/new/mnt/linux/bin/tex/noweb}
++\usepackage{noweb}
+ \begin{document}
+ \title{Sorting Facilities}
+ \author{Timothy Daly}
+
+\start
+Date: Fri, 13 Aug 2004 01:23:41 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+This patch was implemented somewhat differently than coded here.
+See the individual issues below, marked with >>> in the first columns --t
+
+
+===================================================================
+RCS file: /cvsroot/axiom/axiom/Makefile.pamphlet,v
+retrieving revision 1.25
+diff -u -d -B -b -r1.25 Makefile.pamphlet
+--- Makefile.pamphlet	21 Jul 2004 02:59:33 -0000	1.25
++++ Makefile.pamphlet	8 Aug 2004 10:06:16 -0000
+@@ -186,7 +186,7 @@
+ CCLBASE=${OBJ}/${SYS}/ccl/ccllisp
+ INSTALL=/usr/local/axiom
+ COMMAND=${INSTALL}/mnt/${SYS}/bin/axiom
+
+>>> This change was not applied here (mostly because it breaks all
+>>> of the other systems. This will force me to use the configure
+>>> command (and become more intimate with bash). In any case, at
+>>> the moment this is unchanged.
+
+-TANGLE=${SPADBIN}/lib/notangle
++TANGLE=notangle
+ 
+ NOISE="-o ${TMP}/trace"
+ 
+@@ -268,6 +268,7 @@
+ 	@mkdir -p ${OBJ}/noweb
+ 	@mkdir -p ${TMP}
+ 	@mkdir -p ${MNT}/${SYS}/bin/lib
+
+>>> This change also needs to be done differently and has not yet
+>>> been applied. The configure command can easily disable this
+>>> stanza by doing a "touch noweb", which causes make to conclude
+>>> that noweb already exists. In any case, at the moment this is
+>>> unchanged.
+
++ifneq "${SYS}" "freebsd"
+ 	@( cd ${OBJ}/noweb ; \
+ 	tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \
+ 	cd ${OBJ}/noweb/src ; \
+@@ -279,6 +280,7 @@
+ 	${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \
+                 MAN=${MNT}/${SYS}/bin/man \
+                 TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace )
++endif
+ 	@echo The file marks the fact that noweb has been made > noweb
+ 
+ nowebclean:
+@@ -406,7 +408,13 @@
+ 	@echo 78 installing Axiom in ${INSTALL}
+ 	@mkdir -p ${INSTALL}
+ 	@cp -pr ${MNT} ${INSTALL}
+
+>>> This change has been applied and backported to the other systems.
+
+-	@echo AXIOM=${INSTALL}/mnt/${SYS} >${COMMAND}
++	@echo '#!/bin/sh -' >${COMMAND}
++	@echo AXIOM=${INSTALL}/mnt/${SYS} >>${COMMAND}
++	@echo export AXIOM >>${COMMAND}
++	@echo DAASE='$${AXIOM}' >>${COMMAND}
++	@echo export DAASE >>${COMMAND}
++	@echo PATH='$${PATH}':'$${AXIOM}/bin' >>${COMMAND}
++	@echo export PATH >>${COMMAND}
+ 	@cat ${SRC}/etc/axiom >>${COMMAND}
+ 	@chmod +x ${COMMAND}
+ 	@echo 79 Axiom installation finished.
+@@ -550,6 +558,11 @@
+ optimizations for function calling in Axiom. This is handled automatically
+ by changing this variable.
+
+
+>>> This patch was not applied. Since GCL is never built for your
+>>> freebsd system there is no reason to change the GCLVERSION variable.
+ 
++If GCLVERSION is ``gcl-system'', then no GCL is not built locally,
++and it is assumed that the ``gcl'' command is available off the
++path. If this GCL is unsuitable for building Axiom, then very bad
++things will happen.
++
+ NOTE WELL: IF YOU CHANGE THIS YOU SHOULD ERASE THE lsp/Makefile FILE.
+ This will cause the build to remake the lsp/Makefile from the
+ lsp/Makefile.pamphlet file and get the correct version. If you
+@@ -562,7 +575,8 @@
+ #GCLVERSION=gcl-2.6.1
+ #GCLVERSION=gcl-2.6.2
+ #GCLVERSION=gcl-2.6.2a
+-GCLVERSION=gcl-2.6.3
++#GCLVERSION=gcl-2.6.3
++GCLVERSION=gcl-system
+ @
+ 
+ \subsection{Makefile.axposf1v3}
+@@ -858,6 +872,53 @@
+ <<clean>>
+ 
+ @
+
+>>> This change was applied but had the side-effect of pushing a stanza
+>>> from the generated Makefile to the generated Makefile.freebsd (or
+>>> Makefile.linux) as that was the correct way to fix the problem.
+>>> So the actual version differs slightly from the version you have here.
+>>> In particular, the 'all:' stanza is now a chunk and there is a new
+>>> 'install.${SYS}' chunk not listed here.
+
++\subsection{Makefile.freebsd}
++Annoyingly enough it seems that GCL uses a default extension of .lsp
++rather than .lisp so we add the {\bf LISP} variable here. We need to
++depend on the default extension behavior because the system build
++will load either the interpreted or compiled form of a file depending
++on which is available. This varies at different stages of the build.
++<<Makefile.freebsd>>=
++# System dependent Makefile for the freebsd platform
++# Platform variable
++PLF:=FREEBSDplatform
++# C compiler flags
++CCF:="-O -pipe -fno-strength-reduce -Wall -D_GNU_SOURCE -D${PLF} -I/usr/X11R6/include -I/usr/local/include"
++# Loader flags
++LDF:="-L/usr/X11R6/lib -L/usr/local/lib"
++# C compiler to use
++CC:=gcc 
++AWK=awk
++RANLIB=ranlib
++TOUCH=touch
++TAR=tar
++AXIOMXLROOT=${AXIOM}/compiler
++O=o
++BYE=bye
++LISP=lsp
++DAASE=${SRC}/share
++# where the libXpm.a library lives
++XLIB=/usr/X11R6/lib
++
++ENV=PLF=${PLF} CCF=${CCF} LDF=${LDF} CC=${CC} AWK=${AWK} RANLIB=${RANLIB} \
++    TOUCH=${TOUCH} TAR=${TAR} AXIOMXLROOT=${AXIOMXLROOT} O=${O} BYE=${BYE} \
++    LISP=${LISP} DAASE=${DAASE} XLIB=${XLIB} TANGLE=${TANGLE}
++
++all: rootdirs srcsetup lspdir srcdir
++	@echo 45 Makefile.freebsd called
++	@echo 46 Environment : ${ENV} 
++	@echo 47 finished system build on `date` | tee >lastBuildDate
++
++<<rootdirs>>
++<<noweb>>
++<<literate commands>>
++<<srcsetup>>
++<<src>>
++<<lsp>>
++<<document>>
++<<clean>>
++
++@
+ \subsection{Makefile.linux}
+ Annoyingly enough it seems that GCL uses a default extension of .lsp
+ rather than .lisp so we add the {\bf LISP} variable here. We need to
+
+\start
+Date: Fri, 13 Aug 2004 02:02:44 -0400
+From: root <daly@idsi.net>
+To: thomasb@math.ohio-state.edu
+Subject: [Axiom-developer] Re: [Axiom-mail] Graphics not working ?
+
+The graphics work (src/graph) and the viewAlone program exists that
+can view the graphics files that are created. The file format for 
+2D graphics files is documented by the current build. The document is:
+
+(path)/axiom/mnt/linux/doc/src/graph/fileformats.dvi
+
+I have yet to document the 3D case. 
+
+Also during the build a test file is created (from the 
+src/graph/fileformats.pamphlet) in the (path)/axiom/int/graph directory.
+You can see the 2D version of graphics working if you do:
+
+cd (path)/axiom/int/graph
+../../mnt/linux/bin/viewAlone parabola
+
+This will bring up a 2D graph. If you click anywhere on the graph the
+control panel will appear and you can manipulate the graph. Click on
+the quit button twice to end the program.
+
+There are two steps to do:
+
+1. Integrate the graphics with the Axiom system
+2. Document the 3D file format and source files
+3. Build a 3D test case
+
+Step 1 is in process. It requires recovering the sman program (aka
+"superman"). I am in the process of building, documenting and testing
+this locally but have not yet put it up on the worldwide server. Once
+I complete step 1 I'll move on to steps 2 and 3.
+
+At present I've stopped working on the sman program while I install
+a series of long-overdue patches for the freebsd version (as you can
+see from the flurry of patch confirmation messages). Once these
+get locally tested I have to test them on Mark's freebsd system
+so I can see how badly I've broken freebsd. When that completes
+and is stable I'll return to building sman.
+
+\start
+Date: Fri, 13 Aug 2004 08:30:08 +0100
+From: Mark Murray <mark@grondar.org>
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set 
+
+Hi Tim
+
+Thanks a lot for incorporating the FreeBSD fixes! (How long does it
+take for them to be visible on the publicly visible CVS server?)
+
+root writes:
+> This patch was implemented somewhat differently than coded here.
+> See the individual issues below, marked with >>> in the first columns --t
+
+No problemo. As you rather obviously know the system much better than
+me, you are far more likely to come up with decent solutions than
+my hacks :-).
+
+> ===================================================================
+> RCS file: /cvsroot/axiom/axiom/Makefile.pamphlet,v
+> retrieving revision 1.25
+> diff -u -d -B -b -r1.25 Makefile.pamphlet
+> --- Makefile.pamphlet	21 Jul 2004 02:59:33 -0000	1.25
+> +++ Makefile.pamphlet	8 Aug 2004 10:06:16 -0000
+> @@ -186,7 +186,7 @@
+>  CCLBASE=${OBJ}/${SYS}/ccl/ccllisp
+>  INSTALL=/usr/local/axiom
+>  COMMAND=${INSTALL}/mnt/${SYS}/bin/axiom
+> 
+> >>> This change was not applied here (mostly because it breaks all
+> >>> of the other systems. This will force me to use the configure
+> >>> command (and become more intimate with bash). In any case, at
+> >>> the moment this is unchanged.
+> 
+> -TANGLE=${SPADBIN}/lib/notangle
+> +TANGLE=notangle
+
+I should have commented this - I'm somewhat prepared to just carry
+a small diff like this one as a local diff in the FreeBSD port building
+system. OTOH, if there is a cute way of making it work for everyone, I'd
+be delighted!
+
+>  NOISE="-o ${TMP}/trace"
+>  
+> @@ -268,6 +268,7 @@
+>  	@mkdir -p ${OBJ}/noweb
+>  	@mkdir -p ${TMP}
+>  	@mkdir -p ${MNT}/${SYS}/bin/lib
+> 
+> >>> This change also needs to be done differently and has not yet
+> >>> been applied. The configure command can easily disable this
+> >>> stanza by doing a "touch noweb", which causes make to conclude
+> >>> that noweb already exists. In any case, at the moment this is
+> >>> unchanged.
+> 
+> +ifneq "${SYS}" "freebsd"
+>  	@( cd ${OBJ}/noweb ; \
+>  	tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \
+>  	cd ${OBJ}/noweb/src ; \
+> @@ -279,6 +280,7 @@
+>  	${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \
+>                  MAN=${MNT}/${SYS}/bin/man \
+>                  TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace )
+> +endif
+>  	@echo The file marks the fact that noweb has been made > noweb
+>  
+>  nowebclean:
+> @@ -406,7 +408,13 @@
+>  	@echo 78 installing Axiom in ${INSTALL}
+>  	@mkdir -p ${INSTALL}
+>  	@cp -pr ${MNT} ${INSTALL}
+
+Same as above.
+
+> >>> This patch was not applied. Since GCL is never built for your
+> >>> freebsd system there is no reason to change the GCLVERSION variable.
+
+Er, how does that work? What stops the piggyback GCL build from
+happening?
+
+> +If GCLVERSION is ``gcl-system'', then no GCL is not built locally,
+> +and it is assumed that the ``gcl'' command is available off the
+> +path. If this GCL is unsuitable for building Axiom, then very bad
+> +things will happen.
+> +
+>  NOTE WELL: IF YOU CHANGE THIS YOU SHOULD ERASE THE lsp/Makefile FILE.
+>  This will cause the build to remake the lsp/Makefile from the
+>  lsp/Makefile.pamphlet file and get the correct version. If you
+> @@ -562,7 +575,8 @@
+>  #GCLVERSION=gcl-2.6.1
+>  #GCLVERSION=gcl-2.6.2
+>  #GCLVERSION=gcl-2.6.2a
+> -GCLVERSION=gcl-2.6.3
+> +#GCLVERSION=gcl-2.6.3
+> +GCLVERSION=gcl-system
+>  @
+>  
+>  \subsection{Makefile.axposf1v3}
+> @@ -858,6 +872,53 @@
+>  <<clean>>
+>  
+>  @
+
+\start
+Date: Fri, 13 Aug 2004 12:02:16 +0100 (BST)
+From: W Naylor <wn@cs.bath.ac.uk>
+To: root <daly@idsi.net>
+Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation
+Cc: miked@nag.co.uk
+
+On Thu, 12 Aug 2004, root wrote:
+
+> Bill,
+> 
+> I've been reading through your thesis and it's excellent. I've also
+> downloaded the program sources which all appear to be in aldor.  I'd
+
+yes, they all include the file axiom.as, so that they have to be run under 
+the axiom environment. I wrote them in aldor because I believed that was 
+the way axiom would be heading.
+> like your permission to bring the thesis work back to life on the
+> current Axiom and use the thesis to explain the work as a literate
+
+sure, no problem.
+
+> program. I'll have to rewrite portions of the CCL and the Aldor
+> sections to bring them in line with the current level. Also, Axiom now
+> contains a "pamphlet" (basically tex with a few extras) structure
+> which allows code to be embedded "inline" in the document as part of
+> the explanation. This is useful for making code maintainable in future
+> releases.
+
+Is this anything todo with Manuel Bronsteins aldorlib?
+
+> 
+> I don't see any makefiles with the code. Is there an input file that
+> was used to build these?
+
+Unforunatly not, whenever I wrote a new bit of code, I just compiled it 
+from the command line!
+
+\start
+Date: Fri, 13 Aug 2004 11:03:29 -0400
+From: root <daly@idsi.net>
+To: mark@grondar.org
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set
+
+Mark,
+
+> Thanks a lot for incorporating the FreeBSD fixes! (How long does it
+> take for them to be visible on the publicly visible CVS server?)
+
+There is quite a lag because I do a fair bit of testing before release.
+And, as you know, a single complete build can take hours. I normally
+do many incremental builds and several complete builds before release
+(and one complete build after release to try to catch bad uploads).
+You'll see some of the process when I hit your server. It's more
+important to get it right than get it fast. Plus it won't be obvious
+but I reformat and document files I touch. So compare the difference
+between one of the files you fixed such as wtc.c.pamphlet before and 
+after and you'll see that I've spent time reverse-engineering the C 
+code structure and documenting it. This has no effect on the generated
+code (well, almost none. most comments are no longer sent to the C
+compiler) but will make maintaining the system easier in the long run,
+which is the whole point of pamphlet files.
+
+
+\start
+Date: Fri, 13 Aug 2004 15:58:57 +0100
+From: Mark Murray <markm@FreeBSD.org>
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set 
+
+root writes:
+> Mark,
+> 
+> > Thanks a lot for incorporating the FreeBSD fixes! (How long does it
+> > take for them to be visible on the publicly visible CVS server?)
+> 
+> There is quite a lag because I do a fair bit of testing before release.
+> And, as you know, a single complete build can take hours. I normally
+> do many incremental builds and several complete builds before release
+> (and one complete build after release to try to catch bad uploads).
+> You'll see some of the process when I hit your server. It's more
+> important to get it right than get it fast. Plus it won't be obvious
+> but I reformat and document files I touch. So compare the difference
+> between one of the files you fixed such as wtc.c.pamphlet before and 
+> after and you'll see that I've spent time reverse-engineering the C 
+> code structure and documenting it. This has no effect on the generated
+> code (well, almost none. most comments are no longer sent to the C
+> compiler) but will make maintaining the system easier in the long run,
+> which is the whole point of pamphlet files.
+
+Gotcha. Thanks again!
+
+\start
+Date: Mon, 16 Aug 2004 12:03:16 -0400
+From: xli96@uwo.ca
+To: axiom-developer@nongnu.org
+Subject: [Axiom-developer] about fixarray
+
+Hi,
+
+could anybody tell me how to use fixarray in AXIOM correspondingly?
+
+
+struct fixarray {		/*  fixnum array header  */
+		FIRSTWORD;
+	object	fixa_displaced;	/*  displaced  */
+	short	fixa_rank;	/*  array rank  */
+	short	fixa_elttype;	/*  element type  */
+	fixnum	*fixa_self;	/*  pointer to the array  */
+	short	fixa_adjustable;/*  adjustable flag  */
+	short	fixa_offset;	/*  not used  */
+	int	fixa_dim;	/*  dimension  */
+	int	*fixa_dims;	/*  table of dimensions  */
+
+};
+
+
+\start
+Date: Mon, 16 Aug 2004 19:10:26 -0400
+From: root <daly@idsi.net>
+To: xli96@uwo.ca
+Subject: Re: [Axiom-developer] about fixarray
+
+I'm not sure I understand your question about fixarray.
+This appears to be a C struct, not an Axiom object.
+Is this from the underlying Lisp code?
+
+What are you trying to accomplish? I don't understand the goal.
+
+\start
+Date: Tue, 17 Aug 2004 09:12:40 -0400
+From: "Bill Page" <bill.page1@sympatico.ca>
+To: "'Martin Rubey'" <martin.rubey@univie.ac.at>
+Subject: [Axiom-developer] RE: Axiom-Wiki
+
+Martin,
+
+The security settings on Zope were set so that only
+people who were logged in to Zope (usually only site
+managers) could reparent pages on the MathAction wiki.
+This is too restrictive, so I have changed it so that
+all you need to do is to supply a user name and email
+on the "preferences" page - this is the closest thing
+that the Zwiki has to logging in. Let me know if it is
+working for you now.
+
+Don't hesitate to ask if you have any other questions,
+suggestions or comments. I would really like to help
+people to get used to this thing.
+
+Thanks.
+
+Regards,
+Bill Page.
+
+> -----Original Message-----
+> From: Martin Rubey [mailto:martin.rubey@univie.ac.at] 
+> Sent: Tuesday, August 17, 2004 7:33 AM
+> To: Page, Bill
+> Subject: Axiom-Wiki
+> 
+> 
+> > ----------
+> > From: 	Martin Rubey[SMTP:MARTIN.RUBEY@UNIVIE.AC.AT]
+> > Sent: 	Tuesday, August 17, 2004 7:33:11 AM
+> > To: 	Page, Bill
+> > Subject: 	Axiom-Wiki
+> > Auto forwarded by a Rule
+> > 
+> Hi,
+> 
+> I just tried to add a page to the Axiom Wiki (Wishlist, as 
+> suggested by Tim), and I succeeded -- but only partially.
+> What I didn't manage to do is to reparent the page. Although
+> I subscribed it and set my user options, entered "full-mode",
+> nothing appeared at the bottom of the page to reparent it,
+> as described on the help page...
+
+\start
+Date: Tue, 17 Aug 2004 14:30:33 -0400
+From: root <daly@idsi.net>
+To: david@lichteblau.com, developers@knowledgetools.de
+Subject: [Axiom-developer] Lisp and Flash
+Cc: xach@xach.com, luannebg@yahoo.com
+
+*,
+
+Zach Beane is working on a Lisp-Flash interface.
+He points me in your direction as a possible source of information.
+
+I am working on Axiom, a computer algebra system implemented in lisp.
+We'd like to use flash to build a simple output example. In particular,
+the idea is to start with a flat plane (a lake), use a forcing function
+(a stone), and generate the wave as flash (a moving sine wave).
+
+Do you have any code that can help with this process?
+(Note that Axiom is Modifed-BSD and generally free).
+
+\start
+Date: 17 Aug 2004 17:34:11 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: daly@idsi.net
+Subject: [Axiom-developer] Ugly bug -- not sure how to handle
+
+R1 is defined in ucontext.h on arm only, conflicting with
+src/graph/view3D/globals.h.
+
+An #undef R1 in the latter file works, but....
+
+\start
+Date: Tue, 17 Aug 2004 19:04:38 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: gcl-devel@gnu.org, axiom-developer@nongnu.org, acl2@lists.cc.utexas.edu, maxima <maxima@www.ma.utexas.edu>, info@gnu.org
+Subject: [Axiom-developer] GCL 2.6.5 is released
+
+The GCL team is happy to announce the release of version 2.6.5, the
+latest achievement in the 'stable' series. This release is a minor
+modification to version 2.6.4. From the changelog:
+
+    * New gmp_wrappers.{c,h} files that prevent all GBC within gmp,
+      obviating the need for gmp patches and a local gmp
+      configure. FIXME -- extend to all gmp functions in a systematic
+      way, and write header information for future use in the
+      compiler, making sure that plt.c carries the needed gmp symbols
+      at this point
+
+    * dynsysgmp on by default; configure backs off to local gmp
+      configure and build automatically if needed either because gmp
+      not present or patched symbols are needed
+
+    * autodetect and set the _start symbol when using gprof
+
+    * Fix (setf (get ...) ...) return bug when interpreted
+
+    * Fix overwrite end of sgc_type_map bug
+
+    * Versioned depends on binutils-dev manually installed by Debian build process
+
+As an example of the recent performance enhancements in GCL, Matt Kaufmann, one
+of the ACL2 co-authors, reports significantly improved timings for the ACL2
+regression suite.  When ACL2 2.8 was released, GCL was in pre-release mode for
+2.6.2, and provided the following regression suite timings as reported on
+http://www.cs.utexas.edu/users/moore/acl2/v2-8/installation.html:
+
+    * Gnu Common Lisp (GCL), Version 2.6.1-34 (unreleased):
+      11005.520u  99.530s 3:10:45.33 97.0% 0+0k 0+0io 9555249pf+0w
+    * Allegro Common Lisp, Version 6.2:
+      12289.340u 134.340s 3:35:22.82 96.1% 0+0k 0+0io 9540266pf+0w
+    * CMU Common Lisp (CMUCL), Version 18e:
+      11303.590u 246.730s 3:29:11.40 92.0% 0+0k 0+0io 8906120pf+0w
+    * Lispworks Common Lisp, Version 4.2.7:
+      [No time available, but at one time was tested at about 72% slower than GCL.]
+    * CLISP, Version 2.33:*
+      52591u     611s    15:31       98%
+    * Times above for CLISP are approximate [you don't want to know...]
+
+Since version 2.6.3, a reasonably comparable calculation on the same machine
+takes about 7800 user seconds (on a slightly updated ACL2).
+
+\start
+Date: 18 Aug 2004 09:56:50 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: daly@idsi.net
+Subject: [Axiom-developer] Re: GCL 2.6.5
+
+Greetings!  Just one other note about this release -- it fixes the
+afore-reported problem of miscalculation of sqrt(2.) in the digit
+range around 121278.
+
+\start
+Date: Thu, 19 Aug 2004 11:14:20 -0400
+From: root <daly@idsi.net>
+To: camm@enhanced.com
+Subject: [Axiom-developer] Re: GCL 2.6.5
+
+excellent. i'll update the host --t
+
+\start
+Date: Fri, 20 Aug 2004 16:29:07 -0400
+From: root <daly@idsi.net>
+To: axiom-developer@nongnu.org
+Subject: [Axiom-developer] [sam@integretechpub.com: techexplorer Release 3.5]
+Cc: Sam Dooley <sam@integretechpub.com>
+
+*,
+
+I just received this announcement from Sam Dooley, one of the
+original authors of Axiom. He's been working with techexplorer
+which was originally a front end to Axiom. 
+
+
+========================================================
+Date: Fri, 20 Aug 2004 13:38:45 -0600
+To: daly@idsi.net
+From: Sam Dooley <sam@integretechpub.com>
+Subject: techexplorer Release 3.5
+
+Tim,
+
+I am pleased to announce the release on the Integre web site of
+Integre techexplorer Hypermedia Browser, Release 3.5 for Windows,
+Linux, and Macintosh, and Integre MathML Equation Editor, Release 1.2
+for Windows.
+
+We will be sending out a more detailed announcement soon.
+In the meantime, please let me know any feedback you might have
+on the new versions.
+
+Thanks,
+Sam
+http:://www.integretechpub.com/techexplorer/
+
+\start
+Date: Fri, 20 Aug 2004 14:23:17 -0700 (PDT)
+From: C Y <smustudent1@yahoo.com>
+To: axiom-developer@nongnu.org
+Subject: Re: [Axiom-developer] [techexplorer Release 3.5]
+
+Error in that hyperlink.
+
+This one works for me:
+
+http://www.integretechpub.com/products/techexplorer/
+
+Note:  Licensing is free for personal use only:
+http://www.integretechpub.com/techexplorer/license/
+
+CY
+
+--- root <daly@idsi.net> wrote:
+
+> *,
+> 
+> I just received this announcement from Sam Dooley, one of the
+> original authors of Axiom. He's been working with techexplorer
+> which was originally a front end to Axiom. 
+> 
+> 
+> ========================================================
+> Date: Fri, 20 Aug 2004 13:38:45 -0600
+> To: daly@idsi.net
+> From: Sam Dooley <sam@integretechpub.com>
+> Subject: techexplorer Release 3.5
+> 
+> Tim,
+> 
+> I am pleased to announce the release on the Integre web site of
+> Integre techexplorer Hypermedia Browser, Release 3.5 for Windows,
+> Linux, and Macintosh, and Integre MathML Equation Editor, Release 1.2
+> for Windows.
+> 
+> We will be sending out a more detailed announcement soon.
+> In the meantime, please let me know any feedback you might have
+> on the new versions.
+> 
+> Thanks,
+> Sam
+> http:://www.integretechpub.com/techexplorer/
+
+\start
+Date: Sun, 22 Aug 2004 06:04:18 -0400
+From: root <daly@idsi.net>
+To: axiom-developer@nongnu.org, axiom-math@nongnu.org
+Subject: [Axiom-developer] gcl-2.6.5 upgrade
+
+The CVS now has the build process for GCL-2.6.5.
+This fixes the sqrt(2.) bug.
+
+\start
+Date: Sun, 22 Aug 2004 17:00:46 +0200
+From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= <g.vanuxem@wanadoo.fr>
+To: Axiom Developer <axiom-developer@nongnu.org>
+Subject: [Axiom-developer] bug #10063 overview: Handling of power series
+
+Hi,
+
+What do you think of this 'fatal 'bug?
+
+
+It seems that the interpreter handles strangely the power series: 
+
+a:= series sin(x); 
+)di type % 
+Type of value of %: UnivariatePuiseuxSeries(Expression Integer,x,0) 
+a=a; 
+)di type % 
+Type of value of %: Equation Any 
+
+If I coerce it... 
+a:=a::UnivariatePuiseuxSeries(Expression Integer,x,0); 
+a=a;
+)di type % 
+Type of value of %: Equation UnivariatePuiseuxSeries(Expression
+Integer,x,0) 
+------------------------------------------------ 
+Fatal bug: 
+
+a:= series sin(x); 
+a*1.0; 
+>> System error: 
+Caught fatal error [memory may be damaged] 
+
+protected-symbol-warn called with (NIL) 
+
+>From trace: 
+It seems that the interpreter doesn't coerce one args 
+in Expression (Float): 
+
+1<enter valueArgsEqual? : (|UnivariatePuiseuxSeries| (|Expression|
+(|Integer|)) |x| ((0 . 0) 0 . 1))\(|UnivariatePuiseuxSeries|
+(|Expression| (|Float|)) |x| ((0 . 0) 0 . 1)) 
+
+... 
+
+And here: 
+
+1<enter algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression|
+(|Float|)) 
+1<enter compiledLookupCheck : =\((|Boolean|) $ $)\#<vector 08eccc78> 
+1>exit compiledLookupCheck : (#<compiled-function |EXPR;=;2$B;21|> .
+#<vector 08eccc78>) 
+
+after SPADCALL (it's not traced) "=" in EXPR trigger the bug. 
+
+algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression| (|Float|)) 
+^^^^^^^^^^^^^^^ 
+I think above is not of type EXPR FLOAT. 
+
+\start
+Date: Sun, 22 Aug 2004 19:02:12 -0400
+From: root <daly@idsi.net>
+To: g.vanuxem@wanadoo.fr
+Subject: Re: [Axiom-developer] bug #10063 overview: Handling of power series
+
+Greg,
+
+Well, I wasn't looking for a new bug to chase but this is clearly one.
+
+The bug is actually in the algebra somewhere rather than in the lisp.
+The NAG version fails with the error msg:
+
++++ Error attempt to take the car of an atom: 0
+
+Did you file this in the axiom bug list?
+
+Tim
+
+====================================================================
+Hi,
+
+What do you think of this 'fatal 'bug?
+
+
+
+It seems that the interpreter handles strangely the power series: 
+
+a:= series sin(x); 
+)di type % 
+Type of value of %: UnivariatePuiseuxSeries(Expression Integer,x,0) 
+a=a; 
+)di type % 
+Type of value of %: Equation Any 
+
+If I coerce it... 
+a:=a::UnivariatePuiseuxSeries(Expression Integer,x,0); 
+a=a;
+)di type % 
+Type of value of %: Equation UnivariatePuiseuxSeries(Expression
+Integer,x,0) 
+------------------------------------------------ 
+Fatal bug: 
+
+a:= series sin(x); 
+a*1.0; 
+>> System error: 
+Caught fatal error [memory may be damaged] 
+
+protected-symbol-warn called with (NIL) 
+
+>From trace: 
+It seems that the interpreter doesn't coerce one args 
+in Expression (Float): 
+
+1<enter valueArgsEqual? : (|UnivariatePuiseuxSeries| (|Expression|
+(|Integer|)) |x| ((0 . 0) 0 . 1))\(|UnivariatePuiseuxSeries|
+(|Expression| (|Float|)) |x| ((0 . 0) 0 . 1)) 
+
+... 
+
+And here: 
+
+1<enter algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression|
+(|Float|)) 
+1<enter compiledLookupCheck : =\((|Boolean|) $ $)\#<vector 08eccc78> 
+1>exit compiledLookupCheck : (#<compiled-function |EXPR;=;2$B;21|> .
+#<vector 08eccc78>) 
+
+after SPADCALL (it's not traced) "=" in EXPR trigger the bug. 
+
+algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression| (|Float|)) 
+^^^^^^^^^^^^^^^ 
+I think above is not of type EXPR FLOAT. 
+
+\start
+Date: Mon, 23 Aug 2004 13:34:34 +0200
+From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= <g.vanuxem@wanadoo.fr>
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] bug #10063 overview: Handling of power series
+
+Le lun 23/08/2004 =E0 01:02, root a =E9crit :
+> Greg,
+> 
+> Well, I wasn't looking for a new bug to chase but this is clearly one.
+> 
+> The bug is actually in the algebra somewhere rather than in the lisp.
+> The NAG version fails with the error msg:
+> 
+> +++ Error attempt to take the car of an atom: 0
+> 
+> Did you file this in the axiom bug list?
+> 
+> Tim
+
+Yes, but 
+
+1<enter algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression|
+(|Float|)) 
+1<enter compiledLookupCheck : =\((|Boolean|) $ $)\#<vector 08eccc78> 
+1>exit compiledLookupCheck : (#<compiled-function |EXPR;=;2$B;21|> .
+#<vector 08eccc78>) 
+
+after SPADCALL (it's not traced) "=" in EXPR trigger the bug. 
+
+algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression| (|Float|)) 
+^^^^^^^^^^^^^^^ 
+I think above is not of type EXPR FLOAT. 
+
+
+> =========================
+==========================
+===================
+> Hi,
+> 
+> What do you think of this 'fatal 'bug?
+> 
+> 
+> 
+> It seems that the interpreter handles strangely the power series: 
+> 
+> a:= series sin(x); 
+> )di type % 
+> Type of value of %: UnivariatePuiseuxSeries(Expression Integer,x,0) 
+> a=a; 
+> )di type % 
+> Type of value of %: Equation Any 
+> 
+> If I coerce it... 
+> a:=a::UnivariatePuiseuxSeries(Expression Integer,x,0); 
+> a=a;
+> )di type % 
+> Type of value of %: Equation UnivariatePuiseuxSeries(Expression
+> Integer,x,0) 
+> ------------------------------------------------ 
+> Fatal bug: 
+> 
+> a:= series sin(x); 
+> a*1.0; 
+> >> System error: 
+> Caught fatal error [memory may be damaged] 
+> 
+> protected-symbol-warn called with (NIL) 
+> 
+> >From trace: 
+> It seems that the interpreter doesn't coerce one args 
+> in Expression (Float): 
+> 
+> 1<enter valueArgsEqual? : (|UnivariatePuiseuxSeries| (|Expression|
+> (|Integer|)) |x| ((0 . 0) 0 . 1))\(|UnivariatePuiseuxSeries|
+> (|Expression| (|Float|)) |x| ((0 . 0) 0 . 1)) 
+> 
+> ... 
+> 
+> And here: 
+> 
+> 1<enter algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression|
+> (|Float|)) 
+> 1<enter compiledLookupCheck : =\((|Boolean|) $ $)\#<vector 08eccc78> 
+> 1>exit compiledLookupCheck : (#<compiled-function |EXPR;=;2$B;21|> .
+> #<vector 08eccc78>) 
+> 
+> after SPADCALL (it's not traced) "=" in EXPR trigger the bug. 
+> 
+> algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 . 0)\(|Expression| (|Float|)) 
+> ^^^^^^^^^^^^^^^ 
+> I think above is not of type EXPR FLOAT. 
+
+\start
+Date: Mon, 23 Aug 2004 09:47:50 -0700 (PDT)
+From: Clifton Williamson <clifton_williamson@yahoo.com>
+To: Vanuxem "Grégory" <g.vanuxem@wanadoo.fr>, daly@idsi.net
+Subject: Re: [Axiom-developer] bug #10063 overview: Handling of power series
+
+This looks like an interpreter problem.  There is no
+problem if you first coerce 'a' to be of type
+UPXS(EXPR FLOAT,x,0):
+
+(1) -> a := series sin x
+(2) -> aFloat := a :: UPXS(EXPR FLOAT,x,0)
+(3) -> aFloat * 1.0
+
+When computing a * 1.0, if you do
+
+)set mess bot on
+
+you'll find that the interpreter is looking for a
+function * with arguments (UPXS(EXPR INT,x,0),FLOAT)
+just before Axiom crashes:
+
+ Function Selection for *
+      Arguments: (UPXS(EXPR INT,x,0),FLOAT) 
+ 
+ 
+   >> System error:
+   Caught fatal error [memory may be damaged]
+
+You might also want to look at the messages you get
+when you try to compute 1.0 * a.  In this case, the
+punch line is:
+
+ Function Selection for *
+      Arguments: (FLOAT,UPXS(EXPR INT,x,0)) 
+   -> no appropriate * found in Float 
+   -> no appropriate * found in
+UnivariatePuiseuxSeries(Expression Integer,x,0) 
+ 
+   >> System error:
+   Caught fatal error [memory may be damaged]
+
+
+--- Vanuxem Grégory <g.vanuxem@wanadoo.fr> wrote:
+
+> Le lun 23/08/2004 à 01:02, root a écrit :
+> > Greg,
+> > 
+> > Well, I wasn't looking for a new bug to chase but
+> this is clearly one.
+> > 
+> > The bug is actually in the algebra somewhere
+> rather than in the lisp.
+> > The NAG version fails with the error msg:
+> > 
+> > +++ Error attempt to take the car of an atom: 0
+> > 
+> > Did you file this in the axiom bug list?
+> > 
+> > Tim
+> 
+> Yes, but 
+> 
+> 1<enter algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 .
+> 0)\(|Expression|
+> (|Float|)) 
+> 1<enter compiledLookupCheck : =\((|Boolean|) $
+> $)\#<vector 08eccc78> 
+> 1>exit compiledLookupCheck : (#<compiled-function
+> |EXPR;=;2$B;21|> .
+> #<vector 08eccc78>) 
+> 
+> after SPADCALL (it's not traced) "=" in EXPR trigger
+> the bug. 
+> 
+> algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 .
+> 0)\(|Expression| (|Float|)) 
+> ^^^^^^^^^^^^^^^ 
+> I think above is not of type EXPR FLOAT. 
+> 
+> 
+> >
+>
+====================================================================
+> > Hi,
+> > 
+> > What do you think of this 'fatal 'bug?
+> > 
+> > 
+> > 
+> > It seems that the interpreter handles strangely
+> the power series: 
+> > 
+> > a:= series sin(x); 
+> > )di type % 
+> > Type of value of %:
+> UnivariatePuiseuxSeries(Expression Integer,x,0) 
+> > a=a; 
+> > )di type % 
+> > Type of value of %: Equation Any 
+> > 
+> > If I coerce it... 
+> > a:=a::UnivariatePuiseuxSeries(Expression
+> Integer,x,0); 
+> > a=a;
+> > )di type % 
+> > Type of value of %: Equation
+> UnivariatePuiseuxSeries(Expression
+> > Integer,x,0) 
+> > ------------------------------------------------ 
+> > Fatal bug: 
+> > 
+> > a:= series sin(x); 
+> > a*1.0; 
+> > >> System error: 
+> > Caught fatal error [memory may be damaged] 
+> > 
+> > protected-symbol-warn called with (NIL) 
+> > 
+> > >From trace: 
+> > It seems that the interpreter doesn't coerce one
+> args 
+> > in Expression (Float): 
+> > 
+> > 1<enter valueArgsEqual? :
+> (|UnivariatePuiseuxSeries| (|Expression|
+> > (|Integer|)) |x| ((0 . 0) 0 .
+> 1))\(|UnivariatePuiseuxSeries|
+> > (|Expression| (|Float|)) |x| ((0 . 0) 0 . 1)) 
+> > 
+> > ... 
+> > 
+> > And here: 
+> > 
+> > 1<enter algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1
+> . 0)\(|Expression|
+> > (|Float|)) 
+> > 1<enter compiledLookupCheck : =\((|Boolean|) $
+> $)\#<vector 08eccc78> 
+> > 1>exit compiledLookupCheck : (#<compiled-function
+> |EXPR;=;2$B;21|> .
+> > #<vector 08eccc78>) 
+> > 
+> > after SPADCALL (it's not traced) "=" in EXPR
+> trigger the bug. 
+> > 
+> > algEqual : ((0 . 0) 0 . 1)\((0 0 . 0) 0 1 .
+> 0)\(|Expression| (|Float|)) 
+> > ^^^^^^^^^^^^^^^ 
+> > I think above is not of type EXPR FLOAT. 
+
+\start
+Date: Mon, 23 Aug 2004 21:32:29 +0200
+From: David MENTRE <dmentre@linux-france.org>
+To: Camm Maguire <camm@enhanced.com>
+Subject: Re: [Axiom-developer] Ugly bug -- not sure how to handle
+
+Camm Maguire <camm@enhanced.com> writes:
+
+> R1 is defined in ucontext.h on arm only, conflicting with
+> src/graph/view3D/globals.h.
+>
+> An #undef R1 in the latter file works, but....
+
+Rename R1 in AXIOM_R1?
+
+And maybe stupid question: why is ucontext.h included from a libc .h
+file? 
+
+\start
+Date: 23 Aug 2004 16:01:47 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: David MENTRE <dmentre@linux-france.org>
+Subject: Re: [Axiom-developer] Ugly bug -- not sure how to handle
+
+Greetings!
+
+David MENTRE <dmentre@linux-france.org> writes:
+
+> Camm Maguire <camm@enhanced.com> writes:
+> 
+> > R1 is defined in ucontext.h on arm only, conflicting with
+> > src/graph/view3D/globals.h.
+> >
+> > An #undef R1 in the latter file works, but....
+> 
+> Rename R1 in AXIOM_R1?
+> 
+> And maybe stupid question: why is ucontext.h included from a libc .h
+> file? 
+> 
+
+It is brought in, on arm at least, by signal.h.  I've just added an
+ugly Debian patch for now:
+
+--- ./src/graph/view3D/globals.h.orig	2004-06-27 15:01:02.000000000 +0000
++++ ./src/graph/view3D/globals.h	2004-08-17 22:32:44.000000000 +0000
+@@ -128,10 +128,10 @@
+ extern float            pzMin, pzMax;
+ 
+ extern int              maxGreyShade;
+-
++#undef R1
+ extern char             propertyName[];
+ extern char             propertyBuffer[];
+-
++#define R1 RR1
+ extern float            transform[4][4], transform1[4][4],
+                         R[4][4], R1[4][4], S[4][4], T[4][4], I[4][4];
+ extern float            vxmax,vxmin,vymax,vymin,
+
+
+BTW, axiom 20040705 is now in Debian testing!  Compiled on all 12
+platforms, and will ship with 'sarge' pretty soon now.  I'd like to
+get in another recompile with the latest 2.6.5 fix, but do not know if
+there is time.
+
+\start
+Date: Mon, 23 Aug 2004 16:46:37 -0400
+From: root <daly@idsi.net>
+To: axiom-developer@nongnu.org
+Subject: [Axiom-developer] [florina.piroi@risc.uni-linz.ac.at: Postdoc Position in Theorema]
+
+------- Start of forwarded message -------
+
+Date: Wed, 18 Aug 2004 12:31:11 +0200
+From: Theorema <florina.piroi@risc.uni-linz.ac.at>
+Subject: Postdoc Position in Theorema
+
+
+        [we apologize for multiple copies]
+
+Postdoc Position in the Frame of the Theorema Project
+======================================================
+
+The new Radon Institute for Computational and Applied Mathematics
+(RICAM) of the Austrian Academy of Science in Linz, Austria, offers a
+postdoc position in the frame of the Theorema Project.
+
+The Theorema Project aims at creating a system that supports the
+entire process of Mathematical Theory Exploration (inventing
+mathematical concepts, inventing and verifying propositions,
+inventing mathematical problems, inventing and verifying algorithms,
+building up and manipulating structured mathematical knowledge bases
+etc.). 
+
+Prerequisites:
+
+- - PhD in mathematics or computer science
+- - Expertise or, at least, interest in computational mathematics,
+computational logic, and software development.
+
+Applications (CV, publication list etc.) should be sent to the Theorema
+project leader:
+
+Professor Bruno Buchberger
+buchberger@risc.uni-linz.ac.at
+
+For information on Theorema see  http://www.theorema.org 
+
+\start
+Date: Mon, 23 Aug 2004 19:20:56 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: Raymond Toy <rtoy@earthlink.net>, "Mike Thomas" <mike.thomas@brisbane.paradigmgeo.com>, maxima@math.utexas.edu, acl2@lists.cc.utexas.edu
+Subject: [Axiom-developer] GCL 2.6.5 Solaris errata
+
+Greetings!  It appears that solaris ld, at least in conjunction with
+recent gcc, can place the .data section before the .text section when
+C optimization is on, exposing an error in our handling of
+init_address in the loader.  Mike, you might want to look into this
+too.   The solaris machine to which I have access just upgraded its
+gcc, informing me of this issue.
+
+Here is an errata patch which fixes the problem, also posted to the
+GCL website:
+
+=============================================================================
+Index: o/sfaslelf.c
+===================================================================
+RCS file: /cvsroot/gcl/gcl/o/sfaslelf.c,v
+retrieving revision 1.8.6.6
+retrieving revision 1.15
+diff -u -w -r1.8.6.6 -r1.15
+--- o/sfaslelf.c	8 Mar 2004 22:02:24 -0000	1.8.6.6
++++ o/sfaslelf.c	23 Aug 2004 23:09:23 -0000	1.15
+@@ -133,13 +132,12 @@
+ 
+ 
+ /* align for power of two n */
+-static void *
+-round_up(address,n)
+-     unsigned int address,n;
+-{
+- return  (void *)((address + n -1) & ~(n-1)) ;
+-}
+-#define ROUND_UP(a,b) round_up(a,b) 
++/* static void * */
++/* round_up(unsigned long address,unsigned long n) { */
++/* { */
++/*  return  (void *)((address + n -1) & ~(n-1)) ; */
++/* } */
++#define ROUND_UP(_addr,_ps) ((void *)(((unsigned long)_addr + (unsigned long)_ps -1) & ~((unsigned long)_ps-1)))
+ 
+ int use_mmap;
+ 
+@@ -309,46 +307,31 @@
+      }
+ 
+    { 
+-     int j=0;
+-     for (j=1 ; j <  file_h->e_shnum ; j++)
+-       {
++     int j;
++
++     for (j=1 ; j <  file_h->e_shnum ; j++) {
++
+ 	 shp = &SECTION_H(j); 
+ 	 if ((shp->sh_type == SHT_RELA || shp->sh_type == SHT_REL) &&
+ 	     shp->sh_info<file_h->e_shnum &&
+-	     (SECTION_H(shp->sh_info).sh_flags & SHF_ALLOC))
+-	   {
+-	     int index_to_relocate = shp->sh_info;
++	     (SECTION_H(shp->sh_info).sh_flags & SHF_ALLOC) 
++	     && (SECTION_H(shp->sh_info).sh_type == SHT_PROGBITS
++		|| SECTION_H(shp->sh_info).sh_type == SHT_NOBITS)) {
++
++	   int k;
++	   char *rel = (char *) base +   shp->sh_offset;
++
+ 	     if (symtab_index != shp->sh_link)
+ 	       FEerror("unexpected symbol table used",0);
+-	     the_start = start_address + section[index_to_relocate].start;
+-	   }
+-/*  	 else if (shp->sh_type == SHT_REL */
+-/*  	     && (SECTION_H(shp->sh_info).sh_flags & SHF_ALLOC)) */
+-/*  	   { */
+-/*  	     int index_to_relocate = shp->sh_info; */
+-/*  	     if (symtab_index != shp->sh_link) */
+-/*  	       FEerror("unexpected symbol table used"); */
+-/*  	     the_start = start_address + section[index_to_relocate].start; */
+-/*  	   } */
++	   the_start = start_address + section[shp->sh_info].start;
+ 	 
+-	 else if ( (shp->sh_type == SHT_REL) || (shp->sh_type == SHT_RELA) )
+-	   {  if (/* get_section_number(".rel.stab") == j || */
+-		  /* Newer gcc uses these section name -- CMM 20040224*/
+-		  !strncmp(section_names+SECTION_H(j).sh_name,".rel.debug",10) ||
+-		  /* old in for backward compatibility */
+-		  !strcmp(section_names+SECTION_H(j).sh_name,".rel.stab"))
+-	         continue;
+-	     FEerror("unknown rel type",0);
+-	   }
+-	 else
+-	   continue;
+-	 {
+-	   int k=0;
+-	   char *rel = (char *) base +   shp->sh_offset;
+ 	   for (k= 0; k< shp->sh_size ; k+= shp->sh_entsize) 
+ 	     relocate(symbol_table,(Elf32_Rela *)(rel + k),shp->sh_type);
++
+ 	 }
++
+        }
++
+    }
+ 
+ #ifdef STAND
+@@ -692,7 +675,7 @@
+ 		  default:
+ 		    printf("[unknown rel secn %d type=%d]",
+ 			   sym->st_shndx,
+-			   SECTION_H(sym->st_shndx).sh_type);
++			   (int)SECTION_H(sym->st_shndx).sh_type);
+ 		  }
+ 	      }
+ 	    else
+@@ -708,7 +691,7 @@
+ 	      if (sym->st_shndx == text_index &&
+ 		  bcmp("init_",string_table + sym->st_name,4) == 0)
+ 		{
+-		  *init_address_ptr = sym->st_value;
++		  *init_address_ptr = sym->st_value+section[sym->st_shndx].start;
+ 
+ 		  }
+ 	    else	
+Index: o/sfaslbfd.c
+===================================================================
+RCS file: /cvsroot/gcl/gcl/o/sfaslbfd.c,v
+retrieving revision 1.12.4.1.2.4
+retrieving revision 1.18
+diff -u -w -r1.12.4.1.2.4 -r1.18
+--- o/sfaslbfd.c	20 Mar 2004 01:38:25 -0000	1.12.4.1.2.4
++++ o/sfaslbfd.c	23 Aug 2004 23:09:23 -0000	1.18
+@@ -306,7 +299,7 @@
+     struct bfd_link_hash_entry *h;
+ 
+     if (!strncmp(entry_name_ptr,q[u]->name,5)) {
+-      init_address=q[u]->value;
++      init_address=q[u]->value+(q[u]->section->output_section->vma-(unsigned long)memory->cfd.cfd_start);
+       continue;
+     }
+ 
+Index: o/sfasli.c
+===================================================================
+RCS file: /cvsroot/gcl/gcl/o/sfasli.c,v
+retrieving revision 1.10.4.2.2.7
+retrieving revision 1.20
+diff -u -w -r1.10.4.2.2.7 -r1.20
+--- o/sfasli.c	6 Mar 2004 01:57:43 -0000	1.10.4.2.2.7
++++ o/sfasli.c	23 Aug 2004 23:10:07 -0000	1.20
+@@ -118,7 +118,7 @@
+ 
+     char tmpfile1[80],command[300];
+ 
+-    snprintf(tmpfile1,sizeof(tmpfile1),"rsym%d",getpid());
++    snprintf(tmpfile1,sizeof(tmpfile1),"rsym%d",(int)getpid());
+ #ifndef STAND
+     coerce_to_filename(symbol_value(sSAsystem_directoryA),
+ 		       system_directory);
+=============================================================================
+
+\start
+Date: Wed, 25 Aug 2004 01:08:01 -0400
+From: "Page, Bill" <Bill.Page@drdc-rddc.gc.ca>
+To: 'Camm Maguire' <camm@enhanced.com>
+Subject: [Axiom-developer] RE: [Gcl-devel] ANSI test fixes
+
+Camm,
+
+Do these fixes for round and truncate etc. have anything to
+do with Axiom bug #4733 and the patch that I proposed some
+time ago for that?
+
+http://savannah.nongnu.org/patch/download.php?item_id 74&item_file_id 73
+
+I notice that this problem still occurs in the version of
+Axiom compiled from June 21, 2004 sources.
+
+Cheers,
+Bill Page.
+
+> -----Original Message-----
+> From: Camm Maguire [mailto:camm@enhanced.com]
+> Sent: Tuesday, August 24, 2004 11:16 PM
+> To: gcl-devel@gnu.org
+> Subject: [Gcl-devel] ANSI test fixes
+> 
+> 
+> Greetings!  Just committed some corrections and cleanups to the recent
+> accelerated ratio algorithms, and fixes for the (f)floor, (f)ceiling,
+> (f)round, (f)truncate, atan, asin, acos, and sqrt ansi tests.
+> 
+> Please test and enjoy.  Feedback of course always appreciated.
+> 
+> Still to do is to allow inlining of transcendentals from libm under
+> appropriate circumstances.
+
+\start
+Date: 25 Aug 2004 13:13:27 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: "Page, Bill" <Bill.Page@drdc-rddc.gc.ca>
+Subject: [Axiom-developer] Re: [Gcl-devel] ANSI test fixes
+
+Greetings!
+
+Looking at this briefly, I don't think the recent changes are
+related.  It does not appear that axiom really wants ash here in the
+negative case.  GCL's ash (with one small exception just fixed)
+concurs with the ash of the other ansi compliant lisps to my
+understanding. 
+
+The recent changes primarily relate to float type promotion problems
+certain functions were showing, plus the repair of a problem not in
+2.6.5 that was recently introduced into 2.7.0 when accelerating ratio
+operations. 
+
+Take care,
+
+"Page, Bill" <Bill.Page@drdc-rddc.gc.ca> writes:
+
+> Camm,
+> 
+> Do these fixes for round and truncate etc. have anything to
+> do with Axiom bug #4733 and the patch that I proposed some
+> time ago for that?
+> 
+> http://savannah.nongnu.org/patch/download.php?item_id 74&item_file_id 73
+> 
+> I notice that this problem still occurs in the version of
+> Axiom compiled from June 21, 2004 sources.
+> 
+> Cheers,
+> Bill Page.
+> 
+> > -----Original Message-----
+> > From: Camm Maguire [mailto:camm@enhanced.com]
+> > Sent: Tuesday, August 24, 2004 11:16 PM
+> > To: gcl-devel@gnu.org
+> > Subject: [Gcl-devel] ANSI test fixes
+> > 
+> > 
+> > Greetings!  Just committed some corrections and cleanups to the recent
+> > accelerated ratio algorithms, and fixes for the (f)floor, (f)ceiling,
+> > (f)round, (f)truncate, atan, asin, acos, and sqrt ansi tests.
+> > 
+> > Please test and enjoy.  Feedback of course always appreciated.
+> > 
+> > Still to do is to allow inlining of transcendentals from libm under
+> > appropriate circumstances.
+
+\start
+Date: Wed, 25 Aug 2004 15:04:05 -0400
+From: <bvds@bvds.geneva.edu>
+To: axiom-developer@nongnu.org
+Subject: [Axiom-developer] install with -L/usr/local/lib
+Cc: bvds@geneva.edu
+
+
+Dear axiom,
+
+I am trying to install axiom from CVS.  The build
+is choking on the link stage:
+
+gcc -o raw_pre_gcl /chez/carla/axiom/obj/linux/lib/cfuns-c.o /chez/carla/axiom/obj/linux/lib/sockio-c.o \
+        -L.  -Wl,-Map raw_pre_gcl_map   -lpre_gcl -lm  /usr/lib/libbfd.a /usr/lib/libiberty.a -lc -lgclp /chez/carla/axiom/obj/linux/lib/libspad.a
+gcc: /usr/lib/libbfd.a: No such file or directory
+gcc: /usr/lib/libiberty.a: No such file or directory
+
+For my compiler, these files are in /usr/local/lib.
+How do I specify this? (-L/usr/local/lib)
+The make process seems kind of strange... is
+there a reason for this?
+
+Brett van de Sande
+
+\start
+Date: 25 Aug 2004 18:57:50 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: <bvds@bvds.geneva.edu>
+Subject: Re: [Axiom-developer] install with -L/usr/local/lib
+Cc: bvds@geneva.edu
+
+Greetings!  Please try again with
+
+export C_INCLUDE_PATH=/usr/local/include
+export LIBRARY_PATH=/usr/local/lib
+
+Take care,
+
+<bvds@bvds.geneva.edu> writes:
+
+> Dear axiom,
+> 
+> I am trying to install axiom from CVS.  The build
+> is choking on the link stage:
+> 
+> gcc -o raw_pre_gcl /chez/carla/axiom/obj/linux/lib/cfuns-c.o /chez/carla/axiom/obj/linux/lib/sockio-c.o \
+>         -L.  -Wl,-Map raw_pre_gcl_map   -lpre_gcl -lm  /usr/lib/libbfd.a /usr/lib/libiberty.a -lc -lgclp /chez/carla/axiom/obj/linux/lib/libspad.a
+> gcc: /usr/lib/libbfd.a: No such file or directory
+> gcc: /usr/lib/libiberty.a: No such file or directory
+> 
+> For my compiler, these files are in /usr/local/lib.
+> How do I specify this? (-L/usr/local/lib)
+> The make process seems kind of strange... is
+> there a reason for this?
+> 
+> Brett van de Sande
+
+\start
+Date: Thu, 26 Aug 2004 20:03:17 -0400
+From: root <daly@idsi.net>
+To: bill.page1@sympatico.ca
+Subject: [Axiom-developer] Re: [Axiom-mail] FW: [Maxima]
+
+Bill,
+
+> Finally, about Reduce and licensing. Yes, it is "non-free".
+> Pity. But it is "almost free"... and I hope that we can
+> continue to put pressure on the current developers and
+> those marketing it, to fully release it as open source.
+> I have also repeatedly made the same argument to the Maple
+> developers. So far they do not "see the light" but they
+> have continued to move in the right direction.
+
+(Clearly this reply is biased by the fact that I maintain Axiom but...)
+
+Well, at least Reduce includes source code so all is not lost if the
+team leaves the field. I worry about MMA or Maple.  It is fine with me
+if they are commercial but I do worry about what would happen if they
+disappeared. Macsyma fell off the face of the earth (although Schelter
+rescued a DOE version). Axiom nearly did. Both were major commercial
+systems.  I wish Wolfram and Maple would put their code in a dead
+man's escrow so at least the work is not lost if the company folds.
+How many companies can you name that are 100 years old?
+
+This is a major concern regarding the 30 year horizon. The loss of
+another commercial system, given the high concentration of effort,
+would leave a smoking crater in the middle of computational
+mathematics.
+
+A lot of computational mathematics is invested in commercial efforts
+and because these exist and are currently successful there is no
+incentive to invest work in open systems. This seems unwise.
+Mathematics may be eternal but programs, like bridges, need to be
+maintained.
+
+\start
+Date: 30 Aug 2004 13:20:27 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: daly@idsi.net
+Subject: Re: [Axiom-developer] Re: [Axiom-mail] FW: [Maxima]
+Cc: bill.page1@sympatico.ca
+
+Greetings!
+
+root <daly@idsi.net> writes:
+
+> Bill,
+> 
+> > Finally, about Reduce and licensing. Yes, it is "non-free".
+> > Pity. But it is "almost free"... and I hope that we can
+> > continue to put pressure on the current developers and
+> > those marketing it, to fully release it as open source.
+> > I have also repeatedly made the same argument to the Maple
+> > developers. So far they do not "see the light" but they
+> > have continued to move in the right direction.
+> 
+> (Clearly this reply is biased by the fact that I maintain Axiom but...)
+> 
+> Well, at least Reduce includes source code so all is not lost if the
+> team leaves the field. I worry about MMA or Maple.  It is fine with me
+> if they are commercial but I do worry about what would happen if they
+> disappeared. Macsyma fell off the face of the earth (although Schelter
+> rescued a DOE version). Axiom nearly did. Both were major commercial
+> systems.  I wish Wolfram and Maple would put their code in a dead
+> man's escrow so at least the work is not lost if the company folds.
+> How many companies can you name that are 100 years old?
+> 
+> This is a major concern regarding the 30 year horizon. The loss of
+> another commercial system, given the high concentration of effort,
+> would leave a smoking crater in the middle of computational
+> mathematics.
+> 
+> A lot of computational mathematics is invested in commercial efforts
+> and because these exist and are currently successful there is no
+> incentive to invest work in open systems. This seems unwise.
+> Mathematics may be eternal but programs, like bridges, need to be
+> maintained.
+> 
+
+Hear, hear!
+
+To me one of the clearest strengths of the open model is the
+demonstrable ability to maintain very long time horizons.  I could
+never tabulate the productivity savings I've reaped from being able to
+use the same editor/compiler/debugger as I did in grad school -- what
+a return on one's initial investment in learning to use these tools!
+
+\start
+Date: 31 Aug 2004 11:39:42 -0400
+From: Camm Maguire <camm@enhanced.com>
+To: daly@idsi.net
+Subject: [Axiom-developer] Debian package
+
+Greetings!  Just preparing another upload to try to get the sqrt bug
+fix and the *default-system-p* issues resolved in the upcoming Debian
+release, and am checking -- SPADEDIT is still broken with no
+workaround, yes?  This is the one remaining Debian bug on the package.
+
+
+
+
diff --git a/changelog b/changelog
index 4e630a3..156c7f4 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20140423 tpd src/axiom-website/patches.html 20140423.03.tpd.patch
+20140423 tpd book/2004-08.txt regularize
 20140423 tpd src/axiom-website/patches.html 20140423.02.tpd.patch
 20140423 tpd book/2004-07.txt regularize
 20140423 tpd src/axiom-website/patches.html 20140423.01.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ada18a5..64d14a7 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4300,6 +4300,8 @@ book/2004-05.txt regularize
 book/2004-06.txt regularize
 <a href="patches/20140423.02.tpd.patch">20140423.02.tpd.patch</a>
 book/2004-07.txt regularize
+<a href="patches/20140423.03.tpd.patch">20140423.03.tpd.patch</a>
+book/2004-08.txt regularize
  </body>
 </html>
 
