functions from add-on packages, was: Newbie question: testing for lvalue



Hi Volker, sorry for the late reply.

> if there is no example included in the documentation of a function,
> which shows that a load("add-on") is necessary, the user in a lot of
> cases gets no information, that this function is from an add-on package.
>This is true for stringproc and a lot of others.

I think we can afford to be much more liberal with the autoload
mechanism. The only reason that I can see to make the user
explicitly enter load(foo) is to prevent name collisions, so, e.g.
if the user has some foo(x) in an expression it doesn't cause some
obscure share package to be loaded.

Name collisions are a real problem, but on the balance I think
more share packages can be autoloaded, including stringproc.
linearalgebra is another candidate.

> Should we revise the add-on package documentations and add
> a "please load(xyz) first" to every function definition or is there a
> possibility, that describe itself gives a short information, like
>
> (%i1) ? stringp
>  0: lstringp  (Definitions for strings, add-on package stringproc)
>  1: stringp  (Definitions for strings, add-on package stringproc)

I guess I'm hesitant to put the package name in the @node
title, because if we make more functions autoload as I've
suggested above, there isn't any visible consequence of the
package organization from the user's point of view; it's all just
"Maxima".

For packages which aren't autoloaded ... well, we should be
more careful to put "Hey, load(foo)" in the text.

Hope this helps
Robert