How to decide what to kill / packages



Dear James, Martin, Vadim and Raymond san,

My hack is obviously premature and just a work in progress in two ways.

1) symbol.lisp includes a lot of symbols already, however, it is not 
complete.
Today I added 10 symbols...

2) As I remember I pointed out a year ago, there are about 50 calls to 
the
function "intern" in the source code. Implode1 is certainly most 
important for
most of the cases. However, if you want to treat rule names correctly, 
and if
you want kill them correctly when you perform kill(all), then you need 
to look
into the source code very carefully in addition to  implode1. Another 
example
you need to be careful is the Poisson series, which makes special 
treatments
for symbols such as v, w, x, y, z.

James described in early email that the plan is changed for how 
uppercase,
lowercase conversion works in Maxima. I still believe that symbols 
listed in my
symbol.lisp is useful for such plan.

Finally, I am trying not to change the implode1 function, but to change 
the
function macsyma-top-level defined in macsys.lisp. This way I change the
default package for intern from Maxima to Maxima user package.

Yasuaki Honda

On 2003.5.6, at 12:12 AM, Martin RUBEY wrote:

>> Part of the reasons we haven't done anything about various
>> uppercase/lowercase bugs is that we intend to change the way case
>> sensitivity works in Maxima. At that point, all such fixes should 
>> become
>> moot. Of course, your contribution is still very useful.
>>
>>> Here I attach two files, maxima-user-package.lisp and symbol.lisp
>>> which I created a year ago and updated recently.
>>
>> Thank you for sending in this contribution. It is exactly what I was
>> looking for.
>
> I would like to underline the last sentence. Additionally, I think that
> your contribution might also help with changing the way case 
> sensitivity
> works. Finally, wouldn't it be simple to extend this patch to a
> user-package sysyem? It seems to me that we would only need a way to 
> know
> in which package we are, call it *current_package*, and change
>
> (defun implode1 (lis upcase &aux (ar *string-for-implode*) (leng 0))
> ...
>   (intern ar :maxima-user))
>
> to
>
> (defun implode1 (lis upcase &aux (ar *string-for-implode*) (leng 0))
> ...
>   (intern ar *current-package*))
>
> Well, somebody please explain Lisp packages to me...
>
> Martin
>