GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Opcode name by ShaharNaveh · Pull Request #7433 · RustPython/RustPython

Conversation

@ShaharNaveh

@ShaharNaveh ShaharNaveh commented Mar 14, 2026 •
edited by coderabbitai Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Refactor
    • Unified opcode naming so instruction names render consistently across the compiler and tooling.
    • Reworked formatting/display paths to use the unified opcode name source, replacing hard-coded opcode strings.
    • Standardized rendering for attribute/global/super and instrumented vs. base instruction views so opcode names appear consistently to users.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@coderabbitai

coderabbitai Bot commented Mar 14, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a public name(&self) -> &str accessor to InstructionMetadata, implements it for Instruction, PseudoInstruction, and AnyInstruction, and updates disassembly/display rendering to use this accessor instead of hard-coded opcode name literals.

Changes

Cohort / File(s) Summary
Opcode naming & display refactor
crates/compiler-core/src/bytecode/instruction.rs
Adds fn name(&self) -> &str to the InstructionMetadata trait and implements it for Instruction, PseudoInstruction, and AnyInstruction. Replaces many hard-coded opcode name strings in fmt_dis/display/instrumented rendering paths to call the new accessor and consolidates name propagation.
Manifest edits
Cargo.toml
Large manifest changes recorded (+401/-183 lines). Likely dependency/version/feature adjustments accompanying the crate changes.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Instruction 3.14 #6805 — Modifies the same crates/compiler-core/src/bytecode/instruction.rs and related InstructionMetadata/fmt logic.
  • Move Instruction enum to its own file #6693 — Changes Instruction variants and display/metadata logic within the same file.
  • Bytecode instrumented placeholder #6741 — Updates bytecode instruction metadata and formatting paths in the same module.

Suggested reviewers

  • youknowone

Poem

🐰 I hop through bytes and stitch a name,

One tiny tag for every frame,
No scattered strings left on the floor,
Opcodes sing as I explore,
I nibble bugs and bounce some more.

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Opcode name' is vague and generic, using non-descriptive terms that don't clearly convey what changed in the changeset. Consider a more descriptive title like 'Add public opcode name accessor to InstructionMetadata' that clearly explains the main change.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
  • X
  • Mastodon
  • Reddit
  • LinkedIn

Comment @coderabbitai help to get the list of available commands and usage tips.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

coderabbitai[bot]
coderabbitai Bot reviewed Mar 14, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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.

Actionable comments posted: 2

🧹 Nitpick comments (1)
crates/compiler-core/src/bytecode/instruction.rs (1)

1713-1713: Minor style inconsistency: PopBlock has no fields.

PopBlock is defined as a unit variant (line 1608), so the { .. } pattern is unnecessary. Other unit-like matches in this block don't use this pattern.

Proposed fix
-            Self::PopBlock { .. } => "POP_BLOCK",
+            Self::PopBlock => "POP_BLOCK",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/compiler-core/src/bytecode/instruction.rs` at line 1713, The match arm
for the enum variant PopBlock unnecessarily uses a struct pattern with `{ .. }`;
update the pattern in the match (the arm mapping to "POP_BLOCK") from
Self::PopBlock { .. } to the unit pattern Self::PopBlock so it matches the unit
variant definition of PopBlock in the Instruction enum.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/compiler-core/src/bytecode/instruction.rs`:
- Line 1248: The match arm for Self::CallMethodDescriptorO returns the wrong
opcode name; update the returned string from "CALL_METHOD_DESCRIPTOR" to
"CALL_METHOD_DESCRIPTOR_O" so the name matches the enum variant
CallMethodDescriptorO and CPython 3.14 naming; locate the mapping in
instruction.rs where CallMethodDescriptorO is handled and change the string
literal accordingly.
- Line 1236: The match arm for the opcode name is returning the wrong string for
the enum variant Self::CallBuiltinO; update the returned name from
"CALL_BUILTIN" to "CALL_BUILTIN_O" in the function that maps instructions to
their names (the match arm handling Self::CallBuiltinO) so the opcode string
matches the enum variant and CPython 3.14 naming.

