1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
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
construction).
- (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
prompt
- 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
folder
- (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
tree.
- 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
incompatible):
- 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
10-Oct-95
|