1. Armin Rigo
  2. cpython-withatomic


cpython-withatomic / Mac / Relnotes-1.4b3

The branch 'legacy-trunk' does not exist.
	Changes between 1.4b3 and 1.3.3

Aside from all the changes Guido made to the machine-independent part
of Python the following mac-specific changes have been made:

- The standard 68K Python is built for CFM68K. This means that PPC and
  68K Python are now largely compatible, both supporting dynamically
  loaded modules, python applets, etc.
  As a result of this there have been numerous subtle changes in
  filenames for PPC plugin modules and such, but these changes should
  be transparent to Python programs.
  The one missing module in cfm68k is Macspeech, for which no CFM68K
  interface library is available (yet?).
- Raise MemoryError on stack overflow.
- Python now always uses 8-byte doubles.
- Removed mactcp, macdnr and stdwin modules from standard
- New releases of Tcl/Tk (4.1p1), CWGUSI (1.7.2) and Waste (1.2f) have
  been incorporated.
- Macfs.SetFolder method added, which sets initial folder for standard
  file dialogs.
- New py_resource module to handle PYC resources.
- List mgr objects "selFlags" and "listFlags" members now accessible.
- QuickDraw got a few new symbolic constants.
- Qt and Cm modules now live in a separate dynamically loadable
  module, so other toolbox modules work if you don't have QuickTime
- Old sound mgr calls {Set,Get}SoundVol removed, version number
  interface changed.
- Added convenience routines setarrowcursor and setwatchcursor to
- Bugfixes to time.sleep(), FrameWork, macostools,
- Minor fixes/additions/updates to demos and documentation in the Demo
- Internal changes:
  - Ported to CW9
  - mwerks_????_config.h organization rationalized
  - Projects renamed to reflect architecture (ppc, cfm68k, 68k).
  - various defines (HAVE_CONFIG_H, USE_MAC_DYNAMIC_LOADING) no longer
  - shared-library architecture made more conforming to metrowerks
    documentation. Check xx plugin projects if you have built your own
    dynamically loaded modules.
	Changes between 1.3.3 and 1.3.2

A major change since 1.3.2 is in the organization of the files: The
Mac folder has mac-specific demo programs, attempts at documentation and
more. Browse the HTML files in Mac:Demo for more info.

Also, Toolbox:bgen is not needed anymore for normal use: the relevant
python modules have been moved to Mac:Lib:toolbox.

Other changes:
- Uses final Tk 4.1 and Tcl 7.5 distributions.
- Override preferences (stored in the interpreter/applet application)
  allow overriding of system-wide preferences. Explained in
- New functionality in FrameWork.py:
  - ScrolledWindow class
  - enable(), settext(), setitem(), setmark(), seticon(),
    checkmenu() and delete() methods for menu entries.
  - event parameter added to idle() method
  - windowbounds() function helps programmer with staggering windows.
  - Erase only visRgn on an update event.
- TextEdit interface module added
- Waste interface module added
- Demos for waste, including skeleton for html editor
- Scrap manager interface added
- Ctl.FindControl() could return reference to deleted object. Fixed.
- GrafPorts have an _id attribute (address of grafport) allowing them
  to be compared (since a new python object is created each time).
- Standard File folder no longer changed on chdir() (this was
  introduced in 1.3.2).
- sys.argv can now be set if you option-drag or option-click a python
- Various dialogs now have sensible defaults.
- binhextree is now a bit more intelligent about when to binhex.
- gensuitemodule fixed to hand '****' type arguments.

	Changes between 1.3.2 and 1.3.1

The main reason for the 1.3.2 distribution is the availability of Tk
for the mac. The Tk port and its integration in Python is definitely
not bug-free, hence this distribution should be treated as beta
software at best.

Another major change in this release is that the Python I/O system is
now based on the GUSI library. This is an I/O library that attempts to
mimic a Posix I/O system. Hence, modules like socket and select are
now available in MacPython. If you build dynamically loaded modules
and you use any unix-like feature such as stat() calls you should
compile using the GUSI include files.

A third major change is that the MacOS creator code has been changed
from 'PYTH' to 'Pyth', due to a conflict. This means that you will
have to change the creator of all your old python programs. The
distribution contains a script "FixCreator.py" that does this
recursively for a whole folder.

Here are all the changes since 1.3.1, in no particular order:
- complex number support added
- cmath module added
- startup options ("option-drag" dialog) can be retrieved from the
  preferences file. EditPythonPrefs hasn't been updated yet, though.
- Creator changed from PYTH to Pyth
- {mac,os}.unlink is now also called {mac,os}.remove
- {mac,os}.mkdir second arg optional
- dup and fdopen calls added
- select module added
- socket module added
- open(file, '*r') for opening resource forks has been removed. It is
  replaced by MacOS.openrf(file, 'r'), which returns a simple
  file-like object to read (or write) resource forks.
- Added AppleEvent URL suite
- Added AppleEvent netscape suite
- QuickDraw globals are now all accessible, as Qd.qd.xxxx

	Mac-specific changes between 1.3 and 1.3.1

Aside from the changes mentioned here there have also been some
changes in the core python, but these are not documented here.
However, these changes are mainly bugfixes, so there shouldn't be any

- imgsgi and imgpbm modules added
- Various hooks installed to allow integration with MacTk (currently
- Added support for MacOS Fixed type in toolbox arguments (represented
  as floats in python)
- Added option to keep output window open on normal termination
- Decreased minimum heapsize to run interpreter
- Added progress-bar to EasyDialogs
- Fixed socket.getportname()
- Renamed MACTCP.py to MACTCPconst.py

- Many fixes to FrameWork.py:
  - Added window.SetPort() method
  - Added optional bounds and resid parameters to Window.open()
  - Fixed apple-menu DA handling
  - Fixed activate-event handling
  - Added default Application.makeusermenus() (File:Quit only)
  - Fixed bug with keyboard input handling
  - added idle() method, called from event loop if there are no events

Toolbox modules:
- component manager module added
- quicktime module added
- font manager module added
- Added color window support
- Added support to obtain pixmap from a window
- Added BitMap type
- Added GrafPort type
- Added support for PenState, Patterns, FontInfo, RGB colors,
- Fixed GetPen and SetPt arguments
- Added read access to members of {C}GrafPort objects
- Added support for cursors
- Provide access to some QuickDraw globals
- Fixed InsetRect, OffsetRect, MapRect
- Added support for various handles such as PatHandle, CursHandle
- Added functions to access members of Window objects