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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.