def test_eval_surrogates_in_result(self):
tcl = self.interp
- self.assertEqual(tcl.eval(r'set a "<\ud83d\udcbb>"'), '<\U0001f4bb>')
+ result = tcl.eval(r'set a "<\ud83d\udcbb>"')
+ if sys.platform == 'win32':
+ self.assertEqual('<\ud83d\udcbb>', result)
+ else:
+ self.assertEqual('<\U0001f4bb>', result)
def testEvalException(self):
tcl = self.interp
set b "<\\ud83d\\udcbb>"
""")
tcl.evalfile(filename)
- self.assertEqual(tcl.eval('set b'), '<\U0001f4bb>')
+ result = tcl.eval('set b')
+ if sys.platform == 'win32':
+ self.assertEqual('<\ud83d\udcbb>', result)
+ else:
+ self.assertEqual('<\U0001f4bb>', result)
def testEvalFileException(self):
tcl = self.interp
--- /dev/null
+Updated Windows builds to use Tcl/Tk 9.0.3.
"versionInfo": "3.50.4.0"
},
{
- "SPDXID": "SPDXRef-PACKAGE-tcl-core",
+ "SPDXID": "SPDXRef-PACKAGE-tcl",
"checksums": [
{
"algorithm": "SHA256",
- "checksumValue": "4c23f0dd3efcbe6f3a22c503a68d147617bb30c4f5290f1eb3eaacf0b460440b"
+ "checksumValue": "7a1d1f3a2b8f4484a9c2a027a157963c18f85a81785e85fcb5d1e3df6b6a4fd4"
}
],
- "downloadLocation": "https://github.com/python/cpython-source-deps/archive/refs/tags/tcl-core-8.6.15.0.tar.gz",
+ "downloadLocation": "https://github.com/python/cpython-source-deps/archive/refs/tags/tcl-9.0.3.0.tar.gz",
"externalRefs": [
{
"referenceCategory": "SECURITY",
- "referenceLocator": "cpe:2.3:a:tcl_tk:tcl_tk:8.6.15.0:*:*:*:*:*:*:*",
+ "referenceLocator": "cpe:2.3:a:tcl_tk:tcl_tk:9.0.3.0:*:*:*:*:*:*:*",
"referenceType": "cpe23Type"
}
],
"licenseConcluded": "NOASSERTION",
- "name": "tcl-core",
+ "name": "tcl",
"primaryPackagePurpose": "SOURCE",
- "versionInfo": "8.6.15.0"
+ "versionInfo": "9.0.3.0"
},
{
"SPDXID": "SPDXRef-PACKAGE-tk",
"checksums": [
{
"algorithm": "SHA256",
- "checksumValue": "0ae56d39bca92865f338529557a1e56d110594184b6dc5a91339c5675751e264"
+ "checksumValue": "54fb59df12c489c6264f5b7d3d7444b150d1e3d6561fd59cdb11483440cec000"
}
],
- "downloadLocation": "https://github.com/python/cpython-source-deps/archive/refs/tags/tk-8.6.15.0.tar.gz",
+ "downloadLocation": "https://github.com/python/cpython-source-deps/archive/refs/tags/tk-9.0.3.1.tar.gz",
"externalRefs": [
{
"referenceCategory": "SECURITY",
- "referenceLocator": "cpe:2.3:a:tcl_tk:tcl_tk:8.6.15.0:*:*:*:*:*:*:*",
+ "referenceLocator": "cpe:2.3:a:tcl_tk:tcl_tk:9.0.3.1:*:*:*:*:*:*:*",
"referenceType": "cpe23Type"
}
],
"licenseConcluded": "NOASSERTION",
"name": "tk",
"primaryPackagePurpose": "SOURCE",
- "versionInfo": "8.6.15.0"
+ "versionInfo": "9.0.3.1"
},
{
"SPDXID": "SPDXRef-PACKAGE-xz",
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-3.5.6
set libraries=%libraries% mpdecimal-4.0.0
set libraries=%libraries% sqlite-3.50.4.0
-if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.15.0
-if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.15.0
+if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-9.0.3.0
+if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-9.0.3.1
set libraries=%libraries% xz-5.8.1.1
set libraries=%libraries% zlib-ng-2.2.4
set libraries=%libraries% zstd-1.5.7
set binaries=
if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.4
if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-3.5.6
-if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.15.0
+if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-9.0.3.0
if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06
if NOT "%IncludeLLVM%"=="false" set binaries=%binaries% llvm-21.1.4.0
https://www.sqlite.org/
_tkinter
- Wraps version 8.6.15 of the Tk windowing system, which is downloaded
+ Wraps version 9.0.3 of the Tk windowing system, which is downloaded
from our binaries repository at
https://github.com/python/cpython-bin-deps.
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="pyproject.props" Condition="$(__PyProject_Props_Imported) != 'true'" />
<PropertyGroup>
- <TclVersion Condition="$(TclVersion) == ''">8.6.15.0</TclVersion>
+ <TclVersion Condition="$(TclVersion) == ''">9.0.3.0</TclVersion>
<TkVersion Condition="$(TkVersion) == ''">$(TclVersion)</TkVersion>
<TclMajorVersion>$([System.Version]::Parse($(TclVersion)).Major)</TclMajorVersion>
<TclMinorVersion>$([System.Version]::Parse($(TclVersion)).Minor)</TclMinorVersion>
<TkMinorVersion>$([System.Version]::Parse($(TkVersion)).Minor)</TkMinorVersion>
<TkPatchLevel>$([System.Version]::Parse($(TkVersion)).Build)</TkPatchLevel>
<TkRevision>$([System.Version]::Parse($(TkVersion)).Revision)</TkRevision>
- <tclDir Condition="$(tclDir) == ''">$(ExternalsDir)tcl-core-$(TclVersion)\</tclDir>
+ <!-- Back compat hack. If you're here wondering about -core vs not, do us both a favor and just override the whole tclDir variable -->
+ <tclDir Condition="$(tclDir) == '' and $(TclMajorVersion) == '8'">$(ExternalsDir)tcl-core-$(TclVersion)\</tclDir>
+ <tclDir Condition="$(tclDir) == ''">$(ExternalsDir)tcl-$(TclVersion)\</tclDir>
<tkDir Condition="$(tkDir) == ''">$(ExternalsDir)tk-$(TkVersion)\</tkDir>
<tcltkDir Condition="$(tcltkDir) == ''">$(ExternalsDir)tcltk-$(TclVersion)\$(ArchName)\</tcltkDir>
<tcltkSuffix Condition="'$(TclMajorVersion)' == '8'">t</tcltkSuffix>
<Component Id="_tkinter.lib" Directory="libs" Guid="*">
<File Name="_tkinter.lib" KeyPath="yes" />
</Component>
- <Component Id="tcl86t.dll" Directory="DLLs" Guid="*">
- <File Name="tcl86t.dll" KeyPath="yes" />
+ <Component Id="tcl90.dll" Directory="DLLs" Guid="*">
+ <File Name="tcl90.dll" KeyPath="yes" />
</Component>
- <Component Id="tk86t.dll" Directory="DLLs" Guid="*">
- <File Name="tk86t.dll" KeyPath="yes" />
+ <Component Id="tcl9tk90.dll" Directory="DLLs" Guid="*">
+ <File Name="tcl9tk90.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="libtommath.dll" Directory="DLLs" Guid="*">
+ <File Name="libtommath.dll" KeyPath="yes" />
</Component>
<Component Id="zlib1.dll" Directory="DLLs" Guid="*">
<File Name="zlib1.dll" KeyPath="yes" />
)
@if not errorlevel 1 (
@echo Testing Tcl/tk
- @set TCL_LIBRARY=%~2\Python\tcl\tcl8.6
"%~2\Python\python.exe" -m test -uall -v test_ttk_guionly test_tk test_idle > "%~2\tcltk.txt" 2>&1
- @set TCL_LIBRARY=
)
@set EXITCODE=%ERRORLEVEL%