1. Armin Rigo
  2. cpython-withatomic


cpython-withatomic / Mac / Relnotes-1.3

The branch 'legacy-trunk' does not exist.
	Changes since 1.3beta3
- MkPluginAliases.py now works in a virgin distribution environment. It is
  also distributed as an applet.
- hexbin from binhex.py has been fixed
- various bits and pieces in readme files clarified
- mkapplet bug wrt owner resource (and, hence, trouble starting applets) fixed.
- Compiled with CodeWarrior 7.
- AE client modules generated with gensuitemodule.py now use keyword args.
- img modules updated to latest version (including pbm and sgi support).
- Everything compiled with all optimization options available. Let me know
  if you suspect errors that are due to this.

	Changes since Python 1.2 for the mac
- PPC python now uses a shared library organization. This allows the
  creation of dynamically loadable extension modules (contact me) and
  creation of python applets (see mkapplet.py). A number of previously
  builtin modules are now dynamically loaded. Dynamically loaded
  modules are distributed in the PlugIns folder.
- Python modules can live in 'PYC ' resources (with a name equal to the
  module name, so many modules can live in a single file). If you put a
  file (in stead of a folder) in sys.path its resources will be searched.
  See the PackLibDir script for creating such a file.
- new binhex module (partially working, hexbin has problems)
- Python now has a Preferences file, editable with
  EditPythonPrefs. Remembered are the python 'home folder' and the
  initial value for sys.path. If no preferences file is found a simple
  one is created.
  NOTE: this only works correctly if you start python the first time
  from the correct folder.
- new img modules, to read/write/convert images in various formats
- new MacOS toolbox modules: AE, Ctl, Dlg, Event, List, Qd, Res, Snd
  and Win. These provide access to various of the MacOS toolbox
  interfaces. No documentation yet, but the __doc__ strings provide at
  least the calling sequence (and Inside Mac will give you the
  semantics). Minimal demos are provided for most toolbox interfaces,
  and the 'scripts' directory has some more examples.
- AppleEvent client interfaces can be generated from aete/aeut
  resources. No support for objects yet, nor for server interfaces.
- Lib:mac:FrameWork.py has an application framework (under
- (PPC Only) support for building Python applets: tiny standalone
  python applications.
- fp = open(filename, '*r') opens resource-fork of a file for reading
  (and similar for writing).
- option-dragging a file to the interpreter (or immedeately pressing
  <option> after launching python) will bring up an Options dialog
  allowing you to set options like import-tracing, etc.
- MacOS module method added: GetErrorString(OSErr) -> error string
- There is now a numbering convention for resource-ID's:
  128-255	Resources used by the interpreter itself
  256-511	Resources used by standard modules
  512-		Resources for applications
- macfs module changes:
  - StandardGetFile without type arguments now shows all files
  - PromptGetFile(prompt, ...) is like StandardGetFile but with a
  - GetDirectory (let user select a folder) added
  - GetFInfo and SetFInfo methods of FSSpec objects get/set finder
    info. FInfo objects have attributes Creator, Type, etc.
  - FindFolder (locate trash/preferences/etc) added
- mactcp/macdnr changes: bug fix wrt idle-loop.
- EditPythonPrefs script: change initial sys.path and python home
- (PPC only) MkPluginAliases: Setup aliases for dynamically loadable
  modules that live in a single shared library
- PackLibDir: Convert Lib directory to a single resource file
  containing all .pyc code
- fixfiletypes: Set file types based on file extension over a whole
- RunLibScript: Run any script as main program, optionally redirecting
  stdin/stdout, supplying arguments, etc.
- binhextree: Binhex all files in a tree, depending on the extension.
- (PPC only) mkapplet: Create a python applet from a sourcefile and
  (optional) resourcefile.
	Known problems
- 68K python reacts rather violently to out-of-memory situations. In
  stead of raising MemoryError it will crash, possibly bringing down the
  whole system. This is being investigated.
- The installation procedure is baroque. Ideas for improvement are welcome.
- The full documentation should be ported to AppleGuide. This should be
  a fairly simple automatic translation but I am not well-versed enough in
  AppleGuide to do it. Any takers?
- stdwin still has trouble with getting the clipboard (for cut/copy). Any
  hints for fixing this will be looked into (but I am not going to spend
  ages on this, especially without anyone asking me to).
- Be careful when copy/pasting in the stdin/stdout window. If you type
  something when you have the insertion point is not at end-of-window you
  may experience a system hang. (thanks, Just!)

	What will change shortly
I am planning to do an intermediate release shortly (1.3.1??), mainly
because Guido was so fast with 1.3 that I didn't have time to do some
things I wanted. Expect the following changes shortly (note that some are
- CFM68K support,bringing applets and dynamic loading to the 68K macs.
- Bgen-generated toolbox interfaces will go to a different place,
  probably :Lib:mac:toolbox
- Resource objects now often perform the role of a Handle object. This
  will change with the introduction of a Handle object and some sort of
  simulated inheritance.
- AE suites generated with gensuitemodule will be restructured, whereby it
  will be easier to override/extend standard suites. Also, server suites
  will also be generated, and hopefully objects will be supported.
- Event handling is currently rather messy, with python, SIOUX, stdwin and
  the python application all fighting over the events. This will somehow
  be changed.
  		Jack Jansen, jack@cwi.nl