a simple counter-proposal campbell@xxxxxx (28 Aug 2004 15:52 UTC)
Re: a simple counter-proposal felix (30 Aug 2004 19:54 UTC)
Re: a simple counter-proposal campbell@xxxxxx (30 Aug 2004 20:21 UTC)
Re: a simple counter-proposal felix (30 Aug 2004 20:26 UTC)
Re: a simple counter-proposal campbell@xxxxxx (03 Sep 2004 17:14 UTC)
Re: a simple counter-proposal felix (06 Sep 2004 19:22 UTC)

Re: a simple counter-proposal felix 30 Aug 2004 20:01 UTC

xxxxxx@autodrip.bloodandcoffee.net wrote:
> It occurred to me last night that a particularly simple extension to
> SRFI 7 would likely appease all sides of this issue, including myself
> and Felix.  (Both a proponent of the existing SRFI 55 proposal and a
> proponent of Scheme48's module system on IRC have already approved of
> it.)  SRFI 7's grammar would be extended in the <program> nonterminal:
>
>   <program> -->
>       (PROGRAM <program-clause>+) <command or definition>*
>
> where <command or definition> is as defined by R5RS in section 7.1.6.
> In the case that there are forms S* following the PROGRAM form that
> contains clauses C*, it would be equivalent to having written a PROGRAM
> form (program C* (code S*)).  For example, Felix might write a program
> with SRFI 55 to display the result of (iota 5):
>
>     (require-extension srfi-1)
>     (display (iota 5))
>
> In SRFI 7, this would be written as:
>
>     (program (requires srfi-1)
>       (code (display (iota 5))))
>
> Felix objects to this on grounds of complexity and extra typing.  With
> this new amendment proposal, the program written with SRFI 7* would be:
>
>     (program (requires srfi-1))
>     (display (iota 5))
>
> which retains all existing functionality of SRFI 7 -- the feature
> conditionalization -- and all brevity of SRFI 55's REQUIRE-EXTENSION --
> it's only a single character longer, in fact --; furthermore, it is
> still compatible with module systems such as that of Scheme48, because
> the module data -- the configuration language -- is _still_ entirely
> disjoint from Scheme, unlike the present SRFI 55's REQUIRE-EXTENSION;
> the configuration language is very clearly separated from Scheme in
> that the PROGRAM form is the first in the file, and every following S-
> expression is Scheme.  I propose that SRFI 55 be revised to define this
> amendment/extension to SRFI 7, which I expect will satisfy the demands
> in brevity of Felix as well as retain the functionality of SRFIs 0 & 7,
> and moreover still be as extremely portable as SRFI 7.

Just one question: what makes

(program (required srfi-1))
(display (iota 5))

more portable (in the sense of being compatible with S48's module system),
than

(require-extension (srfi 1))
(display (iota 55))

???

(provided SRFI-55 is changed in such a way that it's recommended
use is as the first expression in a file)

> (While they're
> at it, the SRFI 55 authors could also include a statement about trying
> to make features available if they're not already available, if they
> still consider the absence of such a statement in SRFI 7 an important
> issue.)

Well, as the document says, it's mostly at the discretion of the implementation
to specify what it means to "make an extension available", but it should perhaps
be elaborated a little.

cheers,
felix