Hello,

Is the following behaviour intentional?  I realize that it must be
implementation-dependent, although I noticed these differences between
ECL and SBCL.

ECL:

(make-package :foo) -> #<"FOO" package>
(defparameter foo::gentemp 10) -> GENTEMP
(symbol-package 'foo::gentemp) -> #<"COMMON-LISP" package>

On SBCL, SYMBOL-PACKAGE here reports the FOO package.

Resuting from this, SBCL also allows DEFUN or (SETF (SYMBOL-FUNCTION
'FOO::GENTEMP) #'(LAMBDA ...) without issueing a lock error, and this
seems sane, since the package is in FOO and FOO does not USE-PACKAGE CL.

ECL reports that the symbol is part of COMMON-LISP even if that package
doesn't :USE :CL, however, and a package locked error is issued if
attempting to define a function on a symbol which exists in the
COMMON-LISP package, even if the symbol is really another symbol of the
same name that's in the FOO package and is not inherited.

Of course, SBCL will issue a package locked error in the case where the
FOO package USEs CL.

Thanks,
-- 
Matt

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Ecls-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to