Skip to content
Merged
9 changes: 5 additions & 4 deletions Lib/platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -1156,9 +1156,10 @@ def _sys_version(sys_version=None):
sys_version_parser = re.compile(
r'([\w.+]+)\s*' # "version<space>"
r'\(#?([^,]+)' # "(#buildno"
r'(?:,\s*([\w ]*)' # ", builddate"
r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
r'\[([^\]]+)\]?', re.ASCII) # "[compiler]"
r'(?:,\s*([\w ]*)' # ", buildate"
r'(?:,\s*([\w :]*))?)?' # ", buildtime"
r'(?:,\s*(free-threading))?\)*\s*' # ",'free-threading')<space>'"
r'\[([^\]]+)\]?', re.ASCII) #"[compiler]"

if sys.platform.startswith('java'):
# Jython
Expand Down Expand Up @@ -1195,7 +1196,7 @@ def _sys_version(sys_version=None):
raise ValueError(
'failed to parse CPython sys.version: %s' %
repr(sys_version))
version, buildno, builddate, buildtime, compiler = \
version, buildno, builddate, buildtime, _, compiler = \
match.groups()
name = 'CPython'
if builddate is None:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Add build information to identify whether the build is default build or
free-threading build. Patch By Donghee Na.
7 changes: 7 additions & 0 deletions Modules/getbuildinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,16 @@ Py_GetBuildInfo(void)
if (!(*gitid)) {
gitid = "main";
}
#ifdef Py_GIL_DISABLED
const char *build = "free-threading";
PyOS_snprintf(buildinfo, sizeof(buildinfo),
"%s%s%s, %.20s, %.9s, %s", gitid, sep, revision,
DATE, TIME, build);
#else
PyOS_snprintf(buildinfo, sizeof(buildinfo),
"%s%s%s, %.20s, %.9s", gitid, sep, revision,
DATE, TIME);
#endif
return buildinfo;
}

Expand Down