chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] [PATCH] Add detection for hitting rest argument co


From: Jim Ursetto
Subject: Re: [Chicken-hackers] [PATCH] Add detection for hitting rest argument count limit on direct procedure application (for #910, sort-of)
Date: Wed, 24 Jul 2013 14:27:47 -0500

Although this patch looks good and tests out fine, during the tests, chicken 
bloats to 1GB and gcc to 500MB, and they take forever to build apply-test -- 
probably because the .c file is 40MB!  I'm not sure it's wise to apply as-is; 
it may kill some machines.  Suggestions?

Jim

On Jul 24, 2013, at 2:07 PM, Peter Bex <address@hidden> wrote:

> Hi all,
> 
> As we figured out in ticket #910, there are two problems when directly
> invoking procedures with a large number of rest arguments (not via APPLY):
> 
> - there's a bug in GCC 4.5's code generation which causes random errors
>   like segfaults and illegal instructions to occur.
> - even with a correct C compiler, when going beyond the temporary stack's
>   limit, this isn't checked and segfaults will occur.
> 
> Here's a patch to add detection for the latter situation, and an improved
> version of the apply-test, which will detect the former situation as well.
> This can help users to determine whether their CHICKEN is built correctly
> and can produce working executables with procedure applications of large
> argument counts, and tells them to upgrade GCC if it segfaults.
> 
> Unfortunately, the test takes rather long to build (it has to be
> compiled now), but I think it's worth it regardless as it will help
> prevent spurious bug reports by detecting both error situations.
> 
> Cheers,
> Peter
> -- 
> http://www.more-magic.net
> <0001-Add-checks-for-hitting-the-rest-arg-count-limit-on-d.patch>_______________________________________________
> Chicken-hackers mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/chicken-hackers




reply via email to

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