Changes in 2.2 since 2.1.1 ---------------------------- These release notes refer to Mac-specific changes only. See NEWS (in the Misc folder) for machine-independent changes. - The main change is that all toolbox modules have moved to a package called Carbon. So things like "import Res" should be changed to "from Carbon import Res", and "from Res import *" to "from Carbon.Res import *". Please see the readme file for some open questions and join the discussions on pythonmac-sig if you have anything to contribute. Aside from reducing clutter this change will also benefit the port to Mach-O/OSX Python later. - All toolbox modules have been updated to Universal Headers 3.4. - Toolbox modules are weaklinked against InterfaceLib (for PPC builds) and raise an exception when you call an unimplemented one on an old MacOS. - On input MacPython now accepts either \n (unix style) or \r (mac style) newlines for text files. This behaviour can be turned off with a preference. This is an experimental feature; again: feedback is requested. - The IDE looks better on OS X, but still not as good as on OS9. - Command-dot handling has been improved a lot: scripts are now much easier to interrupt, and they only scan for cmd-. while in the foreground. - "Copy" from the MacPython console window was always disabled. Fixed. - This release should run on MacOS 8.1 again. - A new, rather different GUSI I/O library is used. - time.time() returns positive values again. - There is a new module macresource which makes it easier to open a resource file accompanying your script when the script is not (yet) converted to an applet. This module will later also do the right thing in Mach-O/OSX Python. - (Carbon only) experimental modules Carbon.CG (CoreGraphics) and CarbonEvt have been added. - A new, experimental module hfsplus is included, which gives access to some of the functionality of the HFS+ API. - A new, experimental module gives access to Carbon Events. - Threads had a stack that was too small for many serious Python applications (20K). They now get 64K. There is still no overflow check, though. - Garbage collection and the gc module have (finally) been enabled. - EasyDialogs.ProgressBar now has indeterminate progressbars if you specify maxval=0. This is also the new default. Patch supplied by Dean Draayer. - There are new preferences for enabling old-style division warnings and for accepting unix-style newlines in text input files. These can also be set during startup, and in addition you can select very verbose import tracing. - The NavServices override for StandardFile has moved from early startup to the time you import macfs. This speeds up MacPython startup. - Various outdated scripts have been moved to :Mac:Unsupported. - Various outdated items from :Mac:Lib:test have been removed. - C Developers: you know have control over the Python console if you are embedding MacPython in another application, thanks to Alexandre Parenteau. :Mac:Demo:embed.html has very minimal documentation. - BuildCGIApplet works again. - The CodeWarrior OSA suite missed quit(). It is back. - Contrib:morefindertools is gone, the functionality has been integrated into the standard module findertools.py. Known problems -------------- This list is probably incomplete, more problems may be listed on the MacPython homepage, http://www.cwi.nl/~jack/macpython.html. - MacPython 2.2 (and MacPython 2.1) will not run correctly on a multiprocessor MacOS X machine, it will quickly deadlock during I/O operations. The GUSI I/O library is suspected, hints/clues/workarounds are solicited. This problem also occurs intermittently on fast OS X single-processor machines. - Tkinter does not work under Carbon. - The IDE and Tkinter do not work together. Run tkinter programs under PythonInterpreter. - Tkinter file events do not work, unless you have opened the file through Tcl (but then you cannot access it from Python). - The IDE object and class browser look funny on OSX, but they work fine. - Aliases may not work in sys.path entries. - PythonInterpreter used interactively will eat a lot of processor cycles. You should use PythonIDE for interactive work and PythonInterpreter for scripts only. This is especially true under OSX. - AliasMenu 2.2 conflicts with the Carbon version of Python. This is most likely a problem with AliasMenu (which is from 1999, and thus predates Carbon altogether).