[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issue: HASH-TABLE-PACKAGE-GENERATORS (version 5)



    Date: Mon, 28 Nov 88 21:57:06 PST
    From: Jon L White <jonl@lucid.com>

    This is all fine with me now, except for one odd addition you made: the
    additional return value for the iterator over packages.

The reason was that I don't see how the accessibility type means anything at
all except relative to a package.  This is not an issue when the <package-list>
argument is of length 1, since the <package> value will always be the sole
element of that list.  But when iterating over several packages, or all
packages, to use the accessibility type for anything you need to know which
package the iteration is operating on.

    in DO-SYMBOLS over package FOO, a given symbol may be inheritable from
    three distinct packages "used" by FOO; but your prescription here makes
    it legal simply to return FOO each time.

Not just legal, but required.  Sorry about the ambiguity.

    First off, I much prefer that such information be passed as the 4th
    value, rather than disturbing the original ordering (since I have code

I don't care about the order.  I didn't realize that you did.

Sorry about the unclarity, when I said
	  ;;    2. a symbol (accessible in the indicated package)
	  ;;    3. a package (in which the symbol is accessible)
	  ;;    4. the accessibility type for that symbol; i.e. one of
	  ;;       :INTERNAL, :EXTERNAL, or :INHERITED
I meant that those three values were to be interpreted jointly.  How
about this clarification:

 The package value is one of the packages present or named in the
 <package-list> argument.  The meaning of the second, third, and fourth
 values is that the returned symbol is accessible in the returned package
 in the specified way: present and not exported if :INTERNAL, present
 and exported if :EXTERNAL, or not present and inherited from some other
 package and not shadowed if :INHERITED.

I think the alternative to returning a package-type value is to make
the accessibility-type value unspecified whenever the <package-list>
argument has more one element.  I am loath to do that.

What shall we do?