---

Nitpick comments:
In `@crates/compiler-core/src/bytecode/instruction.rs`:
- Line 1713: The match arm for the enum variant PopBlock unnecessarily uses a
struct pattern with `{ .. }`; update the pattern in the match (the arm mapping
to "POP_BLOCK") from Self::PopBlock { .. } to the unit pattern Self::PopBlock so
it matches the unit variant definition of PopBlock in the Instruction enum.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: f06d764e-9e82-49fb-9879-9fd028212ffa

📥 Commits

Reviewing files that changed from the base of the PR and between 005860c and edf5793.

📒 Files selected for processing (1)
  • crates/compiler-core/src/bytecode/instruction.rs

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread crates/compiler-core/src/bytecode/instruction.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread crates/compiler-core/src/bytecode/instruction.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh
ShaharNaveh force-pushed the opcode-name branch from edf5793 to ebbcc89 Compare March 14, 2026 17:28
coderabbitai[bot]
coderabbitai Bot reviewed Mar 14, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/compiler-core/src/bytecode/instruction.rs`:
- Line 1248: The returned opcode name mismatches the enum variant
Self::CallMethodDescriptorO by using a digit "0" instead of letter "O"; update
the string literal "CALL_METHOD_DESCRIPTOR_0" to "CALL_METHOD_DESCRIPTOR_O" in
the match arm for CallMethodDescriptorO so the opcode name matches the enum
variant and CPython 3.14 naming convention.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: e0bbe3dc-727e-40f5-aec1-8953371dc951

📥 Commits

Reviewing files that changed from the base of the PR and between edf5793 and ebbcc89.

📒 Files selected for processing (1)
  • crates/compiler-core/src/bytecode/instruction.rs

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread crates/compiler-core/src/bytecode/instruction.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh
ShaharNaveh force-pushed the opcode-name branch from ebbcc89 to ffe1708 Compare March 14, 2026 17:34
coderabbitai[bot]
coderabbitai Bot reviewed Mar 14, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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.

🧹 Nitpick comments (1)
crates/compiler-core/src/bytecode/instruction.rs (1)

1705-1719: Minor style inconsistency in pattern matching.

Line 1713 uses Self::PopBlock { .. } but PopBlock is a unit variant (no fields). While valid Rust, this is inconsistent with line 1707 where Self::AnnotationsPlaceholder (also a unit variant) uses no braces.

Optional: Use consistent pattern style
-            Self::PopBlock { .. } => "POP_BLOCK",
+            Self::PopBlock => "POP_BLOCK",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/compiler-core/src/bytecode/instruction.rs` around lines 1705 - 1719,
The pattern match in the name() method mixes unit-variant style and struct-like
style; change the unit variant match Self::PopBlock { .. } to the consistent
unit pattern Self::PopBlock (same style as Self::AnnotationsPlaceholder) inside
the name() function so all unit variants use the same pattern form.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@crates/compiler-core/src/bytecode/instruction.rs`:
- Around line 1705-1719: The pattern match in the name() method mixes
unit-variant style and struct-like style; change the unit variant match
Self::PopBlock { .. } to the consistent unit pattern Self::PopBlock (same style
as Self::AnnotationsPlaceholder) inside the name() function so all unit variants
use the same pattern form.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: cbbc07cf-671c-4202-9a08-e334c4503173

📥 Commits

Reviewing files that changed from the base of the PR and between ebbcc89 and ffe1708.

📒 Files selected for processing (1)
  • crates/compiler-core/src/bytecode/instruction.rs

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ShaharNaveh
ShaharNaveh force-pushed the opcode-name branch from ffe1708 to 1ff97e5 Compare March 14, 2026 17:41
coderabbitai[bot]
coderabbitai Bot reviewed Mar 14, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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.

🧹 Nitpick comments (1)
crates/compiler-core/src/bytecode/instruction.rs (1)

1479-1508: Consider extracting common LoadGlobal* formatting logic.

The formatting logic for LoadGlobal, LoadGlobalBuiltin, and LoadGlobalModule is nearly identical. Per coding guidelines, when branches share common logic differing only in value, consider extracting to avoid duplication.

♻️ Suggested refactor
-            Self::LoadGlobal { namei } => {
-                let oparg = namei.get(arg);
-                let name_idx = oparg >> 1;
-                let opname = self.name();
-                if (oparg & 1) != 0 {
-                    write!(f, "{:pad$}({}, NULL + {})", opname, oparg, name(name_idx))
-                } else {
-                    write!(f, "{:pad$}({}, {})", opname, oparg, name(name_idx))
-                }
-            }
-            Self::LoadGlobalBuiltin => {
-                let oparg = u32::from(arg);
-                let name_idx = oparg >> 1;
-                let opname = self.name();
-                if (oparg & 1) != 0 {
-                    write!(f, "{:pad$}({}, NULL + {})", opname, oparg, name(name_idx))
-                } else {
-                    write!(f, "{:pad$}({}, {})", opname, oparg, name(name_idx))
-                }
-            }
-            Self::LoadGlobalModule => {
-                let oparg = u32::from(arg);
-                let name_idx = oparg >> 1;
-                let opname = self.name();
-                if (oparg & 1) != 0 {
-                    write!(f, "{:pad$}({}, NULL + {})", opname, oparg, name(name_idx))
-                } else {
-                    write!(f, "{:pad$}({}, {})", opname, oparg, name(name_idx))
-                }
-            }
+            Self::LoadGlobal { namei } => {
+                let oparg = namei.get(arg);
+                fmt_load_global(f, self.name(), oparg, name(oparg >> 1), pad)
+            }
+            Self::LoadGlobalBuiltin | Self::LoadGlobalModule => {
+                let oparg = u32::from(arg);
+                fmt_load_global(f, self.name(), oparg, name(oparg >> 1), pad)
+            }

Where fmt_load_global is a local closure or helper:

let fmt_load_global = |f: &mut fmt::Formatter<'_>, opname: &str, oparg: u32, resolved_name: &str, pad: usize| -> fmt::Result {
    if (oparg & 1) != 0 {
        write!(f, "{:pad$}({}, NULL + {})", opname, oparg, resolved_name)
    } else {
        write!(f, "{:pad$}({}, {})", opname, oparg, resolved_name)
    }
};

As per coding guidelines: "When branches differ only in a value but share common logic, extract the differing value first, then call the common logic once to avoid duplicate code."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/compiler-core/src/bytecode/instruction.rs` around lines 1479 - 1508,
The three match arms Self::LoadGlobal, Self::LoadGlobalBuiltin, and
Self::LoadGlobalModule duplicate identical formatting logic; extract the shared
formatting into a small helper or closure (e.g., fmt_load_global) that accepts
opname (from self.name()), oparg (u32 from arg), resolved_name (result of
name(name_idx)) and pad, then call that helper from each arm after computing
name_idx and converting arg as needed; ensure you reuse the existing write!(f,
...) calls inside the helper so each arm only computes its specific inputs and
invokes fmt_load_global.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@crates/compiler-core/src/bytecode/instruction.rs`:
- Around line 1479-1508: The three match arms Self::LoadGlobal,
Self::LoadGlobalBuiltin, and Self::LoadGlobalModule duplicate identical
formatting logic; extract the shared formatting into a small helper or closure
(e.g., fmt_load_global) that accepts opname (from self.name()), oparg (u32 from
arg), resolved_name (result of name(name_idx)) and pad, then call that helper
from each arm after computing name_idx and converting arg as needed; ensure you
reuse the existing write!(f, ...) calls inside the helper so each arm only
computes its specific inputs and invokes fmt_load_global.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 9e29d217-1308-40ca-acf8-648f6853f03e

📥 Commits

Reviewing files that changed from the base of the PR and between ffe1708 and 1ff97e5.

📒 Files selected for processing (1)
  • crates/compiler-core/src/bytecode/instruction.rs

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
youknowone
youknowone reviewed Mar 15, 2026
View reviewed changes

@youknowone youknowone left a comment

Copy link
Copy Markdown
Member

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 you explain more about the motivation? The metadata seems to be described in a single function before. Now we have to edit 2 places to edit the instruction. There must be benefits to justify this inconvenience

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
coderabbitai[bot]
coderabbitai Bot reviewed Mar 15, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/compiler-core/src/bytecode/instruction.rs`:
- Around line 1552-1556: The StoreFastLoadFast display arm currently writes an
extra leading space and prints raw indices; change it to match the other arms by
removing the extra leading space in the format string (use "{:pad$}" instead of
" {:pad$}") and resolve the indices to variable names before printing (use the
same resolution helper used by LoadFastLoadFast/StoreFastStoreFast on
var_nums.get(arg) to obtain store_name and load_name, then write them as
"opname{:pad$}({store_name}, {load_name})"). Ensure you still call
var_nums.get(arg) and extract the two positions but format the output with
names, not numeric indexes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 9da50c58-8802-4a52-9193-6060e6fa4226

