GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — gh-111650: Ensure pyconfig.h includes Py_GIL_DISABLED on Windows by zooba · Pull Request #112778 · python/cpython Conversation
|
| #define HAVE_X509_VERIFY_PARAM_SET1_HOST 1 | ||
|
|
||
| /* Define if you want to disable the GIL */ | ||
| #undef Py_GIL_DISABLED |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Do you want to rename the PC/pyconfig.h? It seems like some tools might treat the input template as if it's the true pyconfig.h file.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
It's not actually a template, it's a totally valid and usable header file. In the default case (for now), Py_GIL_DISABLED is undefined, and we just change that on build if requested.
For editing in an IDE, we need some kind of actual header file available or else all the code assistance tools will fail. Rather than requiring the IDE understand the build directory (which VS can do, but others may not), this allows us to have a default GIL_DISABLED header before building and then the correct one when actually building.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
The failure in the nogil build is an access violation/segfault (see the end of the build step where we get the real exit code - 0xC0000005), and it doesn't repro on my own machine. I've merged from master again in case it was unlucky and a re-run helps, but otherwise this could be a tricky one to diagnose. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@zooba, I'll see if I can reproduce it locally |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
The files in |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Ah, that makes sense. Easily fixed |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Actually, I can't see how that happens unless your build differs from mine. (Side note - we should enable verbose output in CI so that we could see exactly what was happening there... the default output isn't detailed enough.) What is happening is that the extension modules that are outside the core DLL are getting the unmodified header, because they have independent I'll add a new project just to do the header file update, so that way the dependencies/incremental build can work properly and we don't have to repeat the process for every module. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
That's happening too for me (later on in the build), but files like |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
There shouldn't be a case where |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
And yet, I'll hack things together a different way. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I fixed the test, and found that the crash is because I don't see any obvious reason for the failure, and |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@zooba - I haven't seen the With that change I'm able to build |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
However, |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Yeah, apparently it works today? I see the last push I did also didn't crash. Hopefully it's not uninitialised memory, as that would be annoying to track down. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
!buildbot windows |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
🤖 New build scheduled with the buildbot fleet by @colesbury for commit 6c067b7 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
It looks like cpython/Tools/peg_generator/pegen/build.py Lines 140 to 145 in 1c5fc02
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Output directory is the one to add ( I do intend to send a PR to setuptools for this, I just haven't yet, and I'd be more inclined to skip the test until that's in. Or if we've actually vendored setuptools, we can just patch our copy for now.1 I'm pretty sure setuptools trusts us enough to merge the change before we merge ours, but I wouldn't blame them if they didn't - it's not their circular dependency. Footnotes
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
My guess is that this is due to #86179 which I should probably just fix (pretty sure it only needs a |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
!buildbot windows |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
🤖 New build scheduled with the buildbot fleet by @zooba for commit c74133b 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@colesbury Anything else you think should be handled in this PR? Once this is in (and my other one to fix symlinks and simplify the new sysconfig code) I've got a broader range of build changes to make, so we likely won't have to live with this particular code for long. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| - uses: actions/checkout@v4 | ||
| - name: Build CPython | ||
| run: .\PCbuild\build.bat -e -d -p Win32 ${{ inputs.free-threaded && '--disable-gil' || '' }} | ||
| run: .\PCbuild\build.bat -e -d -v -p Win32 ${{ inputs.free-threaded && '--disable-gil' || '' }} |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Did you want to keep this?
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
I don't think it slows down CI enough to be a problem.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.