[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dan Carnese <Carnese@SPAR-20.ARPA>: proposal]
- To: Dan Carnese <CARNESE@SPAR-20.ARPA>
- Subject: [Dan Carnese <Carnese@SPAR-20.ARPA>: proposal]
- From: Ram@C.CS.CMU.EDU
- Date: Thu, 3 Sep 1987 14:17 EDT
- Cc: cl-cleanup@SAIL.STANFORD.EDU
- In-reply-to: Msg of 2 Sep 1987 22:25-EDT from Dan Carnese <CARNESE at SPAR-20.ARPA>
- Sender: RAM@λλ
Actually, having the defining form export the symbol from its home
package is more problematic than exporting from the current package.
Consider a code fragment like:
(in-package 'a :use '(lisp b))
...
(defun-exported b::foo ...)
foo
What package is the following "foo" in? Obviously the DEFUN-EXPORTED
and the "foo" could be in the same form, so under some circumstances,
that "foo" couldn't possibly refer to B:FOO, yet if the compiler
happened to process the DEFUN-EXPORTED before the "foo" was read, then
it would be B:FOO.
To say that these things are "just problems in the current language
definition" doesn't avoid the problem. Adding new langauge features
is language design, and a language designer must consider how each
language feature will affect his ability to properly define the
language. I am suggesting that this feature would significantly
complicate the language definition for what seems to me to be little
gain.
Rob