NameDateSize

..16-Mar-201612 KiB

.gitignore10-Sep-2015298

admin/09-Dec-20154 KiB

archive/29-Dec-20124 KiB

AUTHORS29-Dec-20122.6 KiB

bootstrap29-Dec-201264

ChangeLog24-Jun-2015294 KiB

ChangeLog-5.10.029-Dec-20124.7 KiB

ChangeLog-5.11.029-Dec-20122.9 KiB

ChangeLog-5.12.029-Dec-20124.4 KiB

ChangeLog-5.13.029-Dec-20122.4 KiB

ChangeLog-5.14.029-Dec-20122.7 KiB

ChangeLog-5.15.029-Dec-20122.3 KiB

ChangeLog-5.1629-Dec-20122.3 KiB

ChangeLog-5.1729-Dec-20123 KiB

ChangeLog-5.17-special-functions29-Dec-20126.9 KiB

ChangeLog-5.1829-Dec-20124.4 KiB

ChangeLog-5.1929-Dec-20124 KiB

ChangeLog-5.2029-Dec-20124.4 KiB

ChangeLog-5.2129-Dec-20124.2 KiB

ChangeLog-5.2229-Dec-20123.4 KiB

ChangeLog-5.2329-Dec-20123.4 KiB

ChangeLog-5.2429-Dec-20121.9 KiB

ChangeLog-5.2529-Dec-20122.2 KiB

ChangeLog-5.2629-Dec-20121.5 KiB

ChangeLog-5.2729-Dec-20121.8 KiB

ChangeLog-5.2829-Dec-20121.6 KiB

ChangeLog-5.2901-Sep-20132.1 KiB

ChangeLog-5.3001-Sep-20131.7 KiB

ChangeLog-5.3107-Sep-20131.7 KiB

ChangeLog-5.3210-Jan-20142.5 KiB

ChangeLog-5.3303-Apr-20142.5 KiB

ChangeLog-5.3427-Aug-20142.7 KiB

ChangeLog-5.3516-Dec-20141.2 KiB

ChangeLog-5.36.md12-May-20153.2 KiB

ChangeLog-5.37.md02-Sep-20152.5 KiB

ChangeLog-5.9.229-Dec-20123.7 KiB

ChangeLog-5.9.329-Dec-20126 KiB

ChangeLog-current.md20-Nov-20151 KiB

common-html.mk29-Dec-20121.7 KiB

common.mk29-Dec-20121.8 KiB

configure.ac14-Dec-201538.6 KiB

configure.lisp10-Feb-20155.6 KiB

COPYING29-Dec-201218.6 KiB

crosscompile-windows/15-Dec-20154 KiB

demo/17-Apr-20154 KiB

doc/29-Dec-20124 KiB

INSTALL18-May-201510.9 KiB

INSTALL.lisp10-Feb-20153.1 KiB

INSTALL.win3209-Dec-201510.7 KiB

INSTALL.win32nogcl07-Aug-20155.5 KiB

interfaces/29-Dec-20124 KiB

LICENSES/29-Dec-20124 KiB

lisp-utils/21-Nov-20144 KiB

locale/16-Dec-20144 KiB

macosx/29-Dec-20124 KiB

Makefile.am24-Aug-20155.5 KiB

maxima-local.in14-Dec-2015790

maxima.iss.in14-Dec-201521.6 KiB

maxima.spec.in17-Nov-20159.5 KiB

NEWS10-Aug-20156.1 KiB

plotting/02-Feb-20154 KiB

README29-Dec-2012870

README.developers-howto29-Dec-20125.8 KiB

README.external12-May-2015849

README.i18n29-Dec-2012907

README.lisps10-Sep-20154.8 KiB

README.rpms03-Dec-20141.7 KiB

share/11-Dec-20154 KiB

src/14-Dec-201512 KiB

tests/11-Dec-20154 KiB

xmaxima-local.in29-Dec-2012306

README

