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" +To: +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 +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: +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 +To: Marcus Better +Subject: Re: [Axiom-developer] Compiling spad files on Debian + +Hello Marcus, + +Marcus Better 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 +To: Marcus Better +Subject: Re: [Axiom-developer] Compiling spad files on Debian +Cc: axiom-developer@nongnu.org + +David MENTRE 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 +To: David MENTRE +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 +To: C Y +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 writes: + +> --- Stephen Wilson 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 +To: Marcus Better +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 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 +To: Bill Page +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 +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 +To: Bob McElrath +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 +... +)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 +To: maxima , acl2@lists.cc.utexas.edu, Robert Boyer , Matt Kaufmann , 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 +To: Heiko Scheit +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 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 +To: Camm Maguire +Subject: Re: [Axiom-developer] Re: Bug#263991: axiom: wrong calculation of sqrt(2.) +Cc: Heiko Scheit , 263991@bugs.debian.org, control@bugs.debian.org + +> Heiko Scheit 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 +To: wyscc@cunyvm.cuny.edu +Subject: Re: [Axiom-developer] Re: Bug#263991: axiom: wrong calculation of sqrt(2.) +Cc: Heiko Scheit , 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 writes: + +> > Heiko Scheit 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" +To: +Subject: [Axiom-developer] Axiom breaks lines +Cc: daly@idsi.net, 'Bob McElrath' + +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 +To: Axiom Developers +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 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 @@ + <> + + @ ++\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. ++<>= ++# 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 ++ ++<> ++<> ++<> ++<> ++<> ++<> ++<> ++<> ++ ++@ + \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} ++<>= ++# 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 + <> + <> +@@ -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 @@ + + <>= + 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. + + <>= +-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 @@ + <>= + ${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} + <>= + (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. + <>= +@@ -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} + <>= + (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 + #include +-#include + + #include + #include +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 +-#include + #include + + #include +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 + #include + #include +-#include + #include + #include + +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} + <>= + @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 + + <> + <> +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} + + <> + <> +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 + #include + #include +-#include + #include + #include + #include +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 +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 +To: Heiko Scheit , Kevin Ryde , 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 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 writes: +> +> > > Heiko Scheit 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 +To: axiom-developer@nongnu.org, axiom-math@nongnu.org +Subject: [Axiom-developer] musings on notation +Cc: Sean Cleary , Douglas Troeger , Gilbert Baumslag , Richard Fateman , Tim Daly , Paul Graham + +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 +To: daly@idsi.net, axiom-developer@nongnu.org, axiom-math@nongnu.org +Subject: Re: [Axiom-developer] musings on notation +Cc: Gilbert Baumslag , Douglas Troeger , Sean Cleary , Richard Fateman , Tim Daly , Paul Graham + +> 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 +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 +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 +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 +To: axiom-developer@nongnu.org, axiom-math@nongnu.org +Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation +Cc: W Naylor + +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 +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 +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" +To: axiom-developer@nongnu.org +Subject: RE: [Axiom-math] Re: [Axiom-developer] Re: musings on notation +Cc: W Naylor + +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 +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 +To: "Bill Page (E-mail)" +Subject: Re: [Axiom-math] Re: [Axiom-developer] Re: musings on notation +Cc: W Naylor + +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 +To: Mike Dewar +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 +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 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?= +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 14:20:09 +0200 +From: "Weiss, Juergen" +To: =?iso-8859-1?Q?Vanuxem_Gr=E9gory?= +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 +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 +To: Mark Murray +Subject: Re: [Axiom-developer] Axiom on FreeBSD - current patch set +Cc: Axiom Developers + +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 @@ + + <>= + 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} + + <> + <> +============================================================================= +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 +-<> +-<> +-<> +-<> +-<> +-<> +-<> ++ 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 +-<> +-<> +-<> +-<> +-<> +-<> +-<> ++ 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. + + <>= +-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 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 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 @@ +> <> +> +> @ +> +\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. +> +<>= +> +# 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 +> + +> +<> +> +<> +> +<> +> +<> +> +<> +> +<> +> +<> +> +<> +> + +> +@ +> \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} +> +<>= +> +# 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 +> <> +> <> +> @@ -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 @@ +> +> <>= +> 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. +> +> <>= +> -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 @@ +> <>= +> ${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} +> <>= +> (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. +> <>= +> @@ -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} +> <>= +> (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 +> #include +> -#include +> +> #include +> #include +> 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 +> -#include +> #include +> +> #include +> 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 +> #include +> #include +> -#include +> #include +> #include +> +> 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} +> <>= +> @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 +> +> <> +> <> +> 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} +> +> <> +> <> +> 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 +> #include +> #include +> -#include +> #include +> #include +> #include +> 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" +To: +Subject: [Axiom-developer] Re: [Axiom-math] Re: musings on notation + +----- Original Message ----- +From: "root" +To: +Cc: ; "C Y" ; + +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 +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 +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 +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 +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 +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 +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 + #include + #include +-#include + #include + #include + #include + + + +\start +Date: Thu, 12 Aug 2004 21:22:42 -0400 +From: root +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} + + <> + <> + + +\start +Date: Thu, 12 Aug 2004 21:38:19 -0400 +From: root +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 +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 + + <> + <> + +\start +Date: Thu, 12 Aug 2004 21:43:20 -0400 +From: root +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 +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 +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 +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 +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} + <>= + @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 +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 +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 +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: + +<> + +or chunks that access local pages + +<> + +or with individual subchunks: + +<> + +or chunks that run programs + +<> + +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 +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 @@ + <> + + @ + +>>> 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. ++<>= ++# 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 ++ ++<> ++<> ++<> ++<> ++<> ++<> ++<> ++<> ++ ++@ + \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 +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 +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 @@ +> <> +> +> @ + +\start +Date: Fri, 13 Aug 2004 12:02:16 +0100 (BST) +From: W Naylor +To: root +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 +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 +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 +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" +To: "'Martin Rubey'" +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 +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 +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 +To: gcl-devel@gnu.org, axiom-developer@nongnu.org, acl2@lists.cc.utexas.edu, maxima , 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 +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 +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 +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] [sam@integretechpub.com: techexplorer Release 3.5] +Cc: Sam Dooley + +*, + +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 +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 +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 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 +> 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 +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?= +To: Axiom Developer +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 +1>exit compiledLookupCheck : (# . +#) + +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 +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 +1>exit compiledLookupCheck : (# . +#) + +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?= +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 +1>exit compiledLookupCheck : (# . +#) + +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 (|Integer|)) |x| ((0 . 0) 0 . 1))\(|UnivariatePuiseuxSeries| +> (|Expression| (|Float|)) |x| ((0 . 0) 0 . 1)) +> +> ... +> +> And here: +> +> 1 (|Float|)) +> 1 +> 1>exit compiledLookupCheck : (# . +> #) +> +> 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 +To: Vanuxem "Grégory" , 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 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 0)\(|Expression| +> (|Float|)) +> 1 $)\# +> 1>exit compiledLookupCheck : (# |EXPR;=;2$B;21|> . +> #) +> +> 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 (|UnivariatePuiseuxSeries| (|Expression| +> > (|Integer|)) |x| ((0 . 0) 0 . +> 1))\(|UnivariatePuiseuxSeries| +> > (|Expression| (|Float|)) |x| ((0 . 0) 0 . 1)) +> > +> > ... +> > +> > And here: +> > +> > 1 . 0)\(|Expression| +> > (|Float|)) +> > 1 $)\# +> > 1>exit compiledLookupCheck : (# |EXPR;=;2$B;21|> . +> > #) +> > +> > 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 +To: Camm Maguire +Subject: Re: [Axiom-developer] Ugly bug -- not sure how to handle + +Camm Maguire 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 +To: David MENTRE +Subject: Re: [Axiom-developer] Ugly bug -- not sure how to handle + +Greetings! + +David MENTRE writes: + +> Camm Maguire 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 +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 +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 +To: Raymond Toy , "Mike Thomas" , 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_infoe_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" +To: 'Camm Maguire' +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 +To: "Page, Bill" +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" 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: +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 +To: +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, + + 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 +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 +To: daly@idsi.net +Subject: Re: [Axiom-developer] Re: [Axiom-mail] FW: [Maxima] +Cc: bill.page1@sympatico.ca + +Greetings! + +root 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 +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 20140423.02.tpd.patch book/2004-07.txt regularize +20140423.03.tpd.patch +book/2004-08.txt regularize