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

Issue: REQUIRE-PATHNAME-DEFAULTS (Version 3)



    ...
    Current practice:
    ...

If (REQUIRE arg1 arg2) is done and arg1 is not present,
Symbolics Genera does (LOAD-SYSTEM arg2). With Genera's
LOAD-SYSTEM comes a theory of how to register things so
they will be found, regardless of what directory they
are on.

I'd like to have the current practice being by saying that
views on how to treat the arg2 vary pretty widely and then
cite Lucid/Vaxlisp vs Genera as examples. To an extent, this
is the real rationale for flushing the arg2 -- there is no
portable alternative.

    ...
    Discussion: This proposal creates an asymmetry in
    the handling of *MODULES* that may bother some people.

I didn't understand this reference. I think it should be 
spelled out.

    Several people would like to simply eliminate PROVIDE and REQUIRE from
    the language and either leave this language space empty or provide a
    portable DEFSYSTEM standard.  Others believe that PROVIDE and REQUIRE
    are useful as a safety-net even in the presence of DEFSYSTEM.  This
    proposal attempts to reduce PROVIDE and REQUIRE to a well-defined
    safety-net and leaves the question of DEFSYSTEM to a separate
    proposal (which I don't intend to write).

I think this should be promoted to Rationale, and expanded to include
this. The Rationale should say outright that the only two realistic options
are flushing the functions altogether or retaining them in this
labotomized form, and should then go on to give the reasons:
Larry's remarks about PROVIDE/REQUIRE having a declarative feel (which
can be easily grokked by a code walker) while a condition error signalling
mechanism such as GZ wants to fall back to would have an imperative
feel that would be largely opaque to code walkers.

Regarding JonL's remarks, I wonder if we should mention explicitly in the
proposal that implementations are permitted to extend the syntax to permit
an implementation-specific, optional second argument which specifies how
to find the module if it is not present.

Regarding the proposal as a whole, I buy into Larry's arguments and think
that this streamlined definition of REQUIRE/PROVIDE is the right way to go.