python / cpython

The Python programming language
https://www.python.org/
Other
59.68k stars 28.92k forks source link

test_sre.py fails on Win64 because PyOS_CheckStack *never* f #33325

Closed bdaf8532-ded6-4d4c-9bb3-51fd76040dc1 closed 23 years ago

bdaf8532-ded6-4d4c-9bb3-51fd76040dc1 commented 23 years ago
BPO 216516

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields: ```python assignee = None closed_at = created_at = labels = ['interpreter-core'] title = 'test_sre.py fails on Win64 because PyOS_CheckStack *never* f' updated_at = user = 'https://bugs.python.org/tmick' ``` bugs.python.org fields: ```python activity = actor = 'tmick' assignee = 'tmick' closed = True closed_date = None closer = None components = ['Interpreter Core'] creation = creator = 'tmick' dependencies = [] files = [] hgrepos = [] issue_num = 216516 keywords = [] message_count = 3.0 messages = ['1987', '1988', '1989'] nosy_count = 2.0 nosy_names = ['effbot', 'tmick'] pr_nums = [] priority = 'normal' resolution = 'fixed' stage = None status = 'closed' superseder = None type = None url = 'https://bugs.python.org/issue216516' versions = [] ```

bdaf8532-ded6-4d4c-9bb3-51fd76040dc1 commented 23 years ago

There is a small thread on python-dev discussing this:

http://www.python.org/pipermail/python-dev/2000-October/016455.html

Basically I found that PyOS_CheckStack does not fire as expected on Win64. Looking into this more I got frustrated with PyOS_CheckStack's behaviour on *Win32*. There is a simple workaround (the existing RECURSIONLIMIT framework) that could simply be turned on to ensure that test[s]re.py run for Python 2.0. The PyOS_CheckStack behavious on Win64 can be figured out when it become more mainstream.

The proposed fix is:

*** Include\pythonrun.h~     Wed Oct 04 14:18:00 2000
--- Include\pythonrun.h      Wed Oct 04 13:17:17 2000
***************
*** 88,94 ****
     to a 8k margin. */
  #define PYOS_STACK_MARGIN 2048

! #if defined(WIN32) && defined(_MSC_VER)
  /* Enable stack checking under Microsoft C */
  #define USE_STACKCHECK
  #endif
--- 88,94 ----
     to a 8k margin. */
  #define PYOS_STACK_MARGIN 2048

! #if defined(WIN32) && !defined(MS_WIN64) && defined(_MSC_VER)
  /* Enable stack checking under Microsoft C */
  #define USE_STACKCHECK
  #endif
b7a711ff-d634-47b2-ad1b-41e5ae806c8b commented 23 years ago

Looks like this is the only reasonable thing to do before 2.0 final. Can you check it in?

\</F>

bdaf8532-ded6-4d4c-9bb3-51fd76040dc1 commented 23 years ago

Okay, I checked in the suggested patch