Skip to content

Conversation

@markshannon
Copy link
Member

@markshannonmarkshannon commented Dec 13, 2022

Replaces

typedefuint16_t_Py_CODEUNIT;

which omits important details and is arguably wrong, with

typedefunion{int16_tcache; struct{uint8_topcode; uint8_toparg}} _Py_CODEUNIT;

which is clearer both to me and to the compiler.

@markshannonmarkshannon changed the title Redefine _Py_CODEUNIT as a union to clarify structure of code unit.GH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code unit.Dec 13, 2022
uint16_tcache;
struct{
uint8_topcode;
uint8_toparg;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the idea to later add more opargs here?

Copy link
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up to you.
I guess it depends on how you want to align the instructions.

16 bit alignment

typedefunion{int16_tcache; struct{uint8_topcode; uint8_toparg0}; struct{uint8_toparg1; uint8_toparg2}} _Py_CODEUNIT;

32 bit alignment

typedefunion{int32_tcache; struct{uint8_topcode; uint8_toparg0; uint8_toparg1; uint8_toparg2}} _Py_CODEUNIT;

@markshannon
Copy link
MemberAuthor

Closing and reopening to kick CI

@markshannonmarkshannon merged commit 6997e77 into python:mainDec 14, 2022
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 Fedora Stable Clang Installed 3.x has failed when building commit 6997e77.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/350/builds/2887) and take a look at the build logs.
  4. Check if the failure is related to this commit (6997e77) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/350/builds/2887

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 40226, done. remote: Counting objects: 0% (1/25295) remote: Counting objects: 1% (253/25295) remote: Counting objects: 2% (506/25295) remote: Counting objects: 3% (759/25295) remote: Counting objects: 4% (1012/25295) remote: Counting objects: 5% (1265/25295) remote: Counting objects: 6% (1518/25295) remote: Counting objects: 7% (1771/25295) remote: Counting objects: 8% (2024/25295) remote: Counting objects: 9% (2277/25295) remote: Counting objects: 10% (2530/25295) remote: Counting objects: 11% (2783/25295) remote: Counting objects: 12% (3036/25295) remote: Counting objects: 13% (3289/25295) remote: Counting objects: 14% (3542/25295) remote: Counting objects: 15% (3795/25295) remote: Counting objects: 16% (4048/25295) remote: Counting objects: 17% (4301/25295) remote: Counting objects: 18% (4554/25295) remote: Counting objects: 19% (4807/25295) remote: Counting objects: 20% (5059/25295) remote: Counting objects: 21% (5312/25295) remote: Counting objects: 22% (5565/25295) remote: Counting objects: 23% (5818/25295) remote: Counting objects: 24% (6071/25295) remote: Counting objects: 25% (6324/25295) remote: Counting objects: 26% (6577/25295) remote: Counting objects: 27% (6830/25295) remote: Counting objects: 28% (7083/25295) remote: Counting objects: 29% (7336/25295) remote: Counting objects: 30% (7589/25295) remote: Counting objects: 31% (7842/25295) remote: Counting objects: 32% (8095/25295) remote: Counting objects: 33% (8348/25295) remote: Counting objects: 34% (8601/25295) remote: Counting objects: 35% (8854/25295) remote: Counting objects: 36% (9107/25295) remote: Counting objects: 37% (9360/25295) remote: Counting objects: 38% (9613/25295) remote: Counting objects: 39% (9866/25295) remote: Counting objects: 40% (10118/25295) remote: Counting objects: 41% (10371/25295) remote: Counting objects: 42% (10624/25295) remote: Counting objects: 43% (10877/25295) remote: Counting objects: 44% (11130/25295) remote: Counting objects: 45% (11383/25295) remote: Counting objects: 46% (11636/25295) remote: Counting objects: 47% (11889/25295) remote: Counting objects: 48% (12142/25295) remote: Counting objects: 49% (12395/25295) remote: Counting objects: 50% (12648/25295) remote: Counting objects: 51% (12901/25295) remote: Counting objects: 52% (13154/25295) remote: Counting objects: 53% (13407/25295) remote: Counting objects: 54% (13660/25295) remote: Counting objects: 55% (13913/25295) remote: Counting objects: 56% (14166/25295) remote: Counting objects: 57% (14419/25295) remote: Counting objects: 58% (14672/25295) remote: Counting objects: 59% (14925/25295) remote: Counting objects: 60% (15177/25295) remote: Counting objects: 61% (15430/25295) remote: Counting objects: 62% (15683/25295) remote: Counting objects: 63% (15936/25295) remote: Counting objects: 64% (16189/25295) remote: Counting objects: 65% (16442/25295) remote: Counting objects: 66% (16695/25295) remote: Counting objects: 67% (16948/25295) remote: Counting objects: 68% (17201/25295) remote: Counting objects: 69% (17454/25295) remote: Counting objects: 70% (17707/25295) remote: Counting objects: 71% (17960/25295) remote: Counting objects: 72% (18213/25295) remote: Counting objects: 73% (18466/25295) remote: Counting objects: 74% (18719/25295) remote: Counting objects: 75% (18972/25295) remote: Counting objects: 76% (19225/25295) remote: Counting objects: 77% (19478/25295) remote: Counting objects: 78% (19731/25295) remote: Counting objects: 79% (19984/25295) remote: Counting objects: 80% (20236/25295) remote: Counting objects: 81% (20489/25295) remote: Counting objects: 82% (20742/25295) remote: Counting objects: 83% (20995/25295) remote: Counting objects: 84% (21248/25295) remote: Counting objects: 85% (21501/25295) remote: Counting objects: 86% (21754/25295) remote: Counting objects: 87% (22007/25295) remote: Counting objects: 88% (22260/25295) remote: Counting objects: 89% (22513/25295) remote: Counting objects: 90% (22766/25295) remote: Counting objects: 91% (23019/25295) remote: Counting objects: 92% (23272/25295) remote: Counting objects: 93% (23525/25295) remote: Counting objects: 94% (23778/25295) remote: Counting objects: 95% (24031/25295) remote: Counting objects: 96% (24284/25295) remote: Counting objects: 97% (24537/25295) remote: Counting objects: 98% (24790/25295) remote: Counting objects: 99% (25043/25295) remote: Counting objects: 100% (25295/25295) remote: Counting objects: 100% (25295/25295), done. remote: Compressing objects: 0% (1/11746) remote: Compressing objects: 1% (118/11746) remote: Compressing objects: 2% (235/11746) remote: Compressing objects: 2% (297/11746) remote: Compressing objects: 3% (353/11746) remote: Compressing objects: 4% (470/11746) remote: Compressing objects: 5% (588/11746) remote: Compressing objects: 6% (705/11746) remote: Compressing objects: 7% (823/11746) remote: Compressing objects: 7% (928/11746) remote: Compressing objects: 8% (940/11746) remote: Compressing objects: 9% (1058/11746) remote: Compressing objects: 10% (1175/11746) remote: Compressing objects: 11% (1293/11746) remote: Compressing objects: 12% (1410/11746) remote: Compressing objects: 13% (1527/11746) remote: Compressing objects: 14% (1645/11746) remote: Compressing objects: 14% (1647/11746) remote: Compressing objects: 15% (1762/11746) remote: Compressing objects: 16% (1880/11746) remote: Compressing objects: 17% (1997/11746) remote: Compressing objects: 18% (2115/11746) remote: Compressing objects: 19% (2232/11746) remote: Compressing objects: 20% (2350/11746) remote: Compressing objects: 21% (2467/11746) remote: Compressing objects: 22% (2585/11746) remote: Compressing objects: 23% (2702/11746) remote: Compressing objects: 24% (2820/11746) remote: Compressing objects: 25% (2937/11746) remote: Compressing objects: 26% (3054/11746) remote: Compressing objects: 27% (3172/11746) remote: Compressing objects: 27% (3247/11746) remote: Compressing objects: 28% (3289/11746) remote: Compressing objects: 29% (3407/11746) remote: Compressing objects: 30% (3524/11746) remote: Compressing objects: 31% (3642/11746) remote: Compressing objects: 32% (3759/11746) remote: Compressing objects: 33% (3877/11746) remote: Compressing objects: 34% (3994/11746) remote: Compressing objects: 35% (4112/11746) remote: Compressing objects: 36% (4229/11746) remote: Compressing objects: 37% (4347/11746) remote: Compressing objects: 38% (4464/11746) remote: Compressing objects: 39% (4581/11746) remote: Compressing objects: 40% (4699/11746) remote: Compressing objects: 41% (4816/11746) remote: Compressing objects: 42% (4934/11746) remote: Compressing objects: 43% (5051/11746) remote: Compressing objects: 44% (5169/11746) remote: Compressing objects: 45% (5286/11746) remote: Compressing objects: 46% (5404/11746) remote: Compressing objects: 47% (5521/11746) remote: Compressing objects: 48% (5639/11746) remote: Compressing objects: 49% (5756/11746) remote: Compressing objects: 50% (5873/11746) remote: Compressing objects: 51% (5991/11746) remote: Compressing objects: 52% (6108/11746) remote: Compressing objects: 53% (6226/11746) remote: Compressing objects: 54% (6343/11746) remote: Compressing objects: 55% (6461/11746) remote: Compressing objects: 56% (6578/11746) remote: Compressing objects: 57% (6696/11746) remote: Compressing objects: 58% (6813/11746) remote: Compressing objects: 59% (6931/11746) remote: Compressing objects: 60% (7048/11746) remote: Compressing objects: 61% (7166/11746) remote: Compressing objects: 62% (7283/11746) remote: Compressing objects: 63% (7400/11746) remote: Compressing objects: 64% (7518/11746) remote: Compressing objects: 65% (7635/11746) remote: Compressing objects: 66% (7753/11746) remote: Compressing objects: 67% (7870/11746) remote: Compressing objects: 68% (7988/11746) remote: Compressing objects: 69% (8105/11746) remote: Compressing objects: 70% (8223/11746) remote: Compressing objects: 71% (8340/11746) remote: Compressing objects: 72% (8458/11746) remote: Compressing objects: 73% (8575/11746) remote: Compressing objects: 74% (8693/11746) remote: Compressing objects: 75% (8810/11746) remote: Compressing objects: 76% (8927/11746) remote: Compressing objects: 77% (9045/11746) remote: Compressing objects: 78% (9162/11746) remote: Compressing objects: 79% (9280/11746) remote: Compressing objects: 80% (9397/11746) remote: Compressing objects: 81% (9515/11746) remote: Compressing objects: 82% (9632/11746) remote: Compressing objects: 83% (9750/11746) remote: Compressing objects: 84% (9867/11746) remote: Compressing objects: 85% (9985/11746) remote: Compressing objects: 86% (10102/11746) remote: Compressing objects: 87% (10220/11746) remote: Compressing objects: 88% (10337/11746) remote: Compressing objects: 89% (10454/11746) remote: Compressing objects: 90% (10572/11746) remote: Compressing objects: 91% (10689/11746) remote: Compressing objects: 92% (10807/11746) remote: Compressing objects: 93% (10924/11746) remote: Compressing objects: 94% (11042/11746) remote: Compressing objects: 95% (11159/11746) remote: Compressing objects: 96% (11277/11746) remote: Compressing objects: 97% (11394/11746) remote: Compressing objects: 98% (11512/11746) remote: Compressing objects: 99% (11629/11746) remote: Compressing objects: 100% (11746/11746) remote: Compressing objects: 100% (11746/11746), done.  Receiving objects: 0% (1/40226) fatal: write error: No space left on devicefatal: fetch-pack: invalid index-pack outputchmod: cannot access 'target/': No such file or directorymake: *** No rule to make target 'distclean'. Stop.

