| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
@encukou, if you have a few minutes, I'm mostly looking for a sanity check on this PR. |
Sorry, something went wrong.
|
This PR looks good, but see my comment here: #118193 (comment) An indirect test of a multiphase module with m_slots=NULL triggers the //assert that's commented out here. |
Sorry, something went wrong.
|
Thanks. I'll take a look at that. |
Sorry, something went wrong.
There was a problem hiding this comment.
Thanks!
+1, I think this is good to merge. The is_singlephase thing can be sorted out later, see #117953 (comment)
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
I've pulled this out of #118116.
Basically, I've turned most of _PyImport_LoadDynamicModuleWithSpec() into two new functions (_PyImport_GetModInitFunc() and _PyImport_RunModInitFunc()) and moved the rest of it out into _imp_create_dynamic_impl(). There shouldn't be any changes in behavior.
This change makes some future changes simpler. This is particularly relevant to potentially calling each module init function in the main interpreter first. Thus the critical part of the PR is the addition of _PyImport_RunModInitFunc(), which is strictly focused on running the init func and validating the result. A later PR will take it a step farther by capturing error information rather than raising exceptions.
FWIW, this change also helps readers by clarifying a bit more about what happens when an extension/builtin module is imported.