User-level namespace system for Maxima



>>>>> "Robert" == Robert Dodier <robert.dodier at gmail.com> writes:

    >> 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.

    Robert> I don't think there's much reason to imitate the CL package system
    Robert> in a user-level namespace system. (I've deliberately chosen the word
    Robert> "namespace" to prevent people from thinking there is some necessary
    Robert> connection.) The CL package system is pretty strange, and, aside from
    Robert> the fact that it's built into the language in which Maxima is programmed,
    Robert> doesn't have much to recommend it. IMNSHO.

I think you should clarify how this namespace thing works or is
intended to work.  Your wiki page makes it sound very similar to CL
packages.  I don't see how it differs.

    Robert> For a user-level system, we should pick out the features we'd like
    Robert> to see, then figure out how to implement that in CL.
    Robert> I don't see a need to go backwards; I'm pretty sure only a small
    Robert> fraction of Maxima users know anything about Lisp, and a smaller
    Robert> fraction know about the CL package system.

Just because they don't know doesn't mean they shouldn't. :-)

If I had my wish, I'd make the maxima language lexical, and fix (or
replace) the translator so that it actually works for anything the
user might do, so that maxima can be compiled to Lisp and ultimately
to machine code if your Lisp can do that.  

Then ditch as much of the internal Lisp stuff as possible and
implement everything in maxima.  Right now, I tend to write stuff in
Lisp because it's easier for me to understand, and I already know
Lisp, but don't really know maxima.

Ray