Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove unused TK_AQUA code #103538

Closed
chrstphrchvz opened this issue Apr 14, 2023 · 4 comments
Closed

Remove unused TK_AQUA code #103538

chrstphrchvz opened this issue Apr 14, 2023 · 4 comments
Labels
OS-mac stdlib Python modules in the Lib dir topic-tkinter type-feature A feature request or enhancement

Comments

@chrstphrchvz
Copy link
Contributor

chrstphrchvz commented Apr 14, 2023

Sections of code which are guarded by #ifdef TK_AQUA were committed in cb85244. But from examining the CPython
and Tcl/Tk repository histories, it appears nothing has ever defined this macro. (Tk Aqua itself instead defines/uses the MAC_OSX_TK macro.) The only mentions of it I found elsewhere were as -DTK_AQUA passed to build commands, either in a Setup.local file (https://mail.python.org/pipermail/pythonmac-sig/2001-December/004553.html, https://mail.python.org/pipermail/pythonmac-sig/2002-November/006746.html) or manual command line invocation (https://mail.python.org/pipermail/pythonmac-sig/2002-January/004776.html).

So I believe this code has long been unused, and I suspect that trying to use it now is not a good idea. Can it be removed?

Linked PRs

chrstphrchvz added a commit to chrstphrchvz/cpython that referenced this issue Apr 14, 2023
@arhadthedev arhadthedev added stdlib Python modules in the Lib dir topic-tkinter type-feature A feature request or enhancement OS-mac labels Apr 14, 2023
@hugovk
Copy link
Member

hugovk commented Apr 14, 2023

I didn't find any relevant use using GitHub's beta code search:

And zero use in the top 5k PyPI projects:


For reference, the commit references BPO number 490100, which is now at gh-35685.

There's some mention of Aqua Tk and TK_AQUA in #49370, ping participants @terryjreedy, @ronaldoussoren, @ned-deily.

And #49370 (comment) says:

I've talked with Daniel Steffen, who is one of the maintainers of Tcl/Tk
on Mac OSX, and I was told that all this conditional code in _tkinter.c
and tkappinit.c for TK_AQUA is outdated starting with tk 8.4.8, but tk
8.4.7 that ships with macosx (which happens to be the version being used
by the buildslave mentioned above) also includes the patch that
deprecates the usage, and we should be calling only Tk_Init on
tkappinit.c which will deal with all the details (the details are in
tkMacOSXInit:TkpInit).

There is an entry in tk's changelog that is directly related to this:
http://tktoolkit.cvs.sourceforge.net/viewvc/tktoolkit/tk/ChangeLog.2004?revision=1.1&view=markup
(lines 210-220)

Any chance I can change _tkinter and tkappinit to check for
TKINTER_OLD_AQUA (new macro to be added) instead of TK_AQUA and verify
if it helps the buildslaves ?

Working link to ChangeLog.2004: https://github.com/tcltk/tk/blob/64e6bc556004238f93a9ccb5c2b826aed8310882/ChangeLog.2004#L210-L220

Searching https://github.com/tcltk/tk I don't find TK_AQUA or TKINTER_OLD_AQUA in uppercase, or searching with git log -S TK_AQUA etc. Also no TKINTER_OLD_AQUA in any case.

However, there are still some lowercase tk_aqua in:

  • unix/configure.ac
  • unix/configure
  • ChangeLog.2007

https://github.com/search?q=repo%3Atcltk%2Ftk%20tk_aqua&type=code

Are they relevant?

@chrstphrchvz
Copy link
Contributor Author

I didn't find any relevant use using GitHub's beta code search:

I checked git log -S TK_AQUA (which I imagine is more exhaustive than the GitHub code search) for a deep clone of CPython and the only commit it lists is cb85244.

For reference, the commit references BPO number 490100, which is now at gh-35685.

Thanks for finding the patch issue; I was not sure where I might find that.

There's some mention of Aqua Tk and TK_AQUA in #49370, ping participants @terryjreedy, @ronaldoussoren, @ned-deily.

Thanks for bringing that issue up as well; I did not notice it during my earlier search. The changes proposed in oldtkaqua.diff still do not cause TK_AQUA to be defined anywhere, so I do not think that patch ever had any effect. But since that patch intended to make the relevant code apply only to Tk 8.4.7 and earlier, and Tkinter has since required 8.5.12 or later, I believe that is further indication that the code can now be removed.

However, there are still some lowercase tk_aqua in:

  • unix/configure.ac
  • unix/configure
  • ChangeLog.2007

https://github.com/search?q=repo%3Atcltk%2Ftk%20tk_aqua&type=code

Are they relevant?

In the configure scripts, lowercase tk_aqua is just a shell script variable. It is used to define a macro:

if test $tk_aqua != no; then
    AC_DEFINE(MAC_OSX_TK, 1, [Are we building TkAqua?])

…but there is nothing similar to define TK_AQUA.

chrstphrchvz added a commit to chrstphrchvz/cpython that referenced this issue Apr 14, 2023
@hugovk
Copy link
Member

hugovk commented Apr 14, 2023

Thanks for checking. @zware: here's another cleanup like #103532, looks okay?

For reference, the commit references BPO number 490100, which is now at gh-35685.

Thanks for finding the patch issue; I was not sure where I might find that.

I guessed the number could be a BPO number, you can find them in the old tracker at https://bugs.python.org tracker which has redirects to the migrated issues here on GitHub. (I used my CLI https://github.com/hugovk/pepotron and typed in bpo 490100 and it opened the GH issue directly.)

chrstphrchvz added a commit to chrstphrchvz/cpython that referenced this issue Apr 14, 2023
chrstphrchvz added a commit to chrstphrchvz/cpython that referenced this issue Apr 18, 2023
chrstphrchvz added a commit to chrstphrchvz/cpython that referenced this issue Apr 22, 2023
zware pushed a commit to chrstphrchvz/cpython that referenced this issue May 10, 2023
@zware
Copy link
Member

zware commented May 10, 2023

Thanks for the cleanup!

@zware zware closed this as completed May 10, 2023
carljm added a commit to carljm/cpython that referenced this issue May 10, 2023
* main:
  pythonGH-102181: Improve specialization stats for SEND (pythonGH-102182)
  pythongh-103000: Optimise `dataclasses.asdict` for the common case (python#104364)
  pythongh-103538: Remove unused TK_AQUA code (pythonGH-103539)
  pythonGH-87695: Fix OSError from `pathlib.Path.glob()` (pythonGH-104292)
  pythongh-104263: Rely on Py_NAN and introduce Py_INFINITY (pythonGH-104202)
  pythongh-104010: Separate and improve docs for `typing.get_origin` and `typing.get_args` (python#104013)
  pythongh-101819: Adapt _io._BufferedIOBase_Type methods to Argument Clinic (python#104355)
  pythongh-103960: Dark mode: invert image brightness (python#103983)
  pythongh-104252: Immortalize Py_EMPTY_KEYS (pythongh-104253)
  pythongh-101819: Clean up _io windows console io after pythongh-104197 (python#104354)
  pythongh-101819: Harden _io init (python#104352)
  pythongh-103247: clear the module cache in a test in test_importlib/extensions/test_loader.py (pythonGH-104226)
  pythongh-103848: Adds checks to ensure that bracketed hosts found by urlsplit are of IPv6 or IPvFuture format (python#103849)
  pythongh-74895: adjust tests to work on Solaris (python#104326)
  pythongh-101819: Refactor _io in preparation for module isolation (python#104334)
  pythongh-90953: Don't use deprecated AST nodes in clinic.py (python#104322)
  pythongh-102327: Extend docs for "url" and "headers" parameters to HTTPConnection.request()
  pythongh-104328: Fix typo in ``typing.Generic`` multiple inheritance error message (python#104335)
carljm added a commit to carljm/cpython that referenced this issue May 11, 2023
* main: (27 commits)
  pythongh-87849: fix SEND specialization family definition (pythonGH-104268)
  pythongh-101819: Adapt _io.IOBase.seek and _io.IOBase.truncate to Argument Clinic (python#104384)
  pythongh-101819: Adapt _io._Buffered* methods to Argument Clinic (python#104367)
  pythongh-101819: Refactor `_io` futher in preparation for module isolation (python#104369)
  pythongh-101819: Adapt _io.TextIOBase methods to Argument Clinic (python#104383)
  pythongh-101117: Improve accuracy of sqlite3.Cursor.rowcount docs (python#104287)
  pythonGH-92184: Convert os.altsep to '/' in filenames when creating ZipInfo objects (python#92185)
  pythongh-104357: fix inlined comprehensions that close over iteration var (python#104368)
  pythonGH-90208: Suppress OSError exceptions from `pathlib.Path.glob()` (pythonGH-104141)
  pythonGH-102181: Improve specialization stats for SEND (pythonGH-102182)
  pythongh-103000: Optimise `dataclasses.asdict` for the common case (python#104364)
  pythongh-103538: Remove unused TK_AQUA code (pythonGH-103539)
  pythonGH-87695: Fix OSError from `pathlib.Path.glob()` (pythonGH-104292)
  pythongh-104263: Rely on Py_NAN and introduce Py_INFINITY (pythonGH-104202)
  pythongh-104010: Separate and improve docs for `typing.get_origin` and `typing.get_args` (python#104013)
  pythongh-101819: Adapt _io._BufferedIOBase_Type methods to Argument Clinic (python#104355)
  pythongh-103960: Dark mode: invert image brightness (python#103983)
  pythongh-104252: Immortalize Py_EMPTY_KEYS (pythongh-104253)
  pythongh-101819: Clean up _io windows console io after pythongh-104197 (python#104354)
  pythongh-101819: Harden _io init (python#104352)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OS-mac stdlib Python modules in the Lib dir topic-tkinter type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

4 participants