Updating defsystem dependencies
Raymond Toy <[email protected]>
| Newsgroups | gmane.comp.mathematics.maxima.general |
|---|---|
| Message-ID | <[email protected]> |
Well, I asked Claude to check the dependencies of all the lisp files.
Here is what it said. I'll look into soon and fix this up if needed. I
think moving some macros and functions around would be helpful too
instead of just leaving this as they are.
I'll update the asdf file too.
Bugs fixed
1 — Duplicate |:depends-on| in |command-line|
MK:DEFSYSTEM silently discards all but the last |:depends-on| clause per
module. |command-line| had two, so its |defmfun| dependency was being
dropped. Fixed by merging into one: |:depends-on ("defmfun" "getopt")|.
2 — |pois3| (key / bp / order / …) loaded far too late
|pois3| was in |poisson-series| (nearly last) but its macros are called
at compile time by *cl-info, init-cl, inmis, intl, mdebug, mutils,
nparse, plot, rand-mt19937, bessel, expintegral, defint, hyp, hypgeo,
and limit* — all compiled far earlier. Promoted to a new early
|poisson-macros| module, placed immediately after |globals|.
3 — |pade| (num / denom / red) loaded far too late
|pade| was in |miscellaneous| (very late) but its three macros are used
across *simp, float, sin, limit, hayat, rat3b, rat3e, combin, displa,
nrat4, nisimp, irinte, nforma, rpart, series, sinint, mactex, trigo, and
risch*. Promoted to a new early |pade-macros| module.
4 — |spgcd| (len / matrix) loaded too late
|spgcd| was in |gcd| (late) but |len| and |matrix| are used by *float,
getopt, linnew, numth, plot, trigo, init-cl, and intl*. Promoted to a
new early |spgcd-macros| module before |simplification|.
5 — |evaluator| (mlisp → |msetq|) must precede |commands| and
|simplification|
|msetq| is a compile-time macro needed by |comm|, |csimp2|, |inmis|,
|matcom|, |matrun|, |nparse|, |optim|, |suprv1|, |trans2|, |trans4|,
|transl|, and |trmode|. The |evaluator| module is now placed before
|commands| and |simplification|, and those modules gain |:depends-on
("evaluator")|.
6 — |transm| (tr / maref / maset / def%tr) must precede
|factoring| and |simplification|
|transm| was in |maxima-language-compiler-macros| which was ordered
after |factoring| and |simplification|. But |algfac|, |nalgfa|
(factoring), |float| (simplification), |linnew|, |newdet|, and |trgred|
all use its macros. The module is now placed at position 15 — before
|factoring| and |simplification| — and those modules gain the dependency.
7 — |risch| (pair) must precede |utility-macros|, |utilities|,
|trigonometry|, and |miscellaneous|
|risch| was in |integration| but |pair| is called by |mforma|
(utility-macros), |mutils| (utilities), |series| (miscellaneous), and
|trgred| (trigonometry). |integration| is now placed before
|trigonometry| and |miscellaneous|, both of which gain |:depends-on
("integration")|.
8 — |display| did not depend on |reader|
|displa.lisp| uses |def-rbp| from |nparse| (reader module). Added
|:depends-on ("reader")| to |display|.
9 — |miscellaneous| did not depend on |reader| or |integration|
|gamma| and |nset| use |nparse| macros; |series| uses |risch→pair| and
|schatc→alist-bind|. Added both |reader| and |integration| as dependencies.
10 — |schatc| (pattern-matching) macros needed by limits,
trigonometry, integration
|preserve|, |alist-bind|, and |schatchen-cond| are called by |limit|,
|trgred|, and |sin| respectively. |limits|, |trigonometry|, and
|integration| now depend on |pattern-matching|.
_______________________________________________
Maxima-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/maxima-discuss