Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 028f2d5

Browse files
committed
Started on release notes and readme for 2.2a2.
1 parent 79248aa commit 028f2d5

2 files changed

Lines changed: 113 additions & 52 deletions

File tree

Mac/ReadMe

Lines changed: 87 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
How to install Python 2.1.1 on your Macintosh
1+
How to install Python 2.2a2 on your Macintosh
22
---------------------------------------------
33

44
This is a MacPython that can run on classic MacOS (from 8.1
55
onwards) and natively on MacOSX. The installer tries to work out whether you can
66
use the Carbon version or not.
77

8-
You should definitely read the Relnotes file too.
8+
You should definitely read the Relnotes file too, and the section below about
9+
toolbox module reorganization.
910

1011
A special note about the active installer: do not background it, it may hang
1112
your machine. This is a general problem with Vise active installers, MindVision
1213
are working on it.
1314

15+
Aside from the general new Python 2.2a2 listed in the general relnotes file
16+
there is some other new machine-independent stuff in this release as well, as
17+
it was built from newer sources than unix/windows 2.2a2.
1418
------
1519

1620
If this is your first encounter with Python: you definitely need the
@@ -24,18 +28,88 @@ Mac-specific documentation is included in this distribution in folder
2428
Mac:Demo. The documentation is sparse, but it will have to serve for
2529
now. The documentation is in HTML format, start with index.html.
2630

27-
Caveats
28-
-------
29-
Aside from the general new Python 2.1.1 features compared to 2.0 the main
30-
feature of this release is Carbon support.
31-
3231
This installer installs MacPython for classic PPC MacOS, MacPython for Carbon
3332
(OS X, OS 9 or OS8 with CarbonLib installed) or both, depending on your
3433
configuration. By selecting custom install you can bypass these tests and
3534
install what you want.
3635

3736
If you want 68k support you will have to stay with MacPython 1.5.2.
3837

38+
Toolbox module reorganization and more
39+
--------------------------------------
40+
41+
You can safely skip this section if this is your first encounter with MacPython.
42+
43+
I am working on a new organization of the mac-specific modules, and in
44+
general bringing the MacPython folder structure more in line with
45+
unix-Python. This is not only a good idea, it will also immensely
46+
facilitate moving MacPython functionality to an OSX Python that is based
47+
on Mach-O and the unix-Python distribution. But don't worry: MacPython
48+
is definitely not dead yet, and the hope is that the transition will be
49+
as seamless as possible.
50+
51+
First a change that should not cause too much concern: :Mac:Plugins has
52+
gone, and most of the dynamically loaded modules have moved to
53+
:Lib:lib-dynload.
54+
55+
Second, and more important: the toolbox modules, such as Res and
56+
Resource, have moved to a Carbon package. So, in stead of "import Res"
57+
you should now say "from Carbon import Res" and in stead of "from Res
58+
import *" you should use "from Carbon.Res import *". For the lifetime of
59+
MacPython 2.2 there is a folder :Mac:Lib:lib-compat on sys.path that
60+
contains modules with the old names which imports the new names after
61+
issuing a warning.
62+
63+
Note that although the package is called Carbon the modules work fine under
64+
classic PPC, and they are normal classic modules. Also note that some
65+
modules you may think of as toolbox modules (such as Waste) really are not,
66+
and they are not in the Carbon package.
67+
68+
Some open issues I would like to discuss on the PythonMac-SIG, please join
69+
in if you have views on the matter:
70+
- Is this all a good idea?
71+
- Some modules are not in the Carbon package (icglue, for instance, or
72+
supporting module such as aetools and aepack) and maybe they should be,
73+
some are (ControlAccessors) which arguably should not. Opinions are welcome.
74+
- I'm tempted to put Qt and QuickTime into their own package, especially
75+
since I'm also working on porting it to Windows. It would also be in line
76+
with Apple's organization. Opinions?
77+
- Should we get rid of the Res/Resource dichotomy, where the first is the
78+
extension module and the second is the Python module with the constants?
79+
We could simply import the extension module functionality into the Python
80+
module, at the expense of a rather large namespace.
81+
- Should we have a Carbon.Carbon module that simply imports the whole world,
82+
so that "from Carbon.Carbon import *" is pretty much equivalent to the C
83+
#include <Carbon/Carbon.h>?
84+
- Should we put all the other Mac modules into a Mac package? This will make
85+
MacPython programs a lot more verbose, but that is a good thing too if people
86+
try to port Mac Python scripts to other platforms.
87+
Should the Carbon package then be a sub-package of the Mac package?
88+
89+
Another change related to the OSX growth path is that there is a new module
90+
macresource that you can use to easily open a resource file accompanying your
91+
script. Use "macresource.need("DLOG", MY_DIALOG_ID, "name.rsrc") and if the
92+
given resource is not available (it _is_ available if your script has been
93+
turned into an applet) the given resource file will be opened. This method will
94+
eventually also contain the magic needed to open the resource file on
95+
OSX MachO Python.
96+
97+
... and more
98+
------------
99+
100+
A feature that I am not sure about (so: feedback!) is that if you open a textfile
101+
for reading MacPython will now accept either unix linefeeds (LF, '\n') or
102+
Macintosh linefeeds (CR, '\r') and present both of them as '\n'. This is done on
103+
a low level, so it works for files opened by scripts as well as for your scripts
104+
and modules itself.
105+
106+
But:
107+
- this works only for input, and there's no way to find out what the original
108+
linefeed convention of the file was.
109+
- this is unconditional, so there's no way to turn it off, either on a file-by-file
110+
basis or globally (but opening binary files works as it always has, of course).
111+
- Windows \r\n linefeeds are not supported and get turned into \n\n.
112+
39113
What to install
40114
---------------
41115

