Eric Snow
291cfa454b
gh-117953: Track Extra Details in Global Extensions Cache (gh-118532)
...
We have only been tracking each module's PyModuleDef. However, there are some problems with that. For example, in some cases we load single-phase init extension modules from def->m_base.m_init or def->m_base.m_copy, but if multiple modules share a def then we can end up with unexpected behavior.
With this change, we track the following:
* PyModuleDef (same as before)
* for some modules, its init function or a copy of its __dict__, but specific to that module
* whether it is a builtin/core module or a "dynamic" extension
* the interpreter (ID) that owns the cached __dict__ (only if cached)
This also makes it easier to remember the module's kind (e.g. single-phase init) and if loading it previously failed, which I'm doing separately.
2024-05-04 21:24:02 +00:00
..
2024-05-03 11:09:57 -04:00
2024-05-03 11:30:55 -04:00
2024-04-04 15:47:26 +00:00
2024-01-16 09:32:01 +00:00
2024-05-03 06:17:32 -07:00
2024-05-03 11:30:55 -04:00
2023-09-30 22:21:20 +00:00
2024-03-28 09:28:39 -04:00
2024-05-04 12:11:11 +01:00
2024-05-03 18:13:40 -04:00
2024-05-03 19:49:24 +01:00
2024-05-04 12:12:10 +01:00
2024-05-02 18:25:36 -04:00
2024-05-03 14:05:19 +00:00
2024-02-02 13:50:51 +00:00
2024-04-02 20:35:52 +00:00
2024-02-16 01:01:36 +00:00
2023-11-08 15:39:29 -07:00
2024-02-13 14:56:49 -07:00
2024-04-10 18:37:01 -06:00
2024-04-11 23:23:25 +00:00
2024-04-01 13:02:07 +00:00
2023-10-04 22:50:29 +00:00
2023-10-04 22:50:29 +00:00
2023-10-04 22:50:29 +00:00
2023-10-04 22:50:29 +00:00
2023-09-08 17:54:45 +01:00
2023-09-15 15:04:21 -07:00
2024-04-30 17:55:15 +03:00
2024-05-04 12:11:11 +01:00
2024-04-30 22:32:55 +02:00
2024-04-04 15:47:26 +00:00
2024-05-01 21:51:40 +01:00
2024-03-18 11:13:11 -07:00
2024-03-21 18:20:20 -06:00
2024-05-02 06:32:20 -07:00
2024-04-29 20:26:26 +00:00
2024-02-14 00:32:51 +00:00
2024-04-02 11:59:21 +01:00
2024-05-04 12:11:11 +01:00
2024-04-23 13:15:15 +02:00
2024-01-16 21:54:05 +01:00
2023-09-29 10:56:49 +02:00
2023-12-06 15:09:22 +01:00
2024-05-04 21:24:02 +00:00
2024-05-04 21:24:02 +00:00
2024-04-02 20:35:52 +00:00
2024-04-26 17:20:30 +01:00
2024-05-04 08:23:50 +00:00
2024-04-03 01:10:26 +00:00
2024-05-04 12:12:10 +01:00
2024-05-03 16:41:07 -07:00
2024-04-29 09:54:52 +01:00
2024-04-30 15:01:28 -04:00
2024-05-03 11:30:55 -04:00
2023-10-11 14:44:06 +03:00
2024-02-16 01:01:36 +00:00
2024-05-04 12:11:11 +01:00
2024-04-30 18:26:34 -07:00
2024-05-04 12:11:11 +01:00
2024-05-04 12:11:11 +01:00
2024-05-02 16:17:59 +01:00
2024-05-04 12:11:11 +01:00
2024-04-23 10:20:14 -07:00
2024-04-18 15:20:38 +02:00
2023-12-21 19:28:55 +00:00
2024-03-22 20:19:10 +02:00
2024-05-03 11:05:30 -04:00
2024-05-02 18:25:36 -04:00
2024-05-03 11:30:55 -04:00
2024-05-03 11:30:55 -04:00
2024-05-02 16:43:03 +03:00
2024-05-01 18:05:01 +00:00
2024-03-08 12:39:53 -05:00
2024-05-04 12:11:11 +01:00
2024-05-01 12:27:06 -06:00
2024-02-11 12:45:58 +02:00
2024-01-11 20:31:24 +02:00
2024-05-03 06:17:32 -07:00
2024-05-04 12:12:10 +01:00
2024-05-04 09:39:58 +02:00
2023-11-04 13:59:24 +00:00
2024-03-16 11:10:37 +01:00
2024-02-21 11:46:00 +01:00
2024-03-13 23:53:32 +01:00
2024-04-12 13:56:41 +03:00
2024-05-02 19:30:00 +02:00
2023-11-01 22:55:10 +00:00