FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Review issues that appear resolved for closure · Issue #8982 · RustPython/RustPython · GitHub

Repository navigation

Review issues that appear resolved for closure #8982

Description

Summary

Please review these 25 issues for closure. Based on the checks described below, their reported problems appear to be resolved in main (at f39b054b9c8c).
While looking for issues to work on, I spent time investigating problems that appeared to be resolved. Closing these issues would help contributors find remaining work and avoid repeating the same investigation.

I focused on issues with clear reproduction steps and directly checkable results. I used OpenAI Codex (GPT-6 Astra) extensively to investigate them, run checks, and draft the reports. I reviewed the results, manually checked some cases, and repeated checks where useful.

Checks were performed on October 5–6, 2026, on macOS, using native ARM64 and x86_64/Rosetta RustPython builds, with CPython 3.14.6 for behavioral comparisons. The environment record and individual reports document the environments and limitations.

The verification records include reproduction steps, observed results, and limitations for each issue. These recommendations cover only the reported problems and the behavior tested. I have not reviewed every underlying fix at the code level.

Details

#2527 — REPL expressions inside blocks

In an actual interactive REPL, the original loop now displays 0 through 9, and the file-write block displays 5, matching CPython.

#3418 — Native OrderedDict export

from _collections import OrderedDict now succeeds. Ordering, move_to_end, popitem, reverse iteration and equality checks agree with CPython.

#3430 — ElementTree parsing valid XML

etree.XML("<root></root>") now parses successfully without the reported TypeError. Valid XML samples with children, text, attributes, namespaces and UTF-8 also agree with CPython.

#3846 — Disassembly support used by modulefinder

dis.opmap, dis.EXTENDED_ARG and dis._unpack_opargs now work with actual bytecode. modulefinder correctly analyzes the tested local import graph, and all 17 original ModuleFinderTest tests pass.

#4506 — SymPy import with the reported versions

SymPy 1.11.1 with mpmath 1.2.1 now imports successfully. The previously failing is_commutative assignment in power.py executes, and the reported Pow path succeeds.

#4527 — Finalization of a global object

The original global-object example now calls __del__ and prints deleted! during normal interpreter shutdown, with exit code 0 and no stderr.

#4541 — Safe path flags and path insertion

-P and PYTHONSAFEPATH now suppress automatic unsafe path insertion for scripts, -c, -m and the interactive REPL. Symlink, -E and -I checks also agree with CPython.

#4690 — Native class-method descriptor type

The raw dict.__dict__["fromkeys"] descriptor now has type classmethod_descriptor, while the bound dict.fromkeys has type builtin_function_or_method, matching CPython. Descriptor binding and the additional native descriptors checked agree with CPython.

#4762 — Negative dynamic format width

'%*s' % (-5, 'abc') now returns 'abc ', preserving the required two trailing spaces. Positive, zero and additional negative widths also agree with CPython.

#4769 — Deque subclass pickle state

The original deque subclass regression test now passes. Pickle protocols 0–5 preserve subclass type, contents, maxlen, instance attributes and slots.

#4784 — README API documentation link

The README documentation link now serves the RustPython API documentation, including crate and API entries. The retrieved page identifies RustPython 0.6.0.

#4786 — Surrogate in a type name

The original surrogate in the type name is preserved, and creating the type raises UnicodeEncodeError, matching CPython. The uncaught exception correctly exits with code 1.

#4856 — Lambda in a class decorator

The original class-decorator example now compiles without the reported Rust compiler panic. Running the supplied source still raises NameError for the undefined BaseFTests in both interpreters; valid mock.patch and nested-capture examples execute successfully.

#4907 — Await in an async comprehension

The original async function now compiles. The example in the issue comment also runs through an actual asyncio event loop, completes both awaited sleeps and prints lc done.

#4908 — AST round trip for a starred subscript

The original starred subscript now unparses to valid Python syntax and reparses successfully. Additional slice and starred-subscript combinations preserve the AST structure.

#4937 — Email Subject with an unknown encoding

The original email Subject with the unknown X encoding is now returned without KeyError. Additional unknown-encoding and malformed-header cases were also checked.

#4950 — Bool numeric format codes

False and True now format like CPython for the originally reported format codes, the comment’s n and d codes, and the tested width and precision combinations.

#4970 — Locale formatting with LC_ALL unset

With LC_ALL unset and LANG and LC_NUMERIC set to en_US.UTF-8, the original test_locale and the integer/float locale tests pass without skips or expected failures.

#5179 — Builtin buffer methods

The builtin and subclass types tested now expose the expected buffer methods. Writable access, release and resizing after release agree with CPython; resizing while a buffer is exported is correctly blocked.

#5656 — Invalid escape warning in a bytes literal

Compiling the original bytes literal now emits the required SyntaxWarning for the invalid escape while preserving the bytes value. Treating the warning as an error also works.

#5699 — Blockers for colored tracebacks

All four reported blockers now work: class patterns, frame.f_builtins, sys.stdlib_module_names and except*. Actual uncaught exceptions produce colored tracebacks, including builtin and missing-stdlib suggestions, matching CPython in the tested cases.

#6429 — Py_GIL_DISABLED configuration value

sysconfig.get_config_var("Py_GIL_DISABLED") now returns the defined value 1 in the verified POSIX RustPython build.

#6697 — Symbol-table error while importing pytest

The original function with a generator expression inside finally now compiles and runs without the reported symbol-table error. The real pytest 9.1.1 pytester.py module compiles and imports, its affected pytest_runtest_protocol body passes a controlled execution check, and a small run through pytest.console_main reports 2 passed. This verifies the reported compiler/import blocker; it does not establish that the full xonsh test suite passes.

#8052 — Ellipsis type name

The type name is now ellipsis, and its representation is <class 'ellipsis'>, matching CPython. The type alias and existing JSON regression tests also pass.

#8494 — Classmethod and staticmethod annotations

classmethod and staticmethod now cache __annotations__ and __annotate__ on the wrapper. Assignment and deletion leave the wrapped function unchanged. The module-level example from the issue, a separate function-local variant and the original regression test pass.

Activity

  1. youknowone commented on Oct 6, 2026

    Member

    @YangSiJun528 all closed, thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    z-ca-2026Tag to track Contribution Academy 2026

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL