Changes in 2.1.1 since 2.1
--------------------------

These release notes refer to Mac-specific changes only. See NEWS (in the Misc folder)
for machine-independent changes.

- Handling non-ascii characters in sys.path on non-MacRoman systems should  be fixed,
  iff MacPython has a codec for the charset. Otherwise you should get an error, at least.
  Pathnames in sys.path also retain their original case again.
- IDE could crash on corrupt preferences. Fixed.
- IDE will now work if you use either pre or sre as re.
- Evt.WaitNextEvent could give an error when bit 15 was set, which could cause a problem
  with IDE in classic mode. Fixed.
- MacOS8.X users in classic mode had problems with Fm not loading, which also caused
  IDE not working. Fixed.
- Fm.IsAntiAliasedTextEnabled and Fm.SetAntiAliasedTextEnabled have gone for now, to
  fix the problem above.
- Disabled the Tkinter file I/O event handler, which was there but didn't work anyway.
- Problems with loading dynamic modules that are part of a package into BuildApplication-
  generated programs were fixed.
- The order of the EasyDialogs yes/no/cancel buttons has been conformed to the Mac
  standard.
- Handling of Dialogs and Windows that were not created by Python is a bit more graceful
  now, which may fix some crashes.
- Ctl.SendControlMessage has gone. But it didn't work anyway.
- Various problems with the TextEdit and Waste demos have been fixed.
- Embedding/extending only: in preparation to allowing the use of MacPython modules in
  unix-Python on OSX the xxx_New and xxx_Convert routines are now optionally vectored via
  glue routines in macglue.c. The only change that may be needed for embedders/extenders is
  that you may want to include pymactoolbox.h in your sources.
- Embedding/extending only: Most MacPython source is now much more Mach-O friendly, and
  should work with Universal Headers 3.4.
- Experimental: an Mlte module has been added, an interface to the Multi Lingual Text
  Engine. There is a minimal example in :Mac:Demos:mlte.
- Experimental: some support for FSRef objects has been added. You can do little more that
  convert them to/from FSSpecs. Carbon only.
- Experimental: the CF module has some support for CoreFoundation types. CFString
  and CFURL work, to a degree, and can be converted to/from Python strings and Unicode
  objects. Carbon only.

What is not in this distribution
--------------------------------

- The garbage collection mods have not been enabled, mainly due to lack of test-time.
- Stackless Python/microthreads hasn't been ported to 2.1 yet. If/when it becomes available
  Just will undoubtedly announce it on pythonmac-sig and the MacPython homepage.

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.1.1 (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.
- 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.
- Under Carbon on OS9 only you may occasionally see a spurious KeyboardInterrupt. I have absolutely
  no clue as to what is causing this.
- 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).
