Opened 12 years ago

Closed 12 years ago

#311 closed defect (fixed)

UIOP fails to upgrade

Reported by: Mark Evenson Owned by: ehuelsmann
Priority: major Milestone: 1.2.0
Component: interpreter Version: 1.2.0-dev
Keywords: quicklisp uiop ansi-conformance Cc:
Parent Tickets:

Description (last modified by Mark Evenson)

UIOP fails to upgrade due to problems in the the UNEXPORT of a symbol that is both the subject of a USE and EXPORT clause in a package. Probably something to do with not properly copying structure on the Java side of things.

Change History (7)

comment:1 Changed 12 years ago by Mark Evenson

Keywords: quicklisp uiop added

comment:2 Changed 12 years ago by Mark Evenson

UIOP, which used to be called ASDF/DRIVER, is now part of ASDF.

The version from Quicklisp seems to be that distributed as part of 2.32.5.

comment:3 Changed 12 years ago by Mark Evenson

The text of the ERROR:

The symbol UIOP/UTILITY::LOAD-ASDF-DEBUG-UTILITY is not accessible in package UIOP/DRIVER

comment:4 Changed 12 years ago by Mark Evenson

Component: librariesinterpreter
Keywords: ansi-conformance added
Owner: changed from Mark Evenson to ehuelsmann

Faré narrows this to a bug in CL:UNEXPORT:

[1] UIOP/BACKWARD-DRIVER(14): (find-symbol "LOAD-ASDF-DEBUG-UTILITY"
:uiop/utility)
UIOP/UTILITY::LOAD-ASDF-DEBUG-UTILITY
:INTERNAL
[1] UIOP/BACKWARD-DRIVER(15): (find-symbol "LOAD-ASDF-DEBUG-UTILITY"
:uiop/driver)
UIOP/UTILITY::LOAD-ASDF-DEBUG-UTILITY
:EXTERNAL
[1] UIOP/BACKWARD-DRIVER(17): [1] UIOP/BACKWARD-DRIVER(17): (unexport
(find-symbol "LOAD-ASDF-DEBUG-UTILITY" :uiop/driver) :uiop/driver)
Error loading /home/tunes/cl/asdf/build/asdf.lisp at line 5302 (offset 252109)
#<THREAD "interpreter" {7E6AB533}>: Debugger invoked on condition of
type PACKAGE-ERROR
  The symbol UIOP/UTILITY::LOAD-ASDF-DEBUG-UTILITY is not accessible
in package UIOP/DRIVER
Restarts:
  0: ABORT Return to debug level 1.

comment:5 Changed 12 years ago by Mark Evenson

Reproducible case:

(defpackage a
  (:export :foo))

(defpackage b
  (:use a)
  (:export :foo))

(unexport 'a:foo :a)

(unexport 'b:foo :b)

will error with

The symbol A::FOO is not accessible in package B

comment:6 Changed 12 years ago by Mark Evenson

Description: modified (diff)
Summary: UIOP fails to loadUIOP fails to upgrade

comment:7 Changed 12 years ago by Mark Evenson

Resolution: fixed
Status: newclosed

(In [14449]) Fix UNEXPORT to work on symbols from foreign packages.

No longer check that the symbols which are the target of UNEXPORT are
accessible. Such symbols may be present in a foreign package as they
may have been part of a USE clause for which the original symbol has
subsequently made internal in its home package by a previous UNEXPORT
operation.

Fixes #311.

Note: See TracTickets for help on using tickets.