* felix winkelmann <[email protected]> [120813 12:34]:
> The attached patch fixes the computation of stack depth beyond
> C_stack_limit. The old way of calculating the depth could overflow if
> the stack is located very high in memory. This was causing incorrect
> stack-overflow errors on some 64-bit systems (sparc64 and x86-64). The
> new method checks whether the stack-pointer is beyond the limit
> computed at startup, including a 64k "slack" area to allow (modestly)
> deep recursions in direct-call-optimized (simple, non-allocating, not
> externally visible) procedures, if the nursery is already mostly
> exhausted.
>
> This patch fixes ticket #895.
>
> I recommend to include this fix in the upcoming 4.8.0 release (this will
> require a new release candidate).

A minor nitpick from my side....


> +#define C_stack_overflow_check    C_stack_check1(C_stack_overflow())
> +
> +/*XXX OBSOLETE */
> +#define C_stack_check             C_stack_overflow_check
> +

According to "git grep C_stack_check" the only places where that
string is used is in the places where you replace it. Why not remove
it? Is it part of the API?

Kind regards,

Christian


--
Be right back -- Godot.

_______________________________________________
Chicken-hackers mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to