[cmucl-imp] [cmucl-commit] CMUCL commit: src/code (package.lisp)
Stas Boukarev
stassats at gmail.com
Sun Dec 26 16:58:57 CET 2010
Raymond Toy <toy.raymond at gmail.com> writes:
> On 12/26/10 9:40 AM, Stas Boukarev wrote:
>> Madhu <madhu at cs.unm.edu> writes:
>>
>>> |From: Stas Boukarev <stassats at gmail.com>
>>>
>>> |> * (load (compile-file "test.l"))
>>> |It breaks non-standard code, that is right.
>>>
>>> The point of my example was to show that it breaks more than just
>>> non-stanadard code. It would be nice to keep misguided SBCL patches
>>> off the CMUCL codebase.
>> The behaviour you expect from the code you showed is non-standard. And
>> it behaves the same way in every implementation, except for CMUCL and SBCL.
>>
> I'm getting confused now. (I would claim too much holiday cheer, but I
> didn't really drink anything much.)
>
> FIND-SYMBOL (before uninterning) says BAR-SYMBOL is an external symbol
> and not inherited. An external symbol is present in the package,
> according to the phrasing in the clhs entry for find-symbol.
>
> I do see that ccl and clisp fail the test. cmucl passes.
The problem is that the symbol is uninterned twice, and the second time
it's uninterned it's passing a symbol with no home-package to unintern,
which it surely can't find in that package anymore.
A better test-case:
(progn (intern "SYM") (unintern (print 'sym)) (intern "SYM") (unintern (print 'sym)) (find-symbol "SYM"))
=>
SYM
#:SYM
SYM
:INTERNAL
--
With Best Regards, Stas.
More information about the cmucl-imp
mailing list