[cmucl-imp] [cmucl-commit] CMUCL commit: src/code (package.lisp)
Stas Boukarev
stassats at gmail.com
Sun Dec 26 15:40:07 CET 2010
Madhu <madhu at cs.unm.edu> writes:
> |From: Stas Boukarev <stassats at gmail.com>
> |Cc: Raymond Toy <rtoy at common-lisp.net>, cmucl-imp at cons.org
> |Date: Sun, 26 Dec 2010 17:32:07 +0300
> |
> |Madhu <madhu at cs.unm.edu> writes:
> |
> |> |From: Raymond Toy <rtoy at common-lisp.net>
> |> |Date: Sun, 26 Dec 2010 09:03:48 -0500
> |> |MIME-Version: 1.0
> |> |Content-Type: text/plain; charset="us-ascii"
> |> |
> |> | Date: Sunday, December 26, 2010 @ 09:03:48
> |> | Author: rtoy
> |> | Path: /project/cmucl/cvsroot/src/code
> |> |
> |> |Modified: package.lisp
> |> |
> |> |Unintern removes the wrong symbol. See
> |> |https://bugs.launchpad.net/sbcl/+bug/693796.
> |>
> |> [It would be nice to have the whole relevant description in the
> |> repository, as part of the commit, instead of citing some website
> |> which may or may not be offline]
> |>
> |> I believe this patch would break the following use case which used to
> |> work earlier
> |>
> |> $ cat test.l
> |> (in-package "CL-USER")
> |> (eval-when (load eval compile)
> |> (when (find-package "FOO-PACKAGE") (delete-package "FOO-PACKAGE"))
> |> (when (find-package "BAR-PACKAGE") (delete-package "BAR-PACKAGE")))
> |> (defpackage "FOO-PACKAGE" (:export "BAR-SYMBOL"))
> |> (defpackage "BAR-PACKAGE")
> |> (eval-when (load eval compile)
> |> (unintern 'foo-package:bar-symbol "FOO-PACKAGE"))
> |>
> |> (assert (not (find-symbol "BAR-SYMBOL" "FOO-PACKAGE")))
> |>
> |> * (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.
--
With Best Regards, Stas.
More information about the cmucl-imp
mailing list