[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