[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Compilation issue with v4.7.0
From: |
Paul Colby |
Subject: |
Re: [Chicken-users] Compilation issue with v4.7.0 |
Date: |
Fri, 12 Aug 2011 09:40:43 -0700 |
On Aug 12, 2011, at 9:16 AM, Pedro Henrique Antunes de Oliveira wrote:
> I am not sure why this happens, but once I've heard that TOP LEVEL
> execution is different from normal execution, inside a lambda
> expression for example.
>
> Try compiling this
>
> (let ((A #t)
> (B 'undefined))
> (if A
> (set! B 'good)
> (set! B 'bad))
> (print B))
>
> It runs as expected.
>
> Your problem is probably related to how top level evaluations are executed.
>
> If I recall correctly, continuations, at top level, behave differently too.
>
> On Fri, Aug 12, 2011 at 11:56 AM, Paul Colby <address@hidden> wrote:
>> Hi,
>> I tried the following file as a prelude to doing conditional compilation and
>> ran into the following snag,
>> <snip>
I already had tried this workaround but was not be able to do top level defines
within the let making conditional compilation less interesting. It might be
worth mentioning that I
also tried my little test program with the -O4 switch and it works as expected
yielding 'good' -On
where n is 0, 1, 2, or 3 prints 'undefined' per the scoping rules of scheme.
Clearly, top level
execution differences shouldn't depend on the compilers optimization level.
Thanks for taking a look.
Regards