📥 Commits

Reviewing files that changed from the base of the PR and between 1ff97e5 and e9c0911.

📒 Files selected for processing (1)
  • crates/compiler-core/src/bytecode/instruction.rs

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread crates/compiler-core/src/bytecode/instruction.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh

ShaharNaveh commented Mar 15, 2026

Copy link
Copy Markdown
Contributor Author

Could you explain more about the motivation? The metadata seems to be described in a single function before. Now we have to edit 2 places to edit the instruction. There must be benefits to justify this inconvenience

ofc, I was working on auto-generating the rust code for the opcodes (and methods). This change is extracted from those changes so the final PR wouldn't be that big. I guess it would have made more sense to implement fmt::Display instead. LMK what you think

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@youknowone

youknowone commented Mar 16, 2026

Copy link
Copy Markdown
Member

2 questions.

  • how about using naming conversion library? https://docs.rs/heck/latest/heck/
  • Can the script auto-generate fmt_dis rather than only name? (if name is only used for fmt_dis)
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh

ShaharNaveh commented Mar 16, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

2 questions.

  • how about using naming conversion library? https://docs.rs/heck/latest/heck/

Wasn't aware of this crate. I can integrate it, it seems better tbh, although I ain't sure it's worth adding a new crate for this single use when there's a simpler (?) approach, with 0 runtime cost.

  • Can the script auto-generate fmt_dis rather than only name? (if name is only used for fmt_dis)

