Author ned.deily
Recipients benjamin.peterson, georg.brandl, ned.deily, ronaldoussoren, wordtech
Date 2010-12-17.18:00:59
SpamBayes Score 0.0
Marked as misclassified No
Message-id <1292608861.36.0.136597781629.issue6075@psf.upfronthosting.co.za>
In-reply-to
Content
Thank you very much for the patch. I have updated it and modified it somewhat to work with the latest tip for py3k (3.2b1), 3.1.3+, and 2.7.1+ and to work with both AquaTk Cocoa 8.5 and preserve current behavior with legacy AquaTk Carbon 8.4.

Since there are no automated tests for IDLE in the standard library and since the issues here had to do with differences in menu cascades and options, I created a program to introspect IDLE menus using the OS X GUI Scripting interface via py-appscript.  That allowed me to semi-automatically capture the menu configurations for the IDLE configurations of interest (in particular, Apple-supplied Tk vs ActiveState Tk).  The following Tcl/Tk configurations - all currently, or shortly to be, supported by python.org installers - were tested:

OS X          Tcl/Tk
====          ======
10.6  64-bit  ActSt 8.5.9 Cocoa
10.6  64-bit  Apple 8.5.7 Cocoa
10.6  32-bit  ActSt 8.4.19 Carbon
10.6  32-bit  Apple 8.4.19 Carbon
10.5  32-bit  ActSt 8.4.19 Carbon
10.5  32-bit  Apple 8.4.7 Carbon
10.4  32-bit  ActSt 8.4.19 Carbon
10.4  32-bit  Apple 8.4.7 Carbon
10.3  32-bit  ActSt 8.4.19 Carbon

Each of those Tcl/Tk configurations was tested with both IDLE.app and bin/idle, each with both py3k(3.2b1+) and 2.7.1+ builds, and each of those with both IDLE Editor windows and IDLE shell windows (they have somewhat different menu configurations).  Note that testing on 10.3 was much more limited since appscript, and hence the menutester, is not supported there.  Also no regressions were noted when applied to 3.1.3+ in a 32-bit only build.

So far, the recently available ActiveState 64-bit Cocoa Tcl/Tk 8.5 has proven to be much more stable than the Apple-supplied 8.5 version in 10.6, which had rendered the 64-bit versions of IDLE virtually unusable up to now.  With the final patches applied, I found no regressions in the menu cascades for IDLE.app.  When running bin/idle (from the command line), there is a slight difference when using Cocoa Tk vs Carbon Tk.  Both variants of AquaTk automatically supplies the application names from the app bundle plist. Because of the way bin/idle is structured today, the app name appears as "Python" rather than "IDLE".  With Cocoa Tk, that appears in a couple more menu items ("About app" and "app Help") than it already does with Carbon Tk.  While that would be nice to fix at some point, it is an existing cosmetic issue and  I assume most inexperienced users will use IDLE.app, where there is no discrepancy.

I believe this fix is ready to be applied and should go into 3.2 (and as soon as possible released for 2.7) in conjunction with building the 64-bit OS X installer to allow use of the ActiveState Cocoa 8.5.  This will fix a number of reported problems with the broken IDLE with previous 64-bit OS X installers.  Still to be done prior to release is updating the installer README and documenting a few minor issues.  A longer-term issue is to make the menu introspection tests automatic enough to be added to the standard tests as an optional OS X test.
History
Date User Action Args
2010-12-17 18:01:01ned.deilysetrecipients: + ned.deily, georg.brandl, ronaldoussoren, wordtech, benjamin.peterson
2010-12-17 18:01:01ned.deilysetmessageid: <1292608861.36.0.136597781629.issue6075@psf.upfronthosting.co.za>
2010-12-17 18:01:00ned.deilylinkissue6075 messages
2010-12-17 18:00:59ned.deilycreate