-
-
Notifications
You must be signed in to change notification settings - Fork 30.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-117139: A StackRef Debugging Mode #121134
base: main
Are you sure you want to change the base?
Changes from 9 commits
ddf839e
0b0fa3d
d2c7bb9
2c6860a
ba49e58
18d26ce
5ff2a57
e2563c6
fe687c3
a6e6576
a058c34
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,10 @@ on: | |
required: false | ||
type: boolean | ||
default: false | ||
stackref-debug: | ||
required: false | ||
type: boolean | ||
default: false | ||
os-matrix: | ||
required: false | ||
type: string | ||
|
@@ -54,11 +58,14 @@ jobs: | |
--config-cache \ | ||
--with-pydebug \ | ||
${{ inputs.free-threading && '--disable-gil' || '' }} \ | ||
${{ inputs.stackref-debug && '--with-pystackrefdebug' || '' }} \ | ||
--prefix=/opt/python-dev \ | ||
--with-openssl="$(brew --prefix openssl@3.0)" | ||
- name: Build CPython | ||
run: make -j8 | ||
- name: Display build info | ||
run: make pythoninfo | ||
- name: Tests | ||
run: make test | ||
# Stackref debug is 3.5x slower than normal CPython, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about using the set of tests for profiling? It is about 40 tests instead of the usual ~400, so would give decent coverage without being too slow. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sorry how do I run those specific tests? What command with |
||
# so we only run it on a restricted subset of tests. | ||
run: ${{ inputs.stackref-debug && './python.exe -m test test_typing' || 'make test' }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Added a new ``--with-pystackrefs`` configure build option for CPython. This | ||
option is fully experimental and may be modified or removed without prior | ||
notice. Enabling the option turns on internal handle-like debugging for | ||
CPython's main interpreter loop. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we do this for normal builds as well?
The linux machines are cheapest, so we should probably use those.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't because normal builds require all the inline functions to be macros #121263. And these are too complicated to fit into a single macro.