[cmucl-imp] [cmucl-commit] CMUCL commit: src/code (package.lisp)

Madhu madhu at cs.unm.edu
Sun Dec 26 15:36:06 CET 2010


  |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.

--
Madhu



More information about the cmucl-imp mailing list