]> granicus.if.org Git - python/commitdiff
bpo-36763: Add _PyCoreConfig._config_version (GH-13065)
authorVictor Stinner <vstinner@redhat.com>
Thu, 2 May 2019 18:46:29 +0000 (14:46 -0400)
committerGitHub <noreply@github.com>
Thu, 2 May 2019 18:46:29 +0000 (14:46 -0400)
Add private _config_version field to _PyPreConfig and _PyCoreConfig
to prepare future ABI compatibility.

Include/cpython/coreconfig.h

index 99388e635c75b3314abbe9d8eb414a27a37e5002..1aab5e4f0e624903422afe7fd03b57b9932b3a8e 100644 (file)
@@ -65,7 +65,12 @@ typedef struct {
 
 /* --- _PyPreConfig ----------------------------------------------- */
 
+#define _Py_CONFIG_VERSION 1
+
 typedef struct {
+    int _config_version;  /* Internal configuration version,
+                             used for ABI compatibility */
+
     /* If greater than 0, enable isolated mode: sys.path contains
        neither the script's directory nor the user's site-packages directory.
 
@@ -132,6 +137,7 @@ typedef struct {
 #define _PyPreConfig_INIT \
     (_PyPreConfig){ \
         _PyPreConfig_WINDOWS_INIT \
+        ._config_version = _Py_CONFIG_VERSION, \
         .isolated = -1, \
         .use_environment = -1, \
         .dev_mode = -1, \
@@ -141,9 +147,12 @@ typedef struct {
 /* --- _PyCoreConfig ---------------------------------------------- */
 
 typedef struct {
-    int isolated;
-    int use_environment;
-    int dev_mode;
+    int _config_version;  /* Internal configuration version,
+                             used for ABI compatibility */
+
+    int isolated;         /* Isolated mode? see _PyPreConfig.isolated */
+    int use_environment;  /* Use environment variables? see _PyPreConfig.use_environment */
+    int dev_mode;         /* Development mode? See _PyPreConfig.dev_mode */
 
     /* Install signal handlers? Yes by default. */
     int install_signal_handlers;
@@ -397,6 +406,7 @@ typedef struct {
 #define _PyCoreConfig_INIT \
     (_PyCoreConfig){ \
         _PyCoreConfig_WINDOWS_INIT \
+        ._config_version = _Py_CONFIG_VERSION, \
         .isolated = -1, \
         .use_environment = -1, \
         .dev_mode = -1, \