A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2000-October/009747.html below:

[Python-Dev] test_sre.py fails on Win64 because PyOS_CheckStack *never* fails

[Python-Dev] test_sre.py fails on Win64 because PyOS_CheckStack *never* fails [Python-Dev] test_sre.py fails on Win64 because PyOS_CheckStack *never* failsFredrik Lundh Fredrik Lundh" <effbot@telia.com
Wed, 4 Oct 2000 23:43:41 +0200
trent wrote:
> This is because PyOS_CheckStack seem to *never* fail on Win64. Three
> possibilites:
>   (1) I don't understand the PyOS_CheckStack code or I am misintepreting the
>       problem.
>   (2) The semantics of _alloca() has changed for Win64 such that a stack
>       overflow exception is no longer thrown if space cannot be allocated.
>       NOTE: I changed the number of pointers allocated in PyOS_CheckStack
>             from 2048 to over 1 *Tera*byte and it *still* did not fail.

me again: didn't read the note carefully enough, so I didn't
quite figure out what you said...

:::

what happens if you run this program (on my win95 box, it
counts up to 8, and stops).

#include <malloc.h>
#include <excpt.h>

int __inline
PyOS_CheckStack()
{
    __try {
        _alloca(100000);
        return 0;
    } __except (EXCEPTION_EXECUTE_HANDLER) {
        /* just ignore all errors */
    }
    return 1;
}

void
callme(int i)
{
    char buf[100000];
    if (PyOS_CheckStack())
        return;
    printf("%d\n", i);
    memset(buf, 0, sizeof buf);
    callme(i+1);
}

int
main()
{
    callme(0);
}

:::

if it goes on and on and on, check the assembler output from
this program.

(maybe the win64 compiler is smarter than I -- if it realizes that I
don't actually use the return value from _alloca, it may of course
remove the entire thing...)

</F>




RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4