@@ -44,7 +118,7 @@ The optional parts in this distribution are
44118
package (allows you to read, write and display images and do lots of operations on them).
45119
For Carbon MacPython you only get PIL: there is no Tcl/Tk for Carbon yet.
46120
This is the reason Classic MacPython is also installed on MacOSX: it allows you
47-
to run Tkinter applications, albeit in the MacOS9 box.
121+
to run Tkinter applications, albeit in the Classic box.
48122
- img: another imaging package. Has more file format support and is faster
49123
than imaging, but has only limited operations on images. There is a bridge
50124
between the packages.
@@ -104,7 +178,7 @@ Uninstalling
104178

105179
Two items are installed in the system folder: the interpreter shared
106180
libraries PythonCore and PythonCoreCarbon lives in the Extensions folder and the
107-
"Python 2.1.1 Preferences" file in the Python subfolder in the
181+
"Python 2.2a2 Preferences" file in the Python subfolder in the
108182
Preferences folder. All the rest of Python lives in the folder you
109183
installed in.
110184

@@ -113,7 +187,7 @@ in OSX that is triggered by Python: if any orphaned aliases are left in
113187
/Library/CFMSupport your machine will start to behave very badly. 2.1
114188
beta installers triggered this problem if you simply threw away your Python folder,
115189
so if you installed a 2.1beta you should clean out the aliases in /Library/CFMSupport
116-
too. The final 2.1 installer always copied the shared libraries on OSX, so it does
190+
too. The final 2.1 and 2.1.1 installers always copied the shared libraries on OSX, so it does
117191
not have the problem anymore.
118192

119193
Things to see
@@ -153,11 +227,11 @@ that this means you can keep your older version around if you are unsure
153227
whether to upgrade. The bad news is that your old preference settings
154228
are lost and you have to set them again.
155229

156-
After you are satisfied that 2.1.1 works as expected you can trash
230+
After you are satisfied that 2.2a2 works as expected you can trash
157231
anything in the system folder that has "python" in the name and not
158-
"2.1.1".
232+
"2.2a2".
159233

160-
As of 2.1 the ConfigurePython applets will try to detect incompatible preferences
234+
The ConfigurePython... applets will try to detect incompatible preferences
161235
files and offer to remove them. This means that re-running ConfigurePython after
162236
a second install of the same MacPython version (or after moving the Python folder)
163237
should fix things up correctly.

Mac/Relnotes

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,44 @@
1-
Changes in 2.1.1 since 2.1
2-
--------------------------
1+
Changes in 2.2a2 since 2.1.1
2+
----------------------------
33

44
These release notes refer to Mac-specific changes only. See NEWS (in the Misc folder)
5-
for machine-independent changes.
5+
for machine-independent changes. But note that more things may have changed: MacPython
6+
2.2a2 is built from newer sources than unix/windows 2.2a2 (for CVS users: the r22a2-mac
7+
tag is what you are looking for).
68

