How to decide what to kill / packages



>>>>> "Martin" == Martin RUBEY <rubey@labri.fr> writes:

    >> If no explicit package qualifier is given, then it looks in *package*.
    >> If a qualifier is given, then look there.  Also, note that package:foo
    >> implies that foo has been exported (made "public") from the package.
    >> Otherwise, you have to use package::foo.  But this usually means that
    >> foo is internal to the package and you shouldn't be using that.
    >> 
    >> Ray

    Martin> Sorry, I still do not understand: if foo is not defined in *package*, 
    Martin> would Lisp look somewhere else? I suspect that it doesn't. I just read 

No.

    Martin> that there is a list of packages that a given package 'uses'. So, suppose 
    Martin> that

    Martin> (defun foo (...) body1) is part of pack1 
    Martin> (defun foo (...) body2) is part of pack2.

The lisp code would look more like

(in-package "PACK1")
(defun foo ())

(in-package "PACK2")
(defun foo ())

    Martin> If I am using pack1 and pack2 (I suppose I'd do this via 

    Martin> (use-package pack1 pack2))

    Martin> what would foo do? (I do not understand the HyperSpec, sorry)

That would be an error.  You cannot use-package if both pack1 and
pack2 define foo.  Then you MUST use package qualifiers to access foo.

This is assuming we're talking about Lisp packages.  Maxima packages,
if not defined like Lisp packages, could have all kinds of different
behaviors.

Ray