chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] types.db incorrect


From: Felix
Subject: Re: [Chicken-users] types.db incorrect
Date: Thu, 08 Sep 2011 08:14:59 -0400 (EDT)

From: Jörg F. Wittenberger <address@hidden>
Subject: Re: [Chicken-users] types.db incorrect
Date: 08 Sep 2011 13:32:07 +0200

> On Sep 6 2011, Felix wrote:
> 
>>Thanks agauin, Joerg. I pushed this change as well.
>>
>>> If not, how would I turn the consequence - which is wrong code at this
>>> time - into a warning?
>>
>>You can check the results of specialization with "-debug P" (which
>>dumps
>>the program after specialization has taken place). "-debug x" shows
>>the
>>specializations done. You can switch off specialization by just
>>compiling
>>with "-O2". That way you can check whether "-specialize" (enabled by
>>-O3 and higher) results in incorrect code.
> 
> Is there a switch to print the programm after basic macro expansion?

-debug 2

> 
> Somehow my problem is all too strange.  After about four years running
> all sudden the tree is sometimes not balanced.  I inserted code to
> check
> some invariants.  Since I did I don't understand anything at all
> anymore.
> 
> The same two tests applied twice.  First as two single tests:
> 
> (,%if (,(red? 't) r)
>   (dbg2 "delmin: new root is bad (red) " r))
> (,%if (,(red? 't) (,root-node t))
>   (dbg2 "delmin: new root node is bad (red) " r))
> ,(check-tree t-delete-min 't)
> 
> And as the first thing in check-tree combined within an "or":
> 
> (and
> (or (,(red? 't) t) (,(red? 't) (,root-node t)))
> (begin
>   (dbg2 'root-red (,(red? 't) t) (,(red? 't) (,root-node t)) t)
> #t)
> 
> The second one fires.  But not until after several hundred random
> insert
> and deletions of the minimum.
> 
> However the strange thing is, both the values are explicitly set to
> "black" at the line before the test.
> 
> I just went over the -debug P output.  It' hard to be sure with all
> those generated names, but as far as I can see, there is no way
> codewise
> that could make a black (#t) to red (#f).  Short of magic.
> 
> Unfortunately this situation paralyses me.  I too much depend on it.

Does it work with specialization turned off? (-O2 only)


cheers,
felix



reply via email to

[Prev in Thread] Current Thread [Next in Thread]