translator: fix the finding of free lisp vars in LET forms
[maxima.git] / src / maxima.system
blob0e7cbda57af46c4e210511dc6f69469574a78cc9
1 ;;; -*- Lisp -*-
3 (in-package :cl-user)
5 (pushnew :cl *features*)
7 ;; Don't try to optimize so much in ECL.
8 ;; Therefore functions can be redefined (essential for share libraries).
9 #+ecl (declaim (optimize (debug 2)))
11 #+gcl
12 (let ((version-num (+ (* 10000 system::*gcl-major-version*)
13                       (* 100 system::*gcl-minor-version*)
14                       system::*gcl-extra-version*)))
15   (when (> version-num 20603)
16     (pushnew :gcl-working-proclaims *features*)))
18 #+cmu
19 (setf ext:*gc-verbose* nil)
21 ;; In server.lisp, we load up sb-bsd-sockets for sbcl.  This also
22 ;; causes asdf to be loaded.  Not normally a problem, but
23 ;; asdf::*output-translations* is not NIL when maxima is restarted.
24 ;; If you give maxima.core (as a binary distribution) to someone else,
25 ;; the translations are wrong.  The solution is to clear the
26 ;; translations before saving the core.
28 ;; This should really be done for all lisps that might have asdf2
29 ;; loaded.  Currently, I (rtoy) thinks this only happens with sbcl.
31 ;; (This issue was brought to my attention by Zach Beane, on irc.
32 ;; Solution by Nikodemus Siivola.)
33 #+(and sbcl asdf2)
34 (pushnew 'asdf::clear-configuration *save-hooks*)
36 ;; If you want maxima to use long-floats for arithmetic, use this:
37 #+(and nil (or clisp scl))
38 (pushnew :flonum-long *features*)
40 ;; If you want maxima to use double-double-floats, use this:
41 #+(and nil cmu double-double)
42 (pushnew :flonum-double-double *features*)
44 (setf *load-verbose* nil)
46 (defvar *maxima-build-time* (multiple-value-list (get-decoded-time)))
48 (export '*maxima-build-time*)
50 #+ecl
51 (defun do-compile-ecl (file &rest args)
52   ;; Not sure about this.  Compile twice.  The first produces a .o
53   ;; file.  The second produces the .fas file to keep defsystem happy
54   ;; because defsystem needs to load the files while compiling so
55   ;; macros and such are defined.
56   (let* ((output (getf args :output-file))
57          (object-output (compile-file-pathname output :system-p t)))
58     (and (apply #'compile-file file :output-file object-output args)
59          (c:build-fasl output :lisp-files (list object-output)))))
61 #+ecl
62 (defun build-maxima-lib ()
63   (labels ((list-all-objects (module)
64              (if (eql (mk::component-type module) :file)
65                  (list (mk::component-full-pathname module :binary))
66                  (apply #'append (mapcar #'list-all-objects (mk::component-components module))))))
67     (let* ((files (list-all-objects (mk:find-system 'maxima))))
68       #+msvc
69       (progn
70         (c::build-static-library "binary-ecl/maxima-lib" :lisp-files (print files))
71         (let ((c::*ld-format* (concatenate 'string c::*ld-format* " /LIBPATH:binary-ecl")))
72           (c::build-fasl "binary-ecl/maxima" :lisp-files '(maxima-lib))))
73       #-msvc
74       (let ((obj (mapcar #'(lambda (p)
75                              ;; Convert dir/foo.fas to dir/foo.o
76                              (make-pathname :type "o" :defaults p))
77                          files)))
78         (c::build-program "binary-ecl/maxima" :lisp-files obj
79                           :ld-flags
80                           (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
81                                                               (find-package "MAXIMA")))))
82                             (if (and x (not (string= x ""))) (list x)))
83                           :epilogue-code '(progn (cl-user::run)))))))
85 (defun maxima-binary-pathname ()
86   #+clisp
87   "binary-clisp"
88   #+cmu
89   (make-pathname :name "binary-cmucl"
90                  :directory (pathname-directory *load-truename*))
91   #+scl
92   (make-pathname :name "binary-scl"
93                  :directory (pathname-directory *load-truename*))
94   #+sbcl
95   (make-pathname :name "binary-sbcl"
96                  :directory (pathname-directory *load-truename*))
97   #+gcl
98   "binary-gcl"
99   #+allegro
100   "binary-acl"
101   #+(and openmcl (not 64-bit-target))
102   "binary-openmcl"
103   #+(and openmcl 64-bit-target)
104   "binary-ccl64"
105   #+abcl
106   "binary-abcl"
107   #+lispworks
108   (make-pathname :name "binary-lispworks"
109                  :directory (pathname-directory *load-truename*))
110   #+ecl
111   "binary-ecl"
112   #-(or clisp cmu scl sbcl gcl allegro openmcl abcl lispworks ecl)
113   "binary-unknownlisp")
115 (mk:defsystem "maxima"
116   :source-extension "lisp"
117   :binary-pathname (maxima-binary-pathname)
118   #+ecl :compiler-options #+ecl (:system-p t)
119   #+ecl :compiler #+ecl do-compile-ecl
120   :components
121   (#+gcl
122    (:module proclaim :source-pathname ""
123             :load-only t
124             :components
125             ((:file "maxima-package")
126              (:file "numerical/f2cl-package")
127              (:file "numerical/slatec")
128              (:file "command-line")
129              (:file "nregex")
130              #+gcl-working-proclaims
131              (:private-file "tools/sys-proclaim")))
132    (:module package :source-pathname ""
133             ;; On ECL all runtime alterations to the system (i.e from repl)
134             ;; at runtime are not part of the final executable if they aren't.
135             ;; compiled.
136             #-ecl :load-only #-ecl t
137             :components
138             (#-gcl
139              (:file "maxima-package")
140              #+ecl (:file "ecl-port")
141              ;; If a file is declared as private-file it is loaded
142              ;; from the build tree (which makes an out-of-tree
143              ;; build possible), but not compiled (which means
144              ;; with ECL or ABCL it won't end up in the final image)
145              ;; => no out-of-tree build for ECL.
146              #-(or ecl abcl lispworks) (:private-file "autoconf-variables")
147              #+(or ecl abcl lispworks) (:file "autoconf-variables")
148              ))
149    (:module intl :source-pathname ""
150             :components
151             (
152              ;; Some versions of CMUCL already
153              ;; have a compatible version of
154              ;; INTL, so skip it if we have
155              ;; it.
156              #+#.(cl:if (cl:and (cl:member :cmu cl:*features*) (cl:find-package '#:intl))  '(or) '(and))
157              (:file "intl")))
158    (:module info :source-pathname ""
159             :components
160             ((:file "nregex")
161              (:file "cl-info")))
162    (:module sloop :source-pathname ""
163             :components
164             ((:file "sloop")))
165    (:module declarations :source-pathname ""
166             :components
167             ((:file "lmdcls")))
168    (:module destructuring-let :source-pathname ""
169             :components
170             ((:file "letmac")))
171    (:module compatibility-macros1 :source-pathname ""
172             :components
173             ((:file "generr")
174              (:file "clmacs")))
175    (:module defmfun :source-pathname ""
176             :components
177             ((:file "defmfun-check")))
178    (:module compatibility-macros :source-pathname ""
179             :depends-on ("defmfun")
180             :components
181             (#+gcl (:file "gcl-compat")
182                    (:file "commac")))
183    (:module prerequisites :source-pathname ""
184             :depends-on ("defmfun")
185             :components
186             ((:file "mormac")
187              (:file "compat")))
188    (:module maxima-language-compiler-macros :source-pathname ""
189             :depends-on ("defmfun")
190             :components
191             ((:file "transm")))
192    (:module command-line :source-pathname ""
193             :depends-on ("defmfun")
194             :depends-on ("getopt")
195             :components
196             ((:file "command-line")))
197    (:module getopt :source-pathname ""
198             :depends-on ("defmfun")
199             :components
200             ((:file "getopt")))
201    (:module fundamental-macros :source-pathname ""
202             :depends-on ("defmfun")
203             :components
204             ((:file "defcal")
205              (:file "maxmac")))
206    (:module utility-macros :source-pathname ""
207             :depends-on ("defmfun")
208             :components
209             ((:file "mopers")
210              (:file "mforma")))
211    (:module other-macros :source-pathname ""
212             :depends-on ("defmfun")
213             :components
214             ((:file "mrgmac")
215              (:file "rzmac")
216              (:file "strmac")
217              (:file "displm")
218              (:file "safe-recursion")))
219    (:module rat-macros :source-pathname ""
220             :depends-on ("defmfun")
221             :components
222             ((:file "ratmac")
223              (:file "mhayat")))
224    #+gcl (:file "optimize")             ; jfa check this
225    (:module utilities :source-pathname ""
226             :depends-on ("defmfun" "utility-macros")
227             :components
228             ((:file "opers")
229              (:file "utils")
230              (:file "sumcon")
231              (:file "sublis")
232              (:file "merror")
233              (:file "mformt")
234              (:file "mutils")
235              (:file "outmis")
236              (:file "ar")))
237    (:module commands :source-pathname ""
238             :depends-on ("defmfun" "compatibility-macros1")
239             :components
240             ((:file "comm")
241              (:file "comm2")))
242    (:module evaluator :source-pathname ""
243             :depends-on ("defmfun")
244             :components
245             ((:file "mlisp")
246              (:file "mmacro")
247              (:file "buildq")))
248    ;; The free versions of Allegro and Lispworks have a heap limit.
249    ;; Let's not compile these routines so that we can at least
250    ;; get the rest of maxima built.
251    (:module numerical
252             :depends-on ("defmfun")
253             :components
254             ((:module packages :source-pathname ""
255                       :components
256                       ((:file "f2cl-package")
257                        (:file "slatec")))
258              (:module f2cl-lib :source-pathname ""
259                       :components
260                       ((:file "f2cl-lib")))
261              (:module slatec :source-pathname "slatec"
262                       :depends-on ("f2cl-lib" "packages")
263                       #+(or allegro-cl-trial lispworks-personal-edition) :load-only
264                       #+(or allegro-cl-trial lispworks-personal-edition)  t
265                       :components
266                       ((:file "fdump")
267                        (:file "j4save")
268                        (:file "initds"
269                               :depends-on ("xermsg"))
270                        (:file "xgetua")
271                        (:file "xermsg"
272                               :depends-on ("fdump" "j4save" "xercnt" "xerhlt" "xerprn" "xersve"))
273                        (:file "xercnt")
274                        (:file "xerhlt")
275                        (:file "xerprn"
276                               :depends-on ("xgetua"))
277                        (:file "xersve"
278                               :depends-on ("j4save"))
279                        (:file "dcsevl"
280                               :depends-on ("xermsg"))
282                        ;; Gamma function
283                        (:file "d9lgmc"
284                               :depends-on ("dcsevl" "initds" "xermsg"))
285                        (:file "dgamlm"
286                               :depends-on ("xermsg"))
287                        (:file "dgamma"
288                               :depends-on ("d9lgmc" "dcsevl" "dgamlm" "initds" "xermsg"))
289                        (:file "dgamln")
290                        (:file "dlngam"
291                               :depends-on ("d9lgmc" "dgamma" "xermsg"))
293                        ;; Bessel J functions
294                        (:file "d9b0mp"
295                               :depends-on ("dcsevl" "initds" "xermsg"))
296                        (:file "d9b1mp"
297                               :depends-on ("dcsevl" "initds" "xermsg"))
298                        (:file "dbesj0"
299                               :depends-on ("d9b0mp" "dcsevl" "initds"))
300                        (:file "dbesj1"
301                               :depends-on ("d9b1mp" "dcsevl" "initds" "xermsg"))
302                        (:file "djairy")
303                        (:file "dasyjy")
304                        (:file "dbesj"
305                               :depends-on ("dasyjy" "djairy" "dlngam" "xermsg"))
306                        ;; Bessel I functions
307                        (:file "dbsi0e"
308                               :depends-on ("dcsevl" "initds"))
309                        (:file "dbsi1e"
310                               :depends-on ("dcsevl" "initds" "xermsg"))
311                        (:file "dbesi0"
312                               :depends-on ("dbsi0e" "dcsevl" "initds" "xermsg"))
313                        (:file "dbesi1"
314                               :depends-on ("dbsi1e" "dcsevl" "initds" "xermsg"))
315                        (:file "dasyik")
316                        (:file "dbesi"
317                               :depends-on ("dasyik" "dlngam" "xermsg"))
318                        (:file "zbesi"
319                               :depends-on ("zabs" "zbinu"))
321                        ;; Bessel J function for complex
322                        ;; arg and real order.
324                        (:file "zabs")
325                        (:file "zacai"
326                               :depends-on ("zabs" "zasyi" "zbknu" "zmlri" "zs1s2" "zseri"))
327                        (:file "zairy"
328                               :depends-on ("zabs" "zacai" "zbknu" "zexp" "zsqrt"))
329                        (:file "zasyi"
330                               :depends-on ("zabs" "zdiv" "zexp" "zmlt" "zsqrt"))
331                        (:file "zbesj"
332                               :depends-on ("zabs" "zbinu"))
333                        (:file "zbinu"
334                               :depends-on ("zabs" "zasyi" "zbuni" "zmlri" "zseri" "zuoik" "zwrsk"))
335                        (:file "zbknu"
336                               :depends-on ("dgamln" "zabs" "zdiv" "zexp" "zkscl"
337                                                     "zlog" "zmlt" "zshch" "zsqrt" "zuchk"))
338                        (:file "zbuni"
339                               :depends-on ("zabs" "zuni1" "zuni2"))
340                        (:file "zdiv")
341                        (:file "zexp")
342                        (:file "zkscl"
343                               :depends-on ("zabs" "zlog" "zuchk"))
344                        (:file "zlog"
345                               :depends-on ("zabs"))
346                        (:file "zmlri"
347                               :depends-on ("dgamln" "zabs" "zexp" "zlog" "zmlt"))
348                        (:file "zmlt")
349                        (:file "zrati"
350                               :depends-on ("zabs" "zdiv"))
351                        (:file "zs1s2"
352                               :depends-on ("zabs" "zexp" "zlog"))
353                        (:file "zseri"
354                               :depends-on ("dgamln" "zabs" "zdiv" "zlog" "zmlt" "zuchk"))
355                        (:file "zshch")
356                        (:file "zsqrt" :depends-on ("zabs"))
357                        (:file "zuchk")
358                        (:file "zunhj"
359                               :depends-on ("zabs" "zdiv" "zlog" "zsqrt"))
360                        (:file "zuni1"
361                               :depends-on ("zabs" "zuchk" "zunik" "zuoik"))
362                        (:file "zuni2"
363                               :depends-on ("zabs" "zairy" "zuchk" "zunhj" "zuoik"))
364                        (:file "zunik"
365                               :depends-on ("zdiv" "zlog" "zsqrt"))
366                        (:file "zuoik"
367                               :depends-on ("zabs" "zlog" "zuchk" "zunhj" "zunik"))
368                        (:file "zwrsk"
369                               :depends-on ("zabs" "zbknu" "zrati"))
371                        ;; Bessel Y functions
372                        (:file "dbesy0"
373                               :depends-on ("d9b0mp" "dbesj0" "dcsevl" "initds" "xermsg"))
374                        (:file "dbesy1"
375                               :depends-on ("d9b1mp" "dbesj1" "dcsevl" "initds" "xermsg"))
376                        (:file "dbesy"
377                               :depends-on ("dasyjy" "dbesy0" "dbesy1" "dbsynu" "dyairy" "xermsg"))
378                        (:file "dbsynu"
379                               :depends-on ("dgamma" "xermsg"))
380                        (:file "dyairy")
382                        (:file "zbesy"
383                               :depends-on ("zbesh"))
384                        (:file "zbesh"
385                               :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
386                        (:file "zacon"
387                               :depends-on ("zabs" "zbinu" "zbknu" "zmlt" "zs1s2"))
388                        (:file "zbunk"
389                               :depends-on ("zunk1" "zunk2"))
390                        (:file "zunk1"
391                               :depends-on ("zabs" "zs1s2" "zuchk" "zunik"))
392                        (:file "zunk2"
393                               :depends-on ("zabs" "zairy" "zs1s2" "zuchk" "zunhj"))
395                        ;; Bessel K functions
396                        (:file "dbesk0"
397                               :depends-on ("dbesi0" "dbsk0e" "dcsevl" "initds" "xermsg"))
398                        (:file "dbsk0e"
399                               :depends-on ("dbesi0" "dcsevl" "initds" "xermsg"))
400                        (:file "dbesk1"
401                               :depends-on ("dbesi1" "dbsk1e" "dcsevl" "initds" "xermsg"))
402                        (:file "dbsk1e"
403                               :depends-on ("dbesi1" "dcsevl" "initds" "xermsg"))
404                        (:file "dbesk"
405                               :depends-on ("dasyik" "dbesk0" "dbesk1" "dbsk0e" "dbsk1e" "dbsknu" "xermsg"))
406                        (:file "dbsknu"
407                               :depends-on ("dgamma" "xermsg"))
408                        (:file "zbesk"
409                               :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
411                        ;; Airy functions
412                        (:file "d9aimp"
413                               :depends-on ("dcsevl" "initds" "xermsg"))
414                        (:file "daie"
415                               :depends-on ("d9aimp" "dcsevl" "initds"))
416                        (:file "dai"
417                               :depends-on ("d9aimp" "daie" "dcsevl" "initds" "xermsg"))
418                        (:file "dbie"
419                               :depends-on ("d9aimp" "dcsevl" "initds"))
420                        (:file "dbi"
421                               :depends-on ("d9aimp" "dbie" "dcsevl" "initds" "xermsg"))
422                        (:file "zbiry"
423                               :depends-on ("zabs" "zbinu" "zdiv" "zsqrt"))
424                        ;; Error functions
425                        (:file "derf"
426                               :depends-on ("dcsevl" "derfc" "initds"))
427                        (:file "derfc"
428                               :depends-on ("dcsevl" "initds" "xermsg"))
429                        ;; Exponential integrals
430                        (:file "de1"
431                               :depends-on ("dcsevl" "initds" "xermsg"))
432                        (:file "dei"
433                               :depends-on ("de1"))
434                        (:file "dspenc"
435                               :depends-on ("d9upak"))
436                        (:file "d9upak")))
437              (:module quadpack
438                       :source-pathname "slatec"
439                       #+(or allegro-cl-trial lispworks-personal-edition) :load-only
440                       #+(or allegro-cl-trial lispworks-personal-edition) t
441                       :components
442                       (
443                        ;; Support
444                        (:file "dqwgtf")
445                        (:file "dqcheb")
446                        (:file "dqk15w")
447                        (:file "dqwgts")
448                        (:file "dqwgtc")
449                        (:file "dgtsl")
450                        ;; Core integration routines
451                        (:file "dqk15")
452                        (:file "dqk31")
453                        (:file "dqk41")
454                        (:file "dqk51")
455                        (:file "dqk61")
456                        (:file "dqk21")
457                        (:file "dqk15i")
458                        (:file "dqelg")
459                        (:file "dqpsrt")
460                        (:file "dqc25s"
461                               :depends-on ("dqcheb" "dqk15w"))
462                        (:file "dqmomo")
463                        (:file "dqc25c"
464                               :depends-on ("dqcheb"
465                                            "dqk15w"))
466                        (:file "dqc25f"
467                               :depends-on ("dgtsl"
468                                            "dqcheb"
469                                            "dqk15w"
470                                            "dqwgtf"))
471                        ;; Basic integrators
472                        (:file "dqage"
473                               :depends-on ("dqk15"
474                                            "dqk31"
475                                            "dqk41"
476                                            "dqk51"
477                                            "dqk61"
478                                            "dqk21"
479                                            "dqpsrt"))
480                        (:file "dqagie"
481                               :depends-on ("dqelg"
482                                            "dqk15i"
483                                            "dqpsrt"))
484                        (:file "dqagp"
485                               :depends-on ("dqagpe"))
486                        (:file "dqagpe"
487                               :depends-on ("dqelg"
488                                            "dqpsrt"
489                                            "dqk21"
490                                            ))
491                        (:file "dqagse"
492                               :depends-on ("dqk21"
493                                            "dqelg"
494                                            "dqpsrt"))
495                        (:file "dqawfe"
496                               :depends-on ("dqagie"
497                                            "dqawoe"
498                                            "dqelg"))
499                        (:file "dqawoe"
500                               :depends-on ("dqc25f"
501                                            "dqpsrt"
502                                            "dqelg"))
503                        (:file "dqawse"
504                               :depends-on ("dqc25s"
505                                            "dqmomo"
506                                            "dqpsrt"))
507                        (:file "dqawce"
508                               :depends-on ("dqc25c"
509                                            "dqpsrt"))
510                        ;; Simplified interface routines
511                        (:file "dqng")
512                        (:file "dqag"
513                               :depends-on ("dqage"))
514                        (:file "dqags"
515                               :depends-on ("dqagse"))
516                        (:file "dqagi"
517                               :depends-on ("dqagie"))
518                        (:file "dqawf"
519                               :depends-on ("dqawfe"))
520                        (:file "dqawo"
521                               :depends-on ("dqawoe"))
522                        (:file "dqaws"
523                               :depends-on ("dqawse"))
524                        (:file "dqawc"
525                               :depends-on ("dqawce"))
526                        ;; Maxima interface
527                        (:file "quadpack")
528                        )
529                       )))
530    (:module simplification :source-pathname ""
531             :depends-on ("defmfun")
532             :components
533             ((:file "simp")
534              (:file "float")
535              (:file "csimp")
536              (:file "csimp2")
537              (:file "zero")
538              (:file "logarc")
539              (:file "rpart")))
540    (:module numeric-bigfloat :source-pathname ""
541             :depends-on ("defmfun" #-gcl "package"
542                                #+gcl "proclaim")
543             :components
544             ((:file "numeric")))
545    (:module server :source-pathname ""
546             :depends-on ("defmfun")
547             :components ((:file "server")))
548    (:module i-o :source-pathname ""
549             :depends-on ("defmfun" "compatibility-macros" "compatibility-macros1")
550             :components
551             ((:file "macsys")
552              (:file "testsuite")
553              (:file "mload")
554              (:file "suprv1")
555              (:file "dskfn")))
556    (:module factoring :source-pathname ""
557             :depends-on ("defmfun")
558             :components
559             ((:file "lesfac")
560              (:file "factor")
561              (:file "algfac")
562              (:file "nalgfa")
563              (:file "ufact")
564              (:file "result")))
565    (:module ifactor :source-pathname ""
566             :depends-on ("defmfun")
567             :components
568             ((:file "ifactor")))
569    (:module rational-functions :source-pathname ""
570             :depends-on ("defmfun" "rat-macros" "other-macros" "compatibility-macros1")
571             :components
572             ((:file "rat3a")
573              (:file "rat3b")
574              (:file "rat3d")
575              (:file "rat3c")
576              (:file "rat3e")
577              (:file "nrat4")
578              (:file "ratout")))
579    (:module maxima-language-compiler :source-pathname ""
580             :depends-on ("defmfun" "maxima-language-compiler-macros")
581             :components
582             ((:file "transl")
583              (:file "transs")
584              (:file "trans1")
585              (:file "trans2")
586              (:file "trans3")
587              (:file "trans4")
588              (:file "trans5")
589              (:file "transf")
590              (:file "troper")
591              (:file "trutil")
592              (:file "trmode")
593              (:file "trdata")
594              (:file "trpred")
595              (:file "transq")
596              (:file "acall")
597              (:file "fcall")
598              (:file "evalw")
599              (:file "trprop")
600              (:file "mdefun")))
601    (:module numerical-functions :source-pathname ""
602             :depends-on ("defmfun" "trigonometry")
603             :components
604             ((:file "bessel")
605              (:file "ellipt")
606              (:file "airy"
607                     :depends-on ("ellipt"))
608              (:file "plasma")
609              (:file "intpol")))
610    (:module reader :source-pathname ""
611             :depends-on ("defmfun" "compatibility-macros" "compatibility-macros1")
612             :components
613             ((:file "nparse")))
614    (:module display :source-pathname ""
615             :depends-on ("defmfun")
616             :components
617             ((:file "displa")
618              (:file "nforma")
619              (:file "grind")))
620    (:module gcd :source-pathname ""
621             :depends-on ("defmfun")
622             :components
623             ((:file "spgcd")
624              (:file "ezgcd")))
625    (:module documentation :source-pathname ""
626             :depends-on ("defmfun")
627             :components
628             ((:file "option")
629              (:file "macdes")))
630    (:module algebraic-database :source-pathname ""
631             :depends-on ("defmfun" "compatibility-macros1")
632             :components
633             ((:file "inmis")
634              (:file "db")
635              (:file "compar")
636              (:file "askp"))            ;does this belong here?
637             )
638    (:module integration :source-pathname ""
639             :depends-on ("defmfun" "pattern-matching")
640             :components
641             ((:file "sinint")
642              (:file "sin")
643              (:file "risch")))
644    (:module taylor-series :source-pathname ""
645             :depends-on ("defmfun")
646             :components ((:file "hayat")))
647    (:module definite-integration :source-pathname ""
648             :depends-on ("defmfun")
649             :components
650             ((:file "defint")
651              (:file "residu")))
652    (:module trigonometry :source-pathname ""
653             :depends-on ("pattern-matching" "defmfun")
654             :components
655             ((:file "trigi")
656              (:file "trigo")
657              (:file "trgred")))
658    (:module special-functions :source-pathname ""
659             :depends-on ("defmfun")
660             :components
661             ((:file "specfn")))
662    (:module matrix-algebra :source-pathname ""
663             :depends-on ("defmfun")
664             :components
665             ((:file "mat")
666              (:file "linnew")
667              (:file "matrix")))
668    (:module determinants :source-pathname ""
669             :depends-on ("defmfun")
670             :components
671             ((:file "sprdet")
672              (:file "newinv")
673              (:file "newdet")))
674    (:module pattern-matching :source-pathname ""
675             :depends-on ("defmfun" "compatibility-macros1")
676             :components
677             ((:file "schatc")
678              (:file "matcom")
679              (:file "matrun")
680              (:file "nisimp")))
681    (:module limits :source-pathname ""
682             :depends-on ("defmfun")
683             :components ((:file "tlimit")
684                          (:file "limit")))
685    (:module solve :source-pathname ""
686             :depends-on ("defmfun" "compatibility-macros1")
687             :components
688             ((:file "solve")
689              (:file "psolve")
690              (:file "algsys")
691              (:file "sqrtdenest")
692              (:file "polyrz")
693              (:file "cpoly")))
694    (:module debugging :source-pathname ""
695             :depends-on ("defmfun" "compatibility-macros1")
696             :components
697             ((:file "mtrace")
698              (:file "mdebug")))
699    (:module miscellaneous :source-pathname ""
700             :depends-on ("defmfun" "pattern-matching" "compatibility-macros1")
701             :components
702             ((:file "scs")
703              (:file "asum")
704              (:file "fortra")
705              (:file "optim")
706              (:file "marray")
707              (:file "mdot")
708              (:file "irinte")
709              (:file "series")
710              (:file "numth")
711              (:file "laplac")
712              (:file "pade")
713              (:file "homog")
714              (:file "combin")
715              (:file "nset")
716              (:file "rand-mt19937")
717              (:file "maxmin")
718              (:file "nummod")
719              (:file "conjugate")
720              (:file "expintegral")
721              (:file "gamma")
722              (:file "mstuff")))
723    (:module polynomial :source-pathname ""
724             :depends-on ("defmfun")
725             :components
726             ((:file "polynomialp")))
727    (:module poisson-series :source-pathname ""
728             :depends-on ("defmfun")
729             :components
730             ((:file "pois2")
731              (:file "pois3")))
732    (:module translated-packages :source-pathname ""
733             :depends-on ("maxima-language-compiler-macros"
734                          "compatibility-macros1"
735                          "defmfun")
736             :components
737             ((:file "desoln")
738              (:file "elim")
739              (:file "invert")
740              (:file "hypgeo")
741              (:file "hyp")
742              (:file "todd-coxeter")
743              (:file "mactex")
744              (:file "plot")))
745    (:module graphics-drivers :source-pathname ""
746             :depends-on ("defmfun")
747             :components
748             ((:file "gnuplot_def")
749              (:file "xmaxima_def")))
750    (:module final :source-pathname ""
751             :depends-on ("defmfun")
752             ;; These are not compiled, for whatever reason, except on ecl:
753             ;; On ECL all runtime alterations to the system (i.e from repl)
754             ;; at runtime are not part of the final executable if they aren't.
755             ;; compiled.
756             #-ecl :load-only #-ecl t
757             :components
758             ((:file "autol")
759              (:file "max_ext")
760              ;; If a file is declared as private-file it is loaded
761              ;; from the build tree (which makes an out-of-tree
762              ;; build possible), but not compiled (which means
763              ;; that with ECL or ABCL it won't end up in the final image)
764              ;; => no out-of-tree build for ECL.
765              (:file "share-subdirs")
766              (:file "init-cl")))))