1Maxima is a symbolic computation program.  It is full featured,
2doing symbolic manipulation of polynomials, matrices, rational
3functions, integration, Todd-coxeter, graphing, bigfloats.  It has a
4symbolic debugger source level debugger for maxima code.  Maxima is
5based on the original Macsyma developed at MIT in the 1970's.  It is
6quite reliable, and has good garbage collection, and no memory leaks.
7It comes with hundreds of self tests.
8
9Maxima is distributed under the GNU General Public License, with some
10export restrictions from the U.S. Department of Energy. See the file
11COPYING.
12
13Installation information is available in the file INSTALL. Summary
14information about this release can be found in the file NEWS. Detailed
15change information is available in the ChangeLog.
16
17For more information on Maxima, see the Maxima web site,
18<http://maxima.sourceforge.net>.
19

README.developers-howto

1  Maxima project Git / build system HOWTO
2
3
4  1  General
5
6      Makefile.am is the file to modify, NOT Makefile
7      (Makefile is generated automatically from Makefile.am)
8
9      "make install" catches Makefile problems
10      that are not detected by "make" alone
11
12      Adding / removing files often leads to Makefile problems
13
14      To update your repository, execute
15      git pull  # assuming origin/master points to the SF Maxima repo
16
17      Workflow with Git:
18      git pull                      # update your repo
19      git checkout master           # work off master
20      git checkout -b scratch-pad   # create a working branch
21      <do development, tests, commits, then, once satisfied...>
22      git checkout master           # put yourself on master branch
23      git pull                      # update your repo, again
24      git merge scratch-pad         # merge development work into master
25      git push origin master        # push to SF Maxima repo
26
27      BE SURE NOT TO PUSH YOUR SCRATCH-PAD!
28
29  2  Renaming something in Git
30
31      --  Create a scratch/development branch as in 1.
32  
33      --  git mv X Y
34          This moves X to Y and preserves the history.
35	  Like any other change, this needs to be committed
36	  as a separate step.
37
38  3  Adding / removing a file in maxima/src
39
40      --  Create a scratch/development branch as in 1.
41  
42      --  Add new file X, then execute
43          git add X; git commit -m 'Message' -- X
44
45      --  Remove old file X
46          git rm X
47          Then execute "git commit" as above
48
49      --  Add / remove file name from maxima/src/Makefile.am
50
51      --  Add / remove file name from maxima/src/*-depends.mk
52
53          NOTE: There are several *-depends.mk files. These are
54          theoretically updated automatically but to the best
55          of my knowledge it is necessary to fix them by hand.
56
57      --  Add / remove file name in maxima/src/maxima.system
58
59      --  Verify that
60          "sh bootstrap; ./configure --enable-foolisp; make; make install"
61          and "run_testsuite();" all succeed
62
63      --  Merge your work onto master and push the changes as in 1.
64
65
66  4  Adding / removing a file in maxima/share
67
68      --  Copy new file / remove old file
69          as you did in 3.
70
71      --  Add / remove file name in maxima/share/Makefile.am
72
73      --  Verify that
74          "sh bootstrap; ./configure --enable-foolisp; make; make install"
75          and "run_testsuite();" all succeed
76
77      --  Merge your work onto master and push the changes as in 1.
78
79
80  5.1  Creating a new share package
81
82       E.g., new package name = my_package
83
84      -- Naming conventions:
85
86         write_long_names_like_this, andNotLikeThisPlease,
87         norlikethiseitherthanks
88
89         spell_out_names, dnt_try_sv_typng_w_abbrvs_tnx
90
91      -- Create a new directory my_package
92
93      -- Put Lisp and/or Maxima files in the directory
94
95         At least one file must be named my_package.lisp or my_package.mac
96         Otherwise load(my_package) fails
97
98      -- Create texinfo documentation file my_package.texi
99         (PLEASE CREATE DOCUMENTATION, THANK YOU)
100
101         my_package.texi goes in maxima/doc/info
102         (same as other texinfo files)
103
104         Use maxima/share/template.texi as a template for my_package.texi
105
106      -- Create test file rtest_my_package.mac
107         (PLEASE CREATE A TEST FILE, THANK YOU)
108
109         Test file contains pairs of expressions:
110         input expression, then expected result
111
112         batch("my_package/rtest_my_package.mac", test);
113         executes the test
114
115
116  5.2  Adding a directory in maxima/share
117  
118      --  Create a scratch/development branch as in 1.
119
120      --  Make the new directory and put the new files in it
121
122      --  Add the all the files in your new directory and commit this change:
123          git add .
124	  git commit -m 'Message' -a
125
126      --  Put the my_package files on the file list of maxima/share/Makefile.am
127
128      --  Add my_package to SHARE-SUBDIRS-LIST in maxima/src/init-cl.lisp
129
130      --  Move my_package.texi to maxima/doc/info
131
132          Put my_package.texi on the list of files in
133          maxima/doc/info/Makefile.am
134
135          Put my_package on the list of topics in maxima/doc/info/maxima.texi
136          See instructions in comments at top of maxima/share/template.texi
137
138      --  Verify that
139          "sh bootstrap; ./configure --enable-foolisp; make; make install"
140          and "run_testsuite();" all succeed
141
142      --  Commit and push your work as in 1.
143
144
145  6  Adding / removing a file in maxima/tests
146
147      --  Create a scratch/development branch as in 1.
148
149      --  Copy new file / remove old file
150          and execute "git add" / "git rm"
151
152      --  Add / remove file name in maxima/tests/Makefile.am
153
154      --  Add / remove file name in maxima/tests/testsuite.lisp
155
156      --  Verify that
157          "sh bootstrap; ./configure --enable-foolisp; make; make install"
158          and "run_testsuite();" all succeed
159
160      --  Commit and push your work as in 1.
161
162
163  7  Updating the website
164
165    See the Git module "site-xml", particularly "README" there.
166
167
168  8.1  Backups of Git
169
170    All you need is the rsync tool and some disk space.
171
172    Issue the following command:
173
174    rsync -av 'rsync://maxima.git.sourceforge.net/gitroot/maxima/*' .
175
176
177  8.2  Backups of the ML subscribers list
178
179    You need to be a list admin to do that. Other then that you only
180    need a mail client to send mailman commands to
181    maxima-request@math.utexas.edu
182
183    The command to get the subscribers list is "who" followed by the
184    list admin password. Sending an empty mail with "who XXX" in the
185    subject line should be enough.
186
187    I have the following cron.weekly script to do this automatically:
188
189    | #! /bin/sh
190    | 
191    | su myuser -c "echo end | mail -s \"who password\" maxima-request@math.utexas.edu"
192
193
194  8.3  Other Backups
195
196    Backups of the following stuff would be nice too:
197
198    - wiki
199
200    - bug database
201

README.external

1The following external tools are needed to build and/or use Maxima:
2
31) A supported Lisp implementation. See README.lisps.
4
52) To build Maxima in the standard manner, Bourne shell and make are
6   required. See INSTALL.
7
83) Maxima can also be built using nothing except Lisp. See
9   INSTALL.lisp.
10
114) Plotting uses gnuplot, <http://gnuplot.sourceforge.net>, by
12   default. Plotting can also be done with Maxima's xmaxima
13   application.
14
155) xmaxima requires Tcl/Tk, preferably version 8.5 or later.
16   xmaxima is both one possible interface to  Maxima and a plotting
17   program. As a graphical interface it is not required but as a
18   plotting program it is required by some commands (plotdf, ploteq
19   and scene).
20
216) The scene command requires Vtk and its bindings for Tcl/Tk.
22 
237) Building Maxima from GIT additionally requires the GNU autotools.
24

README.i18n

1Maxima 5.9.3 comes with documentation translated
2into Portuguese and Spanish languages. 
3
4Configure options (see INSTALL for more details) 
5
6    --enable-lang-es
7    --enable-lang-pt
8    --enable-lang-es-utf8
9    --enable-lang-pt-utf8
10    
11trigger building of corresponding language
12pack.  Each language pack contains documentation
13in info (for Maxima on-line help system) and 
14HTML formats.
15
16First two configure options   
17
18    --enable-lang-es
19    --enable-lang-pt
20
21build language packs for locales in ISO-8859-1
22(aka Latin1) encoding such as es_XX and pt_XX,
23where XX is any valid country code.
24This language packs work on all Lisp implementations.
25
26Second pair of options
27
28    --enable-lang-es-utf8
29    --enable-lang-pt-utf8
30
31build language pack for Unicode locales
32(es_XX.UTF-8, pt_XX.UTF-8).
33They are compatible only with Unicode-aware 
34Lisp implementations such as ccl, clisp, cmucl, ecl,
35and sbcl.
36
37

README.lisps

1Notes on Lisp implementations for Maxima:
2
3Clisp, CMUCL, Scieneer Common Lisp (SCL), GCL (ANSI-enabled only)
4and SBCL can compile and execute Maxima.
5Allegro Common Lisp and OpenMCL might also work, but have not
6been fully tested.
7
8Ports to other ANSI Common Lisps should be straightforward
9and are welcome; please post a message on the Maxima mailing list
10if you are interested in working on a port.
11
12When Maxima is recompiled, the Lisp implementation is selected by
13an argument of the form `--enable-foolisp' for the configure script.
14`./configure --help' shows a list of the Lisp types recognized by
15configure (among other options). Always specify the Lisp type;
16configure tries to autodetect the Lisp type if it is not specified,
17but it has been reported that autodetection can fail.
18
19--------------------------------------------------------------------
20Comparison of execution times for the run_testsuite function
21All times are in elapsed seconds
22
23Maxima      System                  GCL     SBCL    CMUCL   Clisp
24
25pre-5.9.3   P2 450 MHz, Linux        75      91              301
26
27
28--------------------------------------------------------------------
29Clisp <http://clisp.org>
30
31	Clisp includes GNU readline support, so Maxima has
32advanced command-line editing facilities when built with it.
33
34Clisp is compiled to bytecodes, so Maxima running on Clisp is
35substantially slower than on Lisps compiled to machine instructions.
36Clisp computes floating-point operations in software,
37so floating-point operations in Clisp are much slower than in Lisps
38which make use of hardware instructions for floating-point operations.
39On the other hand, Clisp makes use of the GMP library for arbitrary-
40precision integer computations.
41
42There are Clisp implementations for many platforms
43including MS Windows and Unix-like systems.
44
45--------------------------------------------------------------------
46CMUCL <http://www.cons.org/cmucl/>
47
48	CMUCL is a fast option for Maxima on platforms where it is
49available. The rmaxima front-end provides advanced line-editing
50facilities for Maxima when compiled with CMUCL. rlwrap is available
51from <http://utopia.knoware.nl/~hlub/uck/rlwrap/> .
52
53CMUCL versions: 18e and 19a and later are known to work.
54
55There are CMUCL implementations only for Unix-like systems
56(not MS Windows).
57
58--------------------------------------------------------------------
59Scieneer Common Lisp (SCL) <http://www.scieneer.com/scl/>
60
61	Scieneer Common Lisp (SCL) is a fast option for Maxima for a
62range of Linux and Unix platforms.  The SCL 1.2.8 release and later
63are supported.  SCL offers a lower case, case sensitive, version which
64avoids the Maxima case inversion issues with symbol names.  Tested
65front end options are: maxima emacs mode available in the
66interfaces/emacs/ directory, the emacs imaxima mode available from
67https://sites.google.com/site/imaximaimath/, and TeXmacs available from
68http://www.texmacs.org/
69
70--------------------------------------------------------------------
71GCL <http://savannah.gnu.org/projects/gcl/>
72
73	GCL versions starting with 2.4.3 can be built with readline
74support, so Maxima has advanced command-line editing facilities
75when built with it. GCL produces a fast Maxima exectuable.
76
77Only the ANSI-enabled version of GCL works with Maxima, i.e.,
78when GCL is built, it must be configured with the --enable-ansi flag,
79i.e., execute ``./configure --enable-ansi'' in the build directory
80before executing make.
81
82Whether GCL is ANSI-enabled or not can be determined by 
83inspecting the banner which is printed when GCL is executed;
84if ANSI-enabled, the banner should say "ANSI".
85Also, the special variable *FEATURES* should include the keyword :ANSI-CL.
86
87There are GCL implementations for many platforms
88including MS Windows and Unix-like systems.
89
90--------------------------------------------------------------------
91SBCL <http://www.sbcl.org>
92
93    SBCL is a fork of CMUCL which differs in some minor details,
94but most notably, it is simpler to rebuild SBCL than CMUCL.
95
96rmaxima is recommended for use with SBCL. See CMUCL above.
97
98--------------------------------------------------------------------
99Allegro Common Lisp <http://franz.com/products/allegro-common-lisp/>
100
101	Maxima should work with Allegro Common Lisp, but
102only limited testing has been done with these Lisp
103implementations. User feedback would be welcome.
104
105--------------------------------------------------------------------
106CCL <http://ccl.clozure.com/>
107
108    CCL, formerly known as OpenMCL, is known to work with maxima on
109all platforms where ccl runs including Linux, Mac OSX, and Windows.
110There are appear to be some bugs in the 32-bit version of ccl,  but
111the 64-bit version passes all tests.
112
113--------------------------------------------------------------------
114ECL <https://common-lisp.net/project/ecl/>
115    
116    ECL is known to work with maxima and passes the testsuite.  ECL
117runs on many platforms and OSes.
118
119
120

README.rpms

1Installing rpms
2===============
3
4There are three Maxima binary rpms:
5maxima, maxima-exec-cmucl, and maxima-xmaxima.
6
7The maxima and maxima-exec-cmucl rpms must be installed together.
8
9maxima-exec rpms for other Lisp versions can also be installed,
10although you'll probably have to build them yourself.
11
12The maxima-xmaxima rpm is optional. Xmaxima is a Maxima GUI.
13
14
15Building rpms
16=============
17
18You can build rpm files from an unpacked tarball or cvs sandbox.
19
20(0) Go to the Maxima directory.
21
22    $ cd sandbox/maxima  # or whatever is your top-level maxima directory
23
24(1) Set the version number.
25    
26    Open ./configure.ac and change the AC_INIT line.
27    (This is the only way I know to change the version number.)
28
29    Optionally -- open ./maxima.spec.in and increment the `Release' number.
30    (This number is appended to the version number.)
31
32(2) Select Lisp version.
33
34    Open ./maxima.spec.in.
35
36    Change all `%define enable_<whatever>' to `0'
37    except for the selected Lisp; make that `1'.
38
39    Change all `%define <whatever>_flags' to `--disable-<whatever>'
40    except for the selected Lisp; make that `--enable-<whatever>'.
41
42(3) Generate the rpm spec file.
43
44    $ make maxima.spec
45
46(4) Generate a source tarball.
47
48    $ make dist-gzip
49
50    May need to invoke superuser privileges here (if /usr/src/local not writeable).
51
52    $ mv maxima-<release number>.tar.gz /usr/src/local/SOURCES
53
54(5) Build rpms.
55
56    The maxima.spec file builds three binary rpms:
57    maxima, maxima-xmaxima, and maxima-exec-<whatever>.
58
59    May need to invoke superuser privileges here (if /usr/src/local not writeable).
60
61    $ rpmbuild -ba ./maxima.spec  # build source rpm and three binary rpms
62
63    $ rpmbuild -bb ./maxima.spec  # build three binary rpms
64