Move *bigprimes* and *alpha to globals.lisp (from rat3c)
`*alpha` is a specvar used in several files so it makes sense to have
it in globals.lisp. Since `*alpha` is initialized from `*bigprimes*`,
it makes sense to have this specvar in globals.lisp too.
However, `*bigprimes*` is initialized using the `next-prime` function
which isn't available when globals.lisp is compiled. Hence, it has to
be initialized at startup in `initialize-runtime-globals`.
`*alpha` is initialized to the first value in `*bigprimes*` so we need
to initialize it in `initialize-runtime-globals` too. Since `*alpha`
is a `defmvar`, we need to update the initial values hashtable too.
Finally, `$pointbound` is initialized to `*alpha`, so initialize it in
`initialize-runtime-globals` too. The initial values hashtable needs
to be updated too.
`opers-list` has a `declare-top` `special` in asum.lisp and
simp.lisp. Let's just a defvar for `opers-list` to globals.lisp
and update all the `declare-top`'s to remove `opers-list`. We can
also remove the special decl from lmdcls.lisp since it's not needed
anymore.
`derivlist` has a `declare-top` `special` in a couple places
without a corresponding `defvar`. Let's just add one to globals.lisp
and update all the `declare-top`'s to remove `derivlist`.
We can rename this to `*derivlist*` later, or do something else
appropriate.
`alpha` is used in a lot of places, and from what I can tell, many of
those places (like bessel.lisp and ellipt.lisp) don't intend to use
the `alpha` specvar. (It was originally defined in ifactor.lisp).
So, let's rename it to `*alpha*` per lisp conventions and remove it
from lmdcls.lisp. Then update code that actually wants to use the
specvar `alpha` to use `*alpha*`.
I think I got all the places that need to be changed.
`*n` has a `declare-top` in many files but there's no `defvar` for
it. To simplify things, add a `defvar` for it in globals.lisp and
remove it from any `declare-top`'s.
`local` is a defvar that appears to be used only in transl.lisp (Hard
to tell from a grep; it's a common word.) So rename it to `*local*`
and remove it from lmdcls.lisp.
Full testsuite passes. But I guess there aren't really any tests for
translate in the testsuite, so it's hard to know for sure. At least
this change doesn't affect other parts of Maxima.
Because `returns` is such a common word in programming, rename the
specvar `returns` to `*returns*` in transl. Hopefully this will make
it easier to know that we're referring to the specvar and not the
common word when grepping through the sources.
As far as I can tell it's defined in transl.lisp and only used
there. (It's really hard to tell from grepping the source code since
it's such a common word.) So remove it from lmdcls.lisp since it's
not used anywhere else.