[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: REQUIRE-PATHNAME-DEFAULTS (Version 5)



    Date: Fri, 9 Dec 88 17:31:12 PST
    From: Jon L White <jonl@lucid.com>

    Larry, I would very much like to see a second alternative in this
    proposal.  I think the idea of a "safety-net" version of REQUIRE is
    fully portable, and backwards compatible with those implementations 
    that hook into their own "defsystem".  All the arguments against it, 
    that have been sent out in discussion so far, are simply confusing the 
    issue of REQUIRE portability with that of DEFSYSTEM portability.  If 
    someone uses implementation A's DEFSYSTEM, his code won't be portable 
    to implementation B (unless B has cloned A's DEFSYSTEM).  There is just 
    no reason to indict REQUIRE of cuplability here.

    My "compromise" proposal, that Gray seemed to agree to, was to insist
    that implementations which "hook" their REQUIRE into some  kind of 
    DEFSYSTEM -- as an implementation- specific extension -- must also 
    provide a special variable flag that disengages any such "hook-up".  
    While it is true that many people will persist in writing non-portable 
    code, the portable use of REQUIRE to ensure that required package 
    definitions are "already loaded in" is of paramount importance.  There is 
    no other portable feature to help ensure that.

I don't buy this.  You can do it portably with find-package and intern.
You might claim that is gross, but I don't believe it.  The point is
that REQUIRE "suggests" more than it can possibly do.  It need to know
that the sub-system I depend on really is completely loaded, up and
running.  Any program that is "portably" going to require the existence
of other programs takes work,  it takes some sort of defsystem facility.
REQUIRE can't possibly provide that, all it can do is confuse people
into thinking that they might be getting it.

    If you and Dan are amenable, I'd write the additional part -- from 
    previous mails, it should only take 10 or 20 minutes at most.  Either
    of you could probably write it too.


    -- JonL --


-------