difference between using eval from the interactive prompt and from a file?
Per Bothner
per@bothner.com
Fri Nov 11 20:06:00 GMT 2011
On 11/11/2011 11:21 AM, Helmut Eller wrote:
> * Per Bothner [2011-11-11 17:55] writes:
>
>> On 11/11/2011 02:02 AM, Helmut Eller wrote:
>>> R7RS section 5.1 Programs:
>>>
>>> Expressions occurring at the top level of a program are
>>> interpreted imperatively; they are executed in order when
>>> the program is invoked or loaded, and typically perform
>>> some kind of initialization.
>>>
>>> So I think this is one more case where Kawa is not standard conform.
>>
>> Ah, but when you say "kawa evaltest.scm" evaltest.scm is treated as a
>> module, not a program. If you want evaltest.scm to be treated as a
>> R7RS "program" use the -f flag. (Of course most of the time it
>> doesn't matter - in Kawa certain modules are often also programs,
>> or at least behave the same way when loaded.)
>>
>> So this is not an example of Kawa non-conformance.
>
> (with-language-lawyer-hat-on
>
> R7RS 5.5.1. Module Syntax (page 24):
>
> The top-level forms in a module are executed in the order in
> which they occur when the module is loaded.
>
> Seems to suggest that programs and modules should do the same.
Top-level forms in a (Kawa) module *are* executed in the order in
which they occur when the module is loaded.
The issue is
(a) while bindings are exported; and
(b) *how* are they exported.
In a (R7RS) module exported bindings are only visible when
imported into another module. I haven't found a clear statement
in R7RS about how one can import a module into the top-level
environment. (Either I haven't read it carefully enough, or
that is arguably a flaw in R7RS. I'll read it more carefully
when the next draft comes out.) It may be better to add the
bindings to the user-environment *before* evaluating the body
instead of *after*; however that has some difficulties too.
I suspect there are some conformance issue in the expansion process
(chapter 10 in R6RS - didn't find it in R7RS draft). But I don't
think it makes a difference in practice.
--
--Per Bothner
per@bothner.com http://per.bothner.com/
More information about the Kawa
mailing list