Issue: REQUIRE-PATHNAME-DEFAULTS-AGAINForum: X3J13
References: PROVIDE, REQUIRE, *MODULES* (all on CLtL1 p188),
Issue REQUIRE-PATHNAME-DEFAULTS
Category: CHANGE
Edit history: 05-Feb-92, Version 1 by Pitman
Status: Approved by X3J13 on vote of 9-0-1 at December 1991 meeting
Problem Description:
REQUIRE, PROVIDE, and *MODULES* were flushed but are still used by many
Common Lisp programs. Many in the user community have expressed dismay.
Proposal (REQUIRE-PATHNAME-DEFAULTS-AGAIN:X3J13-DEC-91):
Return REQUIRE, PROVIDE, and *MODULES* to the language,
as described in CLtL1, except for the following changes:
1. Remove the second argument to REQUIRE.
2. Deprecate all three functions.
3. If any intervening cleanups have been passed and
would have referred to these functions (other than the cleanups
that removed them, of course), those cleanups would apply.
Rationale:
This diminishes the compatibility problems caused by previous votes.
1. The second argument is what was problematic, so remove only that.
2. All of these functions are questionable to some committee members,
but deprecation allows for a suitable transition period for people to
find something better.
3. We have said that the original CLtL1 wording is reinstated,
and we don't believe there are any cleanups which are in conflict,
but if one is later discovered to be in conflict, we want to give
precedence to the cleanup, not to CLtL1.
Test Case:
Current Practice:
No previously-conforming implementation could have had these functions.
Some implementations (e.g., Genera) were continuing to provide these
functions but in a different package.
Cost to Implementors:
Very small, and highly localized.
Cost to Users:
None.
Cost of Non-Adoption:
Many users who have expressed the opinion that removing these things was
gratuitous would continue to be upset.
Benefits:
Cost of non-adoption is avoided.
Editorial Impact:
A modular change of relatively small nature. Just whatever it takes to
dredge up the old text and dust it off for current editorial style, etc.,
make it conform to changes cited in the proposal.
Aesthetics:
Some users believe that PROVIDE and REQUIRE are aethetic.
Discussion:
None.