Yes, the script aims to auto generate an Opcode enum (which implements fmt::Display as the CPython name) and the Instruction enum (and the method to get the standalone opcode for said Instruction). I forgot to mention it at #7433 (comment) 🤦 which is IMO the most compelling point

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@youknowone

youknowone commented Mar 18, 2026

Copy link
Copy Markdown
Member

you are right. adding runtime library for const data is not ideal.
If you are going to generate also fmt_dis, why don't you generate a single function like now? avoiding repeative same match patterns helps human cognitive load. Doesn't it fit in that way?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh

ShaharNaveh commented Mar 18, 2026

Copy link
Copy Markdown
Contributor Author

you are right. adding runtime library for const data is not ideal. If you are going to generate also fmt_dis, why don't you generate a single function like now? avoiding repeative same match patterns helps human cognitive load. Doesn't it fit in that way?

I can do it, I think the reduced cognitive load comes when splitting into separate functions, and one of them called name that returns a &str, it took me some time to realize that the call for stringify! was invoked inside the macro. Anyway, feel free to close this PR if you think it's not a good idea (as always)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@youknowone

youknowone commented Mar 19, 2026

Copy link
Copy Markdown
Member

When we have to edit something, editing single place is better than editing multiple place. We are very fragile to track multi source for single truth.
Guess we have to edit an opcode. (not easy to guess because I am not confident human will do it ever though) If there are multiple match patterns, they must track every guard in multiple place. This is bad for both contributor and maintainer. Contributors can easily forget to check another function. Maintainer also can easily forget that we have another function to check.

So I think this change is justified only when we have more benefit than this disadvantage.

Anyway, feel free to close this PR if you think it's not a good idea (as always)

