Dear all, About a year ago, I have proposed the similar idea of introducing maxima user package for solving different issue of strange behavior for uppercase/lowercase symbols related to bug ID 530030 in the database. Recently I re-started playing with Maxima and found that this was not solved since then. Then I have started some hack for introducing maxima-user package. Here I attach two files, maxima-user-package.lisp and symbol.lisp which I created a year ago and updated recently. Some coincidence is that my hack does NOT pass the regression test rtest13s.mac in tests directory. That is because I still cannot figure out how rule names introduced by tellsimp, infix, prefix, postfix and so on are interned, and killed. Some hacks made it work for rtest13.mac, though I am not satisfied with my hack. I think it will take some more time for me to complete even 1) below. Yasuaki Honda Independent developer Chiba, Japan > 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> >
Attached file: maxima-user-package.lisp
Attached file: symbol.lisp