@markshannon
Copy link
MemberAuthor

Buildbot has run out of storage

@markshannonmarkshannon deleted the nice-codeunit branch December 14, 2022 11:25
carljm added a commit to carljm/cpython that referenced this pull request Dec 14, 2022
* main: (103 commits) pythongh-100248: Add missing `ssl_shutdown_timeout` parameter in `asyncio` docs (python#100249) Assorted minor fixes for specialization stats. (pythonGH-100219) pythongh-100176: venv: Remove redundant compat code for Python <= 3.2 (python#100177) pythonGH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code unit. (pythonGH-100223) pythongh-99955: undef ERROR and SUCCESS before redefining (fixes sanitizer warning) (python#100215) pythonGH-100206: use versionadded for the addition of sysconfig.get_default_scheme (python#100207) pythongh-81057: Move _Py_RefTotal to the "Ignored Globals" List (pythongh-100203) pythongh-81057: Move Signal-Related Globals to _PyRuntimeState (pythongh-100085) pythongh-81057: Move faulthandler Globals to _PyRuntimeState (pythongh-100152) pythongh-81057: Move tracemalloc Globals to _PyRuntimeState (pythongh-100151) pythonGH-100143: Improve collecting pystats for parts of runs (pythonGH-100144) pythongh-99955: standardize return values of functions in compiler's code-gen (python#100010) pythongh-79218: Define `MS_WIN64` macro for Mingw-w64 64bit on Windows (pythonGH-100137) Fix: typo (Indention) (pythonGH-99904) pythongh-96715 Remove redundant NULL check in `profile_trampoline` function (python#96716) pythongh-100176: remove incorrect version compatibility check from argument clinic (python#100190) clarify the 4300-digit limit on int-str conversion (python#100175) pythongh-70393: Clarify mention of "middle" scope (python#98839) pythongh-99688: Fix outdated tests in test_unary (python#99712) pythongh-100174: [Enum] Correct PowersOfThree example. (pythonGH-100178) ...
miss-islington pushed a commit that referenced this pull request Dec 15, 2022
Typo introduced in #100223. Automerge-Triggered-By: GH:brandtbucher
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@markshannon@bedevere-bot@iritkatriel