[HARLEQUIN][Common Lisp HyperSpec (TM)] [Previous][Up][Next]


Issue COMPILE-FILE-PACKAGE Writeup

Issue:		COMPILE-FILE-PACKAGE

References: CLtL p. 182, 183

Category: CHANGE, CLARIFICATION

Edit History: 1 Sep 1988, Sandra Loosemore (initial version)

21 Sep 1988, Sandra Loosemore (minor tweak to current practice)

Problem Description:

The variable *PACKAGE* is rebound by the function LOAD, so that its

old value will be restored in spite of any calls to IN-PACKAGE

appearing in the file being loaded. Since COMPILE-FILE must evaluate

any top-level calls to IN-PACKAGE that it sees, it may also alter the

value of *PACKAGE*. It is inconsistent to have COMPILE-FILE and LOAD

behave differently regarding the rebinding of this variable.

Proposal COMPILE-FILE-PACKAGE:REBIND:

Require COMPILE-FILE to rebind *PACKAGE* before processing the file.

Rationale:

This makes COMPILE-FILE and LOAD more consistent. It is a more

compatible solution than either requiring LOAD not to rebind

*PACKAGE*, or removing the specialness of IN-PACKAGE and the other

package functions.

Current Practice:

Lucid Common Lisp, the TI Explorer, and VaxLisp already implement this

proposal.

Cost to implementors:

Trivial.

Cost to users:

I find it hard to believe that users would consider COMPILE-FILE altering

the value of *PACKAGE* as a useful side effect.

Benefits:

The language is made more uniform.

Discussion:


[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996, The Harlequin Group Limited. All Rights Reserved.