On 8/18/06, Raymond Toy <raymond.toy at ericsson.com> wrote:
> >>>>> "Richard" == Richard Fateman <fateman at cs.berkeley.edu> writes:
> Richard> That is, if you have a maxima-user package with nickname mu,
> Richard> then instead of $sin you could have mu:sin.
I'm not opposed to fixing up the Maxima internal symbols to use
the CL package system, but I think that's mostly orthogonal to
the user-level namespace stuff.
> Richard> If you did this, maybe the rest of the common-lisp package system could be
> Richard> used, with the modification that the package suffix could be changed from
> Richard> the character : to the character @.
I really don't think this is advisable. Using @ in place of : would essentially
give Maxima a peculiar dialect of CL. It's hard enough to comprehend Maxima
code to begin with; I don't think we want to make it any harder.
> Well, to keep with CL, we'd have to distinguish between : and :: (or @
> and @@). This could be beneficial, too, for maxima. Then package
> writers could decide what functionality to export to users and which
> are internal, just like CL.
I don't think there's much reason to imitate the CL package system
in a user-level namespace system. (I've deliberately chosen the word
"namespace" to prevent people from thinking there is some necessary
connection.) The CL package system is pretty strange, and, aside from
the fact that it's built into the language in which Maxima is programmed,
doesn't have much to recommend it. IMNSHO.
For a user-level system, we should pick out the features we'd like
to see, then figure out how to implement that in CL.
I don't see a need to go backwards; I'm pretty sure only a small
fraction of Maxima users know anything about Lisp, and a smaller
fraction know about the CL package system.
FWIW
Robert Dodier