bpo-1635741: In pickle module, inject module state from class methods#23304
bpo-1635741: In pickle module, inject module state from class methods#23304koubaa wants to merge 2 commits intopython:mainfrom
Conversation
|
@vstinner @corona10 @shihai1991 please review |
Modules/_pickle.c
Outdated
There was a problem hiding this comment.
PickleState is not used here, but is added as an argument to avoid complicating the macro/switch case in
static PyObject *
load(UnpicklerObject *self, PickleState *st)
|
Most modules are using |
@tiran I did that in my initial draft here. The reason I didn't do it here is because there are local variables named state in some functions (see for example line 3949 in save_reduce. Do you have a suggestion on what to change those names to? I don't understand exactly what those variables represent |
|
This PR is stale because it has been open for 30 days with no activity. |
shihai1991
left a comment
There was a problem hiding this comment.
The reason I didn't do it here is because there are local variables named state in some functions (see for example line 3949 in save_reduce.
the state would be more exact. If there have other arguments have own this name, keep st unchanged is not a big probleam.
when switching to heap types, the clinic can be used to get the module state therte
d7cad26 to
eea5c35
Compare
|
@shihai1991 @vstinner I addressed these comments |
shihai1991
left a comment
There was a problem hiding this comment.
This PR is huge :) . About adding parenthesis, I will update it when those code have relation with the bpo.
|
https://bugs.python.org/issue1635741 is closed. What is the status of this PR? |
|
The change is still relevant, but should use a new issue number. Moreover, the SC asked to put the conversion of static types to heap types on hold. @encukou and @erlend-aasland wrote https://peps.python.org/pep-0687/ which may unblock the situation but it's still a draft. |
FYI, PEP 687 was accepted. |
|
Pickle module state was isolated in #102982. |
It did; PR #102982 was based off of Mohamed's work in #23188 (IIRC, I cherry-picked the commits from |
This PR prepares for changing to heap types.
When switching to heap types, the clinic can be used to get the module state.
https://bugs.python.org/issue1635741