7-
- Handling non-ascii characters in sys.path on non-MacRoman systems should be fixed,
8-
iff MacPython has a codec for the charset. Otherwise you should get an error, at least.
9-
Pathnames in sys.path also retain their original case again.
10-
- IDE could crash on corrupt preferences. Fixed.
11-
- IDE will now work if you use either pre or sre as re.
12-
- Evt.WaitNextEvent could give an error when bit 15 was set, which could cause a problem
13-
with IDE in classic mode. Fixed.
14-
- MacOS8.X users in classic mode had problems with Fm not loading, which also caused
15-
IDE not working. Fixed.
16-
- Fm.IsAntiAliasedTextEnabled and Fm.SetAntiAliasedTextEnabled have gone for now, to
17-
fix the problem above.
18-
- Disabled the Tkinter file I/O event handler, which was there but didn't work anyway.
19-
- Problems with loading dynamic modules that are part of a package into BuildApplication-
20-
generated programs were fixed.
21-
- The order of the EasyDialogs yes/no/cancel buttons has been conformed to the Mac
22-
standard.
23-
- Handling of Dialogs and Windows that were not created by Python is a bit more graceful
24-
now, which may fix some crashes.
25-
- Ctl.SendControlMessage has gone. But it didn't work anyway.
26-
- Various problems with the TextEdit and Waste demos have been fixed.
27-
- Embedding/extending only: in preparation to allowing the use of MacPython modules in
28-
unix-Python on OSX the xxx_New and xxx_Convert routines are now optionally vectored via
29-
glue routines in macglue.c. The only change that may be needed for embedders/extenders is
30-
that you may want to include pymactoolbox.h in your sources.
31-
- Embedding/extending only: Most MacPython source is now much more Mach-O friendly, and
32-
should work with Universal Headers 3.4.
33-
- Experimental: an Mlte module has been added, an interface to the Multi Lingual Text
34-
Engine. There is a minimal example in :Mac:Demos:mlte.
35-
- Experimental: some support for FSRef objects has been added. You can do little more that
36-
convert them to/from FSSpecs. Carbon only.
37-
- Experimental: the CF module has some support for CoreFoundation types. CFString
38-
and CFURL work, to a degree, and can be converted to/from Python strings and Unicode
39-
objects. Carbon only.
9+
- The main change is that all toolbox modules have moved to a package called Carbon.
10+
So things like "import Res" should be changed to "from Carbon import Res", and
11+
"from Res import *" to "from Carbon.Res import *". Please see the readme file for
12+
some open questions and join the discussions on pythonmac-sig if you have anything
13+
to contribute. Aside from reducing clutter this change will also benefit the
14+
port to Mach-O/OSX Python later.
15+
- On input MacPython now accepts either \n (unix style) or \r (mac style) newlines
16+
for text files. This is an experimental feature; again: feedback is requested.
17+
- There is a new module macresource which makes it easier to open a resource file
18+
accompanying your script when the script is not (yet) converted to an applet.
19+
This module will later also do the right thing in Mach-O/OSX Python.
20+
- Threads had a stack that was too small for many serious Python applications (20K).
21+
They now get 64K. There is still no overflow check, though.
22+
- Garbage collection and the gc module have (finally) been enabled.
23+
- EasyDialogs.ProgressBar now has indeterminate progressbars if you specify maxval=0.
24+
This is also the new default. Patch supplied by Dean Draayer.
25+
- Various outdated scripts have been moved to :Mac:Unsupported.
26+
- Various outdated items from :Mac:Lib:test have been removed.
4027

4128
What is not in this distribution
4229
--------------------------------
4330

44-
- The garbage collection mods have not been enabled, mainly due to lack of test-time.
45-
- Stackless Python/microthreads hasn't been ported to 2.1 yet. If/when it becomes available
31+
- Stackless Python/microthreads hasn't been ported to 2.2 yet. If/when it becomes available
4632
Just will undoubtedly announce it on pythonmac-sig and the MacPython homepage.
33+
- The toolbox modules have not been updated to Universal Header 3.4 or CarbonLib 1.4 yet.
4734

4835
Known problems
4936
--------------
5037

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

54-
- MacPython 2.1.1 (and MacPython 2.1) will not run correctly on a multiprocessor MacOS X
41+
- MacPython 2.2a2 (and MacPython 2.1) will not run correctly on a multiprocessor MacOS X
5542
machine, it will quickly deadlock during I/O operations. The GUSI I/O library is suspected,
5643
hints/clues/workarounds are solicited.
5744
- Tkinter does not work under Carbon.

0 commit comments

Comments
 (0)