How to decide what to kill / packages



James Amundson ÐÉÛÅÔ:
> On Sat, 2003-04-26 at 10:53, Richard Fateman wrote:
> 
>>are you talking about the common lisp package system
>>or a new user-accessible package system for maxima?
> 
> 
> Good question. I am talking about using the common lisp package system
> internally in Maxima. I think that is also what Ray was talking about. I
> am not sure about Martin.
> 
> 
>>The latter would probably require mimicking the common
>>lisp package systems (or perhaps a better version of
>>such a thing) with naming conventions, import/export,
>>hiding, etc. There is a package system in Mathematica
>>which has generally been painful for the novice, and
>>perhaps useful to the expert.  I think this is similar
>>to the common lisp situation.
> 
> 
> I think that a Maxima-level package system is worth considering, but
> should be considered a separate issue from the internal-lisp level
> package system. Some entangling between the two is probably inevitable,
> but I think the lisp-level packages can be considered before embarking
> on Maxima-level package scheme.
> 
> 

I'm quite happy that this discussion popped up!
After the thread "set.lisp redefines POWERSET" a while ago
I was about to propose some ideas about packages in Maxima
but now I see that other members of the list just
expressed exactly the same thoughts.  Great!

1). First step is to introduce MAXIMA and MAXIMA-USER
packages.  This is relatively easy to do but immediately
makes Maxima significantly more robust and resolves
kill problem.

2). Later MAXIMA package must be split on smaller
packages to make Maxima core clean and modular.
Ceratanly this is very serious and complicated undertaking
which requires deep understanding of Maxima core and
we are not ready to do this now. But in my opinion
eventually we have do such Maxima core modularization.

3). Maxima desperately needs user-level package system.
In particular each package in SHARE must form separate
user package with clean interface.  Internally Maxima
user-level packages may be implemented with the help
of CL packages.  Certainly, this is also not highest
priority task.

Finally some other but somewhat related to the
"kill problem" issue.  Right now all packages
in SHARE remains uncompiled and get installed as
source code.  This seems to be unnatural to me.
AFAIK all share packages in commercial Macsyma are
compiled (at least this is true for quite old
Windows 3.1 Macsyma which I have).
As far as I remember Richard mentioned that
not all packages in share could be successfully compiled.
But this is probably rather exception than general
rule.  This may also depend on the background lisp.
Eventually I'd like to see all share package in
compiled form on all lisp platforms but for the
time being one can modify Maxima make/install
machinery to compile share packages at least
selectively.  Any opinions?

Best wishes,

Vadim


-- 
      Vadim V. Zhytnikov

       <vvzhy@mail.ru>
      <vvzhy@netorn.ru>