[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] non-termination with (declare (inline ...)
From: |
Felix |
Subject: |
Re: [Chicken-hackers] [PATCH] non-termination with (declare (inline ...)) |
Date: |
Fri, 29 Mar 2013 19:13:21 +0100 (CET) |
From: Peter Bex <address@hidden>
Subject: Re: [Chicken-hackers] [PATCH] non-termination with (declare (inline
...))
Date: Thu, 28 Mar 2013 19:58:43 +0100
> On Sun, Mar 17, 2013 at 11:31:04PM +0100, Felix wrote:
>> The attached patch changes the "inline" declaration, when used with an
>> identifier, to merely mark that identifier as potentially inlinable by
>> effectively giving it "local" semantics (the variable is externally
>> visible but not expected to be changed from outside of this
>> compilation unit). This leaves the decision to inline to the compiler
>> and does not force inlining, as was previously done, and which could
>> lead to non-termination in case the inlined procedure called itself
>> recursively.
>
> I'm trying to figure out how this relates to inline-global.
>
> I noticed that inline-global calls
> (cut mark-variable <> '##compiler#inline-global 'no) for
> each identifier. Shouldn't that be 'yes? And can this cause
> the same kind of infinite loop?
>
It's the (not (inline-global ...)) declaration you're looking at,
I think.
cheers,
felix