CLHS: Issue REQUIRE-PATHNAME-DEFAULTS-AGAIN Writeup

#

## Issue REQUIRE-PATHNAME-DEFAULTS-AGAIN Writeup

    Issue:        REQUIRE-PATHNAME-DEFAULTS-AGAIN
    Forum:	      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:

      (PROVIDE '*MODULES*)
      (REQUIRE '*MODULES*)

    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.

Copyright 1996-2005, LispWorks Ltd. All rights reserved.