Opened 9 years ago

Closed 9 years ago

#678 closed defect (worksforme)

Using a non-existant package corrupts the current package, disinterns builtins (CCL/Win32)

Reported by: fusss Owned by:
Priority: normal Milestone:
Component: ANSI CL Compliance Version: trunk
Keywords: win32 package symbol intern use-package :use Cc:

Description

Hi,

When the a package is present, say, HUNCHENTOOT, the following works

(defpackage :foo

(:use :cl :hunchentoot))

(in-package :foo)

..

However, as start to use more packages during the course of hacking, I sometimes :USE non-existent package or misspell its name.

(defpackage :foo

(:use :cl :hunchentoot :frob))

(in-package :foo)

..

On Linux, I get the correct behaviour:

The name "FROB" does not designate any package.

[Condition of type SB-KERNEL:SIMPLE-PACKAGE-ERROR]

But on Win32, things get unwieldy: I first get the error, but if I try to correct it by fixing the spelling or loading an ASDF system, all forms refuse to evaluate. For example, after fixing the typo, I get this:

Undefined function :USE called with arguments (:CL

:CL-WHO :POSTMODERN :SIMPLE-DATE :HUNCHENTOOT) .

[Condition of type CCL::UNDEFINED-FUNCTION-CALL]

Even evaluating () returns ==> COMMON-LISP:NIL

The only way I know how to repair things without restarting CCL is to do this:

FOO> (cl-user::in-package :cl-user) #<Package "COMMON-LISP-USER"> CL-USER> (in-package :foo) #<Package "FOO">

Attached is a stack trace.

CL-USER> (lisp-implementation-version) "Version 1.4 (WindowsX8632)"

Attachments (1)

cms.trace (2.6 KB) - added by fusss 9 years ago.

Download all attachments as: .zip

Change History (2)

Changed 9 years ago by fusss

comment:1 Changed 9 years ago by gb

  • Resolution set to worksforme
  • Status changed from new to closed

I can't reproduce this, but then again I don't use SLIME.

If anyone can provoke this without SLIME being involved, please reopen this.

Note: See TracTickets for help on using tickets.