This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Add Tcl/Tk builds for ARM64
Type: enhancement Stage: resolved
Components: Tkinter, Windows Versions: Python 3.11
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: steve.dower Nosy List: nsait-linaro, pablogsal, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords: patch

Created on 2022-01-28 16:55 by steve.dower, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 31574 merged steve.dower, 2022-02-25 13:05
PR 31603 closed nsait-linaro, 2022-02-27 08:43
Messages (10)
msg412011 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-01-28 16:55
Currently our ARM64 installs omit Tcl/Tk (and implicitly tkinter and IDLE) because there appears to be no upstream support for building Tcl/Tk for ARM64.

Once the upstream support exists, or we have a good enough patch to apply to our own copy of the sources, we need to add these back.
msg413951 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-25 01:19
Getting this done with some help from colleagues. Tcl and Tk have been updated to support it, and I've pulled down their patches into our source repo.

Hopefully I find time to get the build and setup updates done before the next alpha... adding Pablo just to say that if you feel like deferring by a day or two, I will fully support you :)
msg413982 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2022-02-25 11:54
I don't mind waiting a couple of days. We have also at least one release blocker as well, so is not even sure that we will be ready in time :S
msg413992 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-25 13:46
This is blocked on the IDLE issue in https://github.com/python/cpython/runs/5334087871?check_suite_focus=true

======================================================================
ERROR: test_mousewheel (idlelib.idle_test.test_sidebar.ShellSidebarTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\idlelib\idle_test\tkinter_testing_utils.py", line 58, in new_test_method
    raise exception
    ^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\idlelib\idle_test\tkinter_testing_utils.py", line 42, in after_callback
    next(test_generator)
    ^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\idlelib\idle_test\test_sidebar.py", line 694, in test_mousewheel
    sidebar.canvas.event_generate('<MouseWheel>', x=0, y=0, delta=delta)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\tkinter\__init__.py", line 1886, in event_generate
    self.tk.call(args)
    ^^^^^^^^^^^^^^^^^^
_tkinter.TclError: <MouseWheel> event doesn't accept "-delta" option

I don't have time to look into it right now, but it seems to be reliable on 64-bit builds but works on 32-bit.
msg413994 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-25 14:16
Despite the IDLE issue, I made a test release. Again, I don't have time to dig into it before Monday, but if anyone does and would like to help out, here are the installer files (for all platforms):

https://artprodcus3.artifacts.visualstudio.com/Ac0fc90aa-a903-4cf7-8191-b925daa75b5c/8e426817-76c0-4b99-ba9e-a48a1e4bd5db/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL3B5dGhvbi9wcm9qZWN0SWQvOGU0MjY4MTctNzZjMC00Yjk5LWJhOWUtYTQ4YTFlNGJkNWRiL2J1aWxkSWQvOTc1MzEvYXJ0aWZhY3ROYW1lL21zaQ2/content?format=zip

Note that they're signed with a test certificate, so you'll probably get errors about it being invalid. These are fine, and shouldn't affect anything if you skip the warnings.
msg414179 - (view) Author: Niyas Sait (nsait-linaro) * Date: 2022-02-28 07:19
Based on my investigation so far, I think Tcl/Tk package generated with VS 2022 seems to have some issues when used with Tkinter. I could be wrong.

I've created https://github.com/python/cpython/pull/31603 to force the Tcl/Tk package build on the fly with VS 2019 and I can see it is passing all tests.

If my analysis is correct, I think it would be better to rebuild Tcl/Tk with VS 2019 for cpython-bin-deps while we investigate the issue with the compiler.
msg414184 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-28 09:57
Thanks for the analysis. It should be fine to set PlatformToolset=v142 to choose the older compiler, so I'll give that a go.

Anything I can do to help the compiler team figure out what's broken?
msg414185 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-28 10:18
I updated the builds in cpython-bin-deps and retriggered the PR tests.
msg414189 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-28 12:06
New changeset da7d99a4de72aac8d436cecedf16ab2676f9b785 by Steve Dower in branch 'main':
bpo-46567: Add Tcl/Tk build for Windows ARM64 (GH-31574)
https://github.com/python/cpython/commit/da7d99a4de72aac8d436cecedf16ab2676f9b785
msg414190 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-28 12:07
Build and tests were fine, and a test release build was too, so merging and closing this.

Any new Tcl/Tk issues should get a new bug. If they only affect ARM64, just mention that in the issue.
History
Date User Action Args
2022-04-11 14:59:55adminsetgithub: 90725
2022-02-28 12:07:40steve.dowersetstatus: open -> closed
resolution: fixed
messages: + msg414190

stage: patch review -> resolved
2022-02-28 12:06:47steve.dowersetmessages: + msg414189
2022-02-28 10:18:24steve.dowersetmessages: + msg414185
2022-02-28 09:57:37steve.dowersetmessages: + msg414184
2022-02-28 07:19:59nsait-linarosetmessages: + msg414179
2022-02-27 08:43:39nsait-linarosetnosy: + nsait-linaro
pull_requests: + pull_request29726
2022-02-25 14:16:46steve.dowersetmessages: + msg413994
2022-02-25 13:46:47steve.dowersetmessages: + msg413992
2022-02-25 13:05:45steve.dowersetkeywords: + patch
stage: needs patch -> patch review
pull_requests: + pull_request29696
2022-02-25 11:54:05pablogsalsetmessages: + msg413982
2022-02-25 01:19:53steve.dowersetassignee: steve.dower

messages: + msg413951
nosy: + pablogsal
2022-01-28 16:55:41steve.dowercreate