Re: Updating defsystem dependencies

Barton Willis via Maxima-discuss <[email protected]>
Newsgroups gmane.comp.mathematics.maxima.general
Message-ID <SN6PR07MB7952E7A14F48E0BA5A26E4A8B6222@SN6PR07MB7952.namprd07.prod.outlook.com>
Might straightening out these dependences eliminate some compiler warnings such as:

; compilation finished in 0:00:00.620
STYLE-WARNING:
   2 calls to MAXIMA::$LIMIT were compiled before a compiler-macro was defined
   for it. A declaration of NOTINLINE at the call sites will eliminate this
   warning, as will defining the compiler-macro before its first potential use.
;
; compilation unit finished
;   printed 1 note

The dozens and dozens of warnings distract from messages that are important.

--Barton
________________________________
From: Raymond Toy <[email protected]>
Sent: Saturday, April 11, 2026 12:22 AM
To: <[email protected]> <[email protected]>
Subject: [Maxima-discuss] Updating defsystem dependencies

Caution: Non-NU Email


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.