I always would like to listen the writer's opinion. The writer usually got more feedback from editing code. Let me have enough discussion about unclear situations. You actually have to prevent me not to close PRs without enough discussion if I am doing that only because I think it is not a good idea.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh

ShaharNaveh commented Mar 19, 2026

Copy link
Copy Markdown
Contributor Author

When we have to edit something, editing single place is better than editing multiple place. We are very fragile to track multi source for single truth. Guess we have to edit an opcode. (not easy to guess because I am not confident human will do it ever though) If there are multiple match patterns, they must track every guard in multiple place. This is bad for both contributor and maintainer. Contributors can easily forget to check another function. Maintainer also can easily forget that we have another function to check.

So I think this change is justified only when we have more benefit than this disadvantage.

In the current state you're correct.

In the hypothetical scenario of having:

enum Opcode {
  A = 0,
  B = 1,
}

enum Instruction {
  A,
  B { oparg: u32 },
}

impl From<Instruction> for Opcode {
  ...
}

Would implementing fmt::Display for Opcode make sense? And moreover, do we want having two "identical" enums (one with an oparg builder and one without)?

I believe this approach is suited for resolving #6746, as you could do:

matches!(instruction.opcode(), Opcode::A | Opcode::B)

Anyway, feel free to close this PR if you think it's not a good idea (as always)

I always would like to listen the writer's opinion. The writer usually got more feedback from editing code. Let me have enough discussion about unclear situations. You actually have to prevent me not to close PRs without enough discussion if I am doing that only because I think it is not a good idea.

I like your approach

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@youknowone

youknowone commented Mar 20, 2026

Copy link
Copy Markdown
Member

I got the point. Could you include this commit when opcode is actually changed to that way? enum design must come first in that case.

ShaharNaveh reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh

ShaharNaveh commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

I got the point. Could you include this commit when opcode is actually changed to that way? enum design must come first in that case.

sounds better, I'll so that first

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh
ShaharNaveh marked this pull request as draft March 24, 2026 12:18
@ShaharNaveh ShaharNaveh mentioned this pull request Apr 14, 2026
Macro for defining opcode & instruction enums #7573
Merged
@ShaharNaveh
ShaharNaveh force-pushed the opcode-name branch from dbaab67 to ed547d6 Compare April 19, 2026 07:41
@ShaharNaveh
ShaharNaveh marked this pull request as ready for review April 19, 2026 10:18
@ShaharNaveh
ShaharNaveh requested a review from youknowone April 19, 2026 10:18
@ShaharNaveh
Use opcode name for fmt_dis
a79983e
@ShaharNaveh
ShaharNaveh force-pushed the opcode-name branch from 88b7e9d to a79983e Compare April 19, 2026 10:28
ShaharNaveh added 4 commits April 19, 2026 16:04
@ShaharNaveh
Use &str fmt
c219a71
@ShaharNaveh
Merge remote-tracking branch 'upstream/main' into opcode-name
782f865
@ShaharNaveh
Merge remote-tracking branch 'upstream/main' into opcode-name
3f2b9e7
@ShaharNaveh
Merge remote-tracking branch 'upstream/main' into opcode-name
8fc81e1
ShaharNaveh added 2 commits April 23, 2026 10:10
@ShaharNaveh
Fix merge
4d4deb9
@ShaharNaveh
correct invert display
61c5daf
@ShaharNaveh ShaharNaveh mentioned this pull request Apr 26, 2026
Remove unused rust impl for formatting dis output #7660
Merged
youknowone
youknowone approved these changes May 4, 2026
View reviewed changes
@youknowone
youknowone merged commit 0325fd4 into RustPython:main May 4, 2026
20 checks passed

Uh oh!

There was an error while loading. Please reload this page.

youknowone pushed a commit that referenced this pull request Sep 16, 2026
@ShaharNaveh
Opcode name (#7433)
00fef13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@coderabbitai coderabbitai[bot] coderabbitai[bot] left review comments
@youknowone youknowone youknowone approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@ShaharNaveh @youknowone
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.