Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Stackless issue #270: Remove field PyFrameObject.f_execute #271

Merged
merged 4 commits into from
Jun 18, 2021

Conversation

akruis
Copy link

@akruis akruis commented Jun 13, 2021

Implement Stackless issue #270: Remove field PyFrameObject.f_execute

Stackless now uses an unmodified PyFrameObject structure. The field
PyFrameObject.f_executing now stores the information how to evaluate a
frame.

Additional consequences:

  • all frame execution functions now take a "PyCFrameObject *" as first
    argument.
  • Pickled frames no contain f_executing instead of the name of the
    execution function.

Once this is merged, we can further simplify ceval.c

Stackless now uses an unmodified PyFrameObject structure. The field
PyFrameObject.f_executing now stores the information how to evaluate a
frame.

Additional consequences:
- all frame execution functions now take a "PyCFrameObject *" as first
  argument.
- Pickled frames no contain f_executing instead of the name of the
  execution function.
@akruis akruis requested a review from kristjanvalur June 13, 2021 21:56
Anselm Kruis added 2 commits June 14, 2021 20:27
Consistent usage of SLP_FRAME_EXECUTING_VALUE
Cleanups and minor improvements. Fix _PyEval_EvalFrameDefault
@akruis akruis marked this pull request as ready for review June 14, 2021 19:31
Copy link
Collaborator

@kristjanvalur kristjanvalur left a comment

Choose a reason for hiding this comment

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

I'm too rusty to be able to scrutinize the low level logic of this all but it looks like a very welcome cleanup. I always thought the old frame execute functions were weird. Much better to have a special code to identify the context.

@akruis akruis merged commit 91ee09b into stackless-dev:main-slp Jun 18, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants