Re: [scheme-reports-wg1] John Cowan's votes on the sixth ballot Alex Shinn (13 Jul 2012 05:04 UTC)

Re: [scheme-reports-wg1] John Cowan's votes on the sixth ballot Alex Shinn 13 Jul 2012 05:04 UTC

On Fri, Jul 13, 2012 at 1:44 PM, John Cowan <cowan@mercury.ccil.org> wrote:
> Alex Shinn scripsit:
>
>> > #458 Remove the formal semantics from the report
>> Please read the ballot item - the semantics have already been fixed.
>
> For dynamic-wind, yes.  There is still eval and interaction-environment
> missing (which means also REPL semantics, specifically the replacement of
> top-level definitions by new ones) and the broken model of the undefined
> order of evaluation (it shuffles the order, but only once per lexical
> instance of a procedure call, not per call).

Eval is in an optional library, there's no need to add it.
The undefined order is not broken since any order would
be valid, but we could certainly change it to shuffle once
per call.  That's a pretty minor point though.  You can
argue you'd like to improve the semantics, I think
claiming they are "broken" is extreme and misleading.

>> > #448 Add library declaration include-library-declarations
>> > Preferences: include-library-declarations
>> > Rationale:  Though this name is verbose even by Scheme standards, what
>> > it provides is very helpful.  In simple implementations, it can be the
>> > same as include.
>>
>> I agree with your vote, but your motivation seems incorrect.  It is very
>> much impossible for this to be the same as include, and the confusion
>> involved here leads me to question your motivation for enforcing the
>> order of processing in #353.
>
> It would be so in a system that allows definitions and expressions directly
> in libraries (a non-portable extension) and allows library declarations
> intermingled with code (another non-portable extension).

No, you're really not understanding.  The entire premise of
the module system is that the library declarations and Scheme
code live in two fundamentally different spaces.  You can
import bindings like `import', `export' and `include' from
libraries in any order and they won't conflict with the existing
library declarations.

--
Alex