[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64
From: |
felix winkelmann |
Subject: |
Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux |
Date: |
Mon, 16 Mar 2009 21:09:41 +0100 |
On Mon, Mar 16, 2009 at 2:32 PM, Taylor Venable <address@hidden> wrote:
>
> Usually when it hangs, I end up sending it ^C when it's inside mark().
> So if I step out to C_reclaim() I can step through from line 2802 (or
> sometimes 2805; in runtime.c) to line 3016. This I do in GDB using
> the "next" command. When I hit line 3016 which is
>
> C_longjmp(C_restart, 1);
>
> the program hangs again. If I send it ^C again I'm back in that same
> region of code again inside C_reclaim. This happens infinitely, as
> far as I can tell.
Right. The GC seems to loop.
>
> And tracing a bit further, it looks like C_library_toplevel() is
> continuously calling C_reclaim(). The code that looks like (library.c
> line 6616):
>
> if(!C_demand(931)){
> C_save(t1);
> C_reclaim((void*)toplevel_trampoline,NULL);}
>
> keeps getting run; this is what's calling the C_reclaim() over and
> over again. In fact, it seems that execution never makes it out of
> this loop; just these three lines ad infinitum.
>
> I found that the result of C_demand is based on C_stack_pointer and
> C_stack_limit. I was unable to determine the former using GDB, but in
> this case C_stack_limit is always 0x7FFF83326C30.
>
> Hope this helps. I've put my library.c on my website, since it seems
> to be generated code: http://real.metasyntax.net:2357/tmp/library.c.gz
Well done, Taylor. Chicken coalesces all allocations inside a single
generated C procedure and allocates it as one chunk. It seems here
that the stack is already too small to hold the data, even after a minor
GC was invoked. Can you reproduce the hang with larger settings for
"-:s..."? If you add "-:d", you should see messages like
[debug] stack resized to XXXX bytes
If you can't reproduce the hang with higher settings, change the makefile
(defaults.make or rules.make and pass "-:s<goodvalue>" to the "chicken-boot"
invocations and look how far it gets (BTW, what does "./chicken-boot -:d" show?)
Then we probably have a precompiled bootstrapping compiler with a too
low nursery setting, even though this used to work. It also may be something
completely different.
cheers,
felix
- [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/04
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/06
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/06
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/07
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/09
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/10
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/11
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/15
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/16
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux,
felix winkelmann <=
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/16
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/17
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/18
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/18
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/20
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Ivan Raikov, 2009/03/22
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/23
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/23
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Alex Shinn, 2009/03/24
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Kon Lovett, 2009/03/24