Changes in 2.2.1 since 2.2
----------------------------

These release notes refer to Mac-specific changes only. See NEWS (in the Misc folder)
for machine-independent changes. These notes are meant primarily for MacPython
but some of the information may be relevant to using Mac-specific features under
Mac OS X unix Python (a.k.a. MachoPython) too.

- This release should work on multiprocessor OSX machines.
- The problem with incomplete read()s on sockets has been fixed.
- NavServices is now weaklinked, so this release should work on a virgin Mac OS 8.1.
- test_longexp took days to finish on OSX. It now fails with a message so the
  other tests continue.
- The IDE looks better under OSX after redesign of some windows.
- The IDE class browser and object browser now work under OSX.
- The IDE browser now has some understanding of the 2.2 object model.
- IDE readline() output is echoed to the output window.
- IDE output is flushed to the screen more often under OSX.
- IDE doesn't have a second quit menu under OSX anymore.
- IDE scrollbars now have live feedback.
- IDE now does copy/paste under OSX.
- IDE: minimal support for floating windows.
- The IDE now sort-of works under MachoPython.
- macostools.mkalias() can now handle folders.
- macresource module fixed to work under MachoPython.
- macfs.FSRef objects now have an as_pathname method.
- The ic module returned bogus values for creator/type. Fixed.
- Most toolbox modules now weaklink against InterfaceLib (or CarbonLib) so
  they can be imported even if not all functionality is available. Calling a
  method missing on your system will raise an exception.
- Carbon.App: support for various missing methods added.
- Carbon.CarbonEvt: various method signatures fixed.
- Carbon.CF: Unicode support added.
- Carbon.CG: did not import. Fixed.
- Carbon.CG:  various missing methods added.
- Carbon.Ctl: ControlActionProcs weren't supported. Fixed.
- Carbon.Drag: exceptions in callback routines are now printed.
- Carbon.Fm: QDTextBounds was missing. Added.
- Carbon.Menu: support for optional MenuObjs was added.
- Carbon.Mlte: unicode support added.
- Carbon.Scrap: fixed to work under Carbon by finally implementing the
  Carbon Scrap Manager interface.
- Carbon.Snd: SndRecord and SndRecordToFile were missing. Added.
- Applescript suites had a problem with the required events being in either Standard
  or Required. Fixed by introducing a new common base suite for them.
- Applescript example rewritten.
- Applescript can now handle Unicode parameters.
- An Applescript suite with a start() event no longer causes problems.
- Exceptions in AE callback routines are now printed.
- waste: updated to current version, thereby getting it to work under MachoPython.
- gensuitemodule: better handling of verbs that are Python keywords.
- gensuitemodule: enum values are now identify()d.
- MachoPython: Python.app build process fixed.
- MachoPython: Python.app can now be called from the command line.
- MachoPython: MacOS error exceptions now include the textual error in
  stead of only the numeric error code.
- Embedding: don't call PyMac_OutputSeen if we have a custom console.

Known problems
--------------

This list is probably incomplete, more problems may be listed on the MacPython homepage,
http://www.cwi.nl/~jack/macpython.html.

- 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).
- 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).
