Skip to content
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

Thoroughly refactor the cases generator #107151

Merged
merged 7 commits into from
Jul 24, 2023

Conversation

gvanrossum
Copy link
Member

This mostly extracts a whole bunch of stuff out of generate_cases.py into separate files, but there are a few other things going on here.

  • analysis.py: Analyzer etc.
  • instructions.py: Instruction etc.
  • flags.py: InstructionFlags, variable_used, variable_used_unspecialized
  • formatting.py: Formatter etc.
  • Rename parser.py to parsing.py, to avoid conflict with stdlib parser.py
  • Blackify most things
  • Fix most mypy errors
  • Remove output filenames from Generator state
  • Fix unit tests

The review request is mostly a heads up: if you have pending PRs that affect Tools/cases_generator/, they probably will become a major merge conflict. I can wait for those (making the conflicts my problem) but I need to know about them. Of course if you want to review the changes carefully, be my guest.

(Why do this now? I have more changes coming up related to macros with array stack effects, but I'd like to get this out of the way first, so I don't mix refactoring and functionality changes.)

Copy link
Member

@iritkatriel iritkatriel left a comment

Choose a reason for hiding this comment

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

Much better.

@gvanrossum gvanrossum merged commit 032f480 into python:main Jul 24, 2023
20 checks passed
@gvanrossum gvanrossum deleted the refactor-generator branch July 24, 2023 16:38
carljm added a commit to carljm/cpython that referenced this pull request Jul 24, 2023
* main: (73 commits)
  Thoroughly refactor the cases generator (python#107151)
  Docs: Add missing markup to Argument Clinic docs (python#106876)
  pythongh-107162: Document errcode.h usage in its comment (python#107177)
  pythongh-106320: Remove private _PyDict C API (python#107145)
  Fix PyVectorcall_Function doc versionadded (python#107140)
  Docs: Remove duplicate word in Argument Clinic howto heading (python#107169)
  pythongh-107017: Change Chapter Strings to Texts in the Introduction chapter. (python#107104)
  pythongh-106320: Remove private _PyObject C API (python#107159)
  Docs: fix typo in os.pwrite docstring (python#107087)
  pythongh-105291: Add link to migration guide for distutils (python#107130)
  pythongh-106948: Docs: Disable links for C standard library functions, OS utility functions and system calls (python#107062)
  pythongh-106320: Remove _PyBytes_Join() C API (python#107144)
  pythongh-106320: Remove private _PyObject C API (python#107147)
  pythongh-106320: Remove _PyTuple_MaybeUntrack() C API (python#107143)
  pythongh-106320: Remove _PyIsSelectable_fd() C API (python#107142)
  Remove superflous whitespaces in `layout.html`. (pythonGH-107067)
  pythongh-107122: Update what's news for dbm.*dbm.clear() method (pythongh-107135)
  pythongh-107122: Add clear method to dbm.ndbm module (pythongh-107126)
  pythongh-62519: Make pgettext search plurals when translation is not found (python#107118)
  pythongh-107122: Add clear method to dbm.gdbm.module (pythongh-107127)
  ...
jtcave pushed a commit to jtcave/cpython that referenced this pull request Jul 27, 2023
This mostly extracts a whole bunch of stuff out of generate_cases.py into separate files, but there are a few other things going on here.

- analysis.py: `Analyzer` etc.
- instructions.py: `Instruction` etc.
- flags.py: `InstructionFlags`, `variable_used`, `variable_used_unspecialized`
- formatting.py: `Formatter` etc.
- Rename parser.py to parsing.py, to avoid conflict with stdlib parser.py
- Blackify most things
- Fix most mypy errors
- Remove output filenames from Generator state, add them to `write_instructions()` etc.
- Fix unit tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants