summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
Diffstat (limited to 'Mac')
-rw-r--r--Mac/HISTORY602
-rw-r--r--Mac/Relnotes55
-rw-r--r--Mac/Relnotes-1.1131
-rw-r--r--Mac/Relnotes-1.2169
-rw-r--r--Mac/Relnotes-1.3118
-rw-r--r--Mac/Relnotes-1.3.3125
-rw-r--r--Mac/Relnotes-1.4b3171
-rw-r--r--Mac/Relnotes-source54
8 files changed, 663 insertions, 762 deletions
diff --git a/Mac/HISTORY b/Mac/HISTORY
new file mode 100644
index 0000000..5eb8fec
--- /dev/null
+++ b/Mac/HISTORY
@@ -0,0 +1,602 @@
+This file contains the release notes of older MacPython versions.
+
+ Changes between 1.4 and 1.3.3
+ -------------------------------
+
+Aside from all the changes Guido made to the machine-independent part
+of Python (see NEWS for those)the following mac-specific changes have
+been made:
+
+- Preference file and other items in the System folder now have the
+ version number in their name, so old and new python installations
+ can coexist.
+- Fixed a GUSI crash when exiting with files open.
+- Fixed interference with some extensions that added resources that
+ looked like ours.
+- Fixed slowness of Python in the background.
+- About box added (at last...).
+- New release of CWGUSI (1.8.0) incorporated. Note that for Tcl/Tk the
+ 4.1p1 release is still used (4.2 was a little too late). Everything
+ ported to CW10.
+- Applets can now turn off argc/argv processing (so they can do their
+ own initial AppleEvent handling). Applets can also delay opening the
+ console window until it is actually used (and, hence, not open it at
+ all by refraining from using it).
+- MiniAEFrame: Preliminary AppleScript server support. Example code
+ provided, including an initial stab at writing CGI scripts in Python.
+- macfs: FindApplication() locates application given 4-char creator
+ code.
+- macfs: GetDates and SetDates get and set creation date, etc.
+- FrameWork: preferred method of ending mainloop() is calling _quit().
+- FrameWork: different menubar handling resulting in less flashing
+ during menu creation.
+- FrameWork: added setarrowcursor and setwatchcursor functions.
+- findertools: new module that makes various finder features
+ available.
+- macostools: copy file times too.
+- macostools: added touch() to tell finder about changes to a file.
+- macerrors: New module with symbolic names for all os-releated
+ errors.
+- EasyDialogs: ProgressBar fixed.
+- aetools: start application if needed
+- aetools: use aetools.error for server-generated errors, MacOS.error
+ for communication errors, etc.
+- Finder_7_0_Suite: New module with the "simple" finder scripting
+ interface.
+- mac (aka os): xstat() returns resourcesize, creator, type in
+ addition to stat() information.
+- MacOS: added DebugStr method to drop to low-level debugger.
+- MacOS: fixed splash() to actually draw the splash box:-)
+- Ctl: fixed very nasty bug in DisposeControl and object deletion.
+- Dlg: Added GetDialogWindow and other accessor functions
+- Waste: fixed bug with object hanlder installation
+- Waste: added tab support
+- time: added strftime
+- twit: a windowing debugger for Python (preliminary release)
+- BBPy: a BBEdit extension that send scripts to the Python interpreter,
+ by Just van Rossum.
+
+The following set of changes were already in place for the 1.4b3
+release:
+- 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
+ distribution.
+- 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
+ installed.
+- Old sound mgr calls {Set,Get}SoundVol removed, version number
+ interface changed.
+- Added convenience routines setarrowcursor and setwatchcursor to
+ FrameWork.
+- Bugfixes to time.sleep(), FrameWork, macostools,
+- Minor fixes/additions/updates to demos and documentation in the Demo
+ folder.
+- 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
+ needed.
+ - 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
+ "using.html".
+- 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
+ source.
+- 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
+incompatabilities.
+
+- imgsgi and imgpbm modules added
+- Various hooks installed to allow integration with MacTk (currently
+ disabled)
+- 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
+ pending
+
+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
+
+
+
+ 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.
+
+ PYTHON 1.2 FOR THE MACINTOSH
+ ****************************
+
+Python can be built on the Mac using either THINK C 6.0 (or 7.0), or
+CodeWarrior 5.0 (for 68K and PPC). In the past it has also been compiled
+with earlier versions of Think, but no guarantees are made that the
+source is still compatible with those versions. (Think C 5.0 appears
+to be OK.) Likewise, new compiler versions may effectively change the
+language accepted (or the library provided!) and thus cause problems.
+
+MPW is a special case -- it used to be possible to build Python as
+an MPW tool using MPW 3.2, and this may still work, but I haven't
+tried this lately. What I have tried, however, is building Python
+as a shared library for CFM-68K, using the Symantec C compiler for MPW.
+See subdirectory MPW and the README file there for more info.
+
+
+1. Using Think C 6.0 (or 7.0)
+=============================
+
+1.1 The directory structure
+---------------------------
+
+I duplicate the UNIX directory structure from the distribution. The
+subdirectories needed to compile are: Mac, Include, Parser, Python,
+Objects, Modules. (Don't bother with Grammar and the parser
+generator, nor with the Doc subdirectory.)
+
+For running and testing, you also need Lib and its subdirectories test
+and stdwin. You could also copy some things from the Demo/stdwin
+directory (unfortunately most other demos are UNIX specific and even
+many stdwin demos are).
+
+Make sure there is no config.c file in the Modules subdirectory (if
+you copy from a directory where you have done a UNIX build this might
+occur). Also don't use the config.h generated on UNIX.
+
+1.2 The project file
+--------------------
+
+I put all source files in one project, which I place in the parent
+directory of the source directories.
+
+1.2.1 Project type
+
+(This is the Set Project Type... dialog in the Project menu.)
+
+Set the creator to PYTH; turn on "far data"; leave "far code" and
+"separate strs" unchecked (they just serve to bloat the application).
+A partition size of 1000K should be enough to run the standard test
+suite (which requires a lot of memory because it stress tests the
+parser quite a bit) and most demos or medium-size applications. The
+interpreter will do basic things in as little at 500K but this may
+prevent parsing larger modules.
+
+1.2.2 Compiler options
+
+(This is the Options -> THINK C ... dialog in the Edit menu.)
+
+ - Start with Factory Settings.
+
+ - In the Prefix, remove #include <MacHeaders> and add
+ #define HAVE_CONFIG_H
+
+ - Choose any optimizer and debugger settings you like. - You
+ can choose 4-byte ints if you want. This requires that you
+ rebuild the ANSI and unix libraries with 4-bytes ints as well
+ (better make copies with names like ANSI 32 bit). With 4-byte
+ ints the interpreter is marginally bigger and somewhat (~10%)
+ slower, but Python programs can use strings and lists with
+ more than 32000 items (with 2-byte ints these can cause
+ crashes). The range of Python integers is not affected (these
+ are always represented as longs). In fact, nowadays I always
+ use 4-byte integers, since it is actually rather annoying that
+ strings >= 64K cause crashes.
+
+1.2.3 Files to add
+
+(This is the Add Files... dialog in the Source menu.)
+
+The following source files must be added to the project. I use a
+separate segment for each begin letter -- this avoids segment
+overflow, except for 'c', where you have to put either ceval.c or
+compile.c in a separate segment. You could also group them by
+subdirectory or function, but you may still have to split segments
+arbitrarily because of the 32000 bytes restriction.
+
+ - From Mac: all .c files.
+
+ - From Parser: acceler.c, grammar1.c,
+ myreadline.c, node.c, parser.c, parsetok.c, tokenizer.c.
+
+ - From Python: bltinmodule.c, ceval.c, cgensupport.c,
+ compile.c, errors.c, getargs.c getopt.c, graminit.c, import.c,
+ importdl.c, marshal.c, modsupport.c, mystrtoul.c,
+ pythonmain.c, pythonrun.c, sigcheck.c, structmember.c,
+ sysmodule.c, traceback.c (i.e. all .c files except dup2.c,
+ fmod.c, frozenmain.c, getcwd.c, getmtime.c, memmove.c,
+ sigcheck.c, strerror.c, strtod.c, thread.c)
+
+ - From Objects: all .c files except xxobject.c.
+
+ - From Modules: all the modules listed in config.c (in the Mac
+ subdirectory) in the initializer for inittab[], before
+ "ADDMODULE MARKER 2". Also add md5c.c if you add md5module.c,
+ and regexpr.c if you add regexmodule.c. (You'll find
+ macmodule.c in the Mac subdirectory, so it should already have
+ been added in a previous step.) Note that for most modules,
+ the source file is called <name>module.c, but for a few long
+ module names it is just <module>.c. Don't add stdwinmodule.c
+ yet,
+
+The following THINK C libraries must be added: from Standard
+Libraries, ANSI and unix; from Mac Libraries, MacTraps. I put each
+library in a separate segment. Also see my earlier remark on 4-byte
+ints.
+
+1.4 Adding STDWIN
+-----------------
+
+STDWIN is built in two separate projects: stdwin.pi contains the core
+STDWIN implementation from Ports/mac, textedit.pi contains the files
+from Packs/textedit. Use the same compiler options as for Python and
+the same general source setup (in a sister directory of the toplevel
+Python directory). Put all sources in the same segment. To
+stdwin.pi, also add Tools/strdup.c and Gen/wtextbreak.c.
+
+The two projects can now be added as libraries to the Python project.
+You must also add stdwinmodule.c and add "#define USE_STDWIN" to the
+Prefix in the compiler options dialog (this only affects macmain.c and
+config.c).
+
+Note that stdwinmodule.c contains an #include statement that
+references "stdwin.h" by relative path name -- if the stdwin toplevel
+directory is not a sibling of the python toplevel directory, you may
+have to adjust the number of colons in the pathname.
+
+1.5 Resources
+-------------
+
+Since I created them with ResEdit I have no text source of the
+resources needed to give the application an icon etc... You can copy
+the size, bundle, file reference and icon resources from the
+distributed Python application with ResEdit. THINK C automatically
+copies resources into the application file from a file
+<projectname>.rsrc.
+
+1.6 Think C 5.0
+---------------
+
+Tim Gilbert adds one note that will be helpful to future Think C 5.0
+users: When you have a really big project like python, and you want to
+compile and run it, if you just hit Command-R, often Think C will
+compile the remaining files, think for a moment, and then give you a
+warning "internal error(ZREF)--please remove objects." Don't listen
+to it. It is lying. What you should do instead is "Check Link..."
+and _then_ hit Run. Why? Ask Symantec.
+
+
+2. Using MicroWerks CodeWarrior 5.0
+===================================
+
+Essentially, follow the instructions for Think C.
+
+XXX Should at least list the project options.
+
+
+--Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>
+<URL:http://www.cwi.nl/cwi/people/Guido.van.Rossum.html>
+
+ PYTHON RELEASE NOTES FOR THE MACINTOSH
+ VERSION 1.1
+
+For the most part, Python on the Mac works just like Python under UNIX.
+The most important differences are:
+
+- Since there is no shell environment on the Mac, the start-up file
+ has a fixed name: PythonStartup. If a file by this name exists
+ (either in the current folder or in the system folder) it is executed
+ when an interactive interpreter is started.
+
+- The default search path for modules is different: first the current
+ directory is searched, then the subdirectories 'lib', 'lib:stdwin' and
+ 'demo'. As always, you can change this (e.g. in your PythonStartup
+ file) by assigning or appending to sys.path -- use Macintosh pathnames!
+ (The default contains no absolute paths because these are unlikely
+ to make sense on other people's hard disks.)
+
+- The user interface for typing interactive commands is different.
+ This is actually the THINK C console I/O module, which is based on
+ the Mac toolbox TextEdit. A standard Edit menu provides Cut, Copy,
+ Paste and Clear (Undo is only there for Desk Accessories). A minimal
+ File menu provides Quit, which immediately exits the application,
+ without the usual cleanup. You can Copy from previous output,
+ but you can't scroll back beyond the 24x80 screen. The TAB key
+ always brings you to the end of the current input line; indentation
+ must be entered with spaces (a single space is enough).
+ End-of-file is generated by Command-D; Command-Period interrupts.
+ There is an annoying limit in the length of an input line to a single
+ screen line (less the prompt). Use \ to input long statements.
+ Change your program if it requires long lines typed on input.
+ Even though there is no resize box, the window can be resized by
+ dragging its bottom right corner, but the maximum size is 24x80.
+
+- Tabs in module files are interpreted as 4 (four!) spaces. This is
+ consistent with most Mac editors that I know. For individual files
+ you can change the tab size with a comment like
+
+ # vi:set tabsize=8:
+
+ (exactly as shown here, including the colons!). If you are consistent
+ in always using tabs for indentation on UNIX, your files will be
+ parsed correctly on the Mac, although they may look funny if you
+ have nicely lined-up comments or tables using tabs. Never using tabs
+ also works. Mixing tabs and spaces to simulate 4-character indentation
+ levels is likely to fail.
+
+- You can start a script from the Finder by selecting the script and
+ the Python interpreter together and then double clicking. If you
+ make the owner of the script PYTH (the type should always be TEXT)
+ Python will be launched if you double click it!
+ There is no way to pass command line arguments to Python scripts.
+
+- The set of built-in modules is different:
+
+ = Operating system functions for the 'os' module is provided by the
+ built-in module 'mac', not 'posix'. This doesn't have all the
+ functions from posix, for obvious reasons (if you know the Mac
+ O/S a little bit). The functions in os.path are provided by
+ macpath, they know about Mac pathnames etc.
+
+ = None of the UNIX specific modules ('socket', 'pwd', 'grp' etc.)
+ exists.
+
+ = Module 'stdwin' is always available. It uses the Mac version of
+ STDWIN, which interfaces directly with the Mac toolbox. The most
+ important difference is in the font names; setfont() has a second
+ argument specifying the point size and an optional third one
+ specifying the variation: a single letter character string,
+ 'i' for italics, 'b' for bold. Note that when STDWIN is waiting
+ for events, the standard File and Edit menus are inactive but
+ still visible, and (most annoyingly) the Apple menu is also inactive;
+ conversely, menus put up by STDWIN are not active when the Python is
+ reading from the keyboard. If you open Python together with a text
+ file containing a Python script, the script will be executed and
+ a console window is only generated when the script uses standard
+ input or output. A script that uses STDWIN exclusively for its I/O
+ will have a working Apple menu and no extraneous File/Edit menus.
+ (This is because both stdwin and stdio try to initialize the
+ windowing environment; whoever gets there first owns the Apple menu.)
+ LIMITATIONS: a few recent additions to STDWIN for X11 have not yet
+ been added to the Mac version. There are no bitmap objects, and
+ the setwinpos() and setwinsize() methods are non--functional.
+
+- Because launching an application on the Mac is so tedious, you will
+ want to edit your program with a desk accessory editor (e.g., Sigma
+ edit) and test the changed version without leaving Python. This is
+ possible but requires some care. Make sure the program is a module
+ file (filename must be a Python identifier followed by '.py'). You
+ can then import it when you test it for the first time. There are
+ now three possibilities: it contains a syntax error; it gets a runtime
+ error (unhandled exception); or it runs OK but gives wrong results.
+ (If it gives correct results, you are done testing and don't need
+ to read the rest of this paragraph. :-) Note that the following
+ is not Mac-specific -- it's just that on UNIX it's easier to restart
+ the entire script so it's rarely useful.
+
+ Recovery from a syntax error is easy: edit the file and import it
+ again.
+
+ Recovery from wrong output is almost as easy: edit the file and,
+ instead of importing it, call the function reload() with the module
+ name as argument (e.g., if your module is called foo, type
+ "reload(foo)").
+
+ Recovery from an exception is trickier. Once the syntax is correct,
+ a 'module' entry is placed in an internal table, and following import
+ statements will not re-read the file, even if the module's initialization
+ terminated with an error (one reason why this is done is so that
+ mutually recursive modules are initialized only once). You must
+ therefore force re-reading the module with reload(), however, if this
+ happens the first time you try to import the module, the import statement
+ itself has not completed, and your workspace does not know the module
+ name (even though the internal table of moduesl does!). The trick is
+ to first import the module again, then reload it. For instance,
+ "import foo; reload(foo)". Because the module object already exists
+ internally, the import statement does not attempt to execute the
+ module again -- it just places it in your workspace.
+
+ When you edit a module you don't have to worry about the corresponding
+ '.pyc' file (a "compiled" version of the module, which loads much faster
+ than the textual version): the interpreter notices that the '.py' file
+ has changed (because its modification time has changed) and ignores the
+ '.pyc' file. When parsing is successful, a new '.pyc' file is written;
+ if this fails (no write permission, disk full or whatever) it is
+ silently skipped but attempted again the next time the same module
+ is loaded. (Thus, if you plan to place a Python library on a read-only
+ disk, it is advisable to "warm the cache" by making the disk writable
+ and importing all modules once. The standard module 'importall' helps
+ in doing this.)
diff --git a/Mac/Relnotes b/Mac/Relnotes
new file mode 100644
index 0000000..3295312
--- /dev/null
+++ b/Mac/Relnotes
@@ -0,0 +1,55 @@
+ Release notes for MacPython 1.5a2, 28-May-97
+ --------------------------------------------
+
+Here are the mac-specific changes since MacPython 1.4, with end-user-visible
+changes near the top and API changes and other things that are developer-only
+more to the bottom:
+
+- Module to interface to Internet Config added
+- Module calldll added that allows calling of arbitrary C routines
+ from MacOS toolboxes
+- gdbm module added
+- ctb error handling fixed, and some memory leaks plugged
+- Various of the documentation files in Mac:Demo have been updated
+- MacOS.string_id_to_buffer is a new hack: the number you have to
+ add to the id() of a string object to get the (data) memory address
+- MacOS.splash() double-free fixed
+- macfs.FSSpec.as_pathname() was incorrect for disk toplevel folders
+- QT.NewMovieFromFile has an extra parameter and an extra return value
+- EasyDialogs.ProgressBar has changed both in layout and interface
+- FrameWork.Application has a new cleanup() method which asks all windows
+ to close themselves.
+- Loading of PYC resources from the application greatly speeded up,
+ especially for CDROM based applications
+- interrupt check/eventloop only entered 10 times per second, giving
+ big speedup
+- Allow any object (file, folder, disk) to be dropped on an applet
+- Twit resource number conflict with debuggee fixed
+- sys.path preference can now be longer than 255 chars
+- cfmfile module allows parsing and merging of CFRG resources
+- PythonFAT and PythonApplet are now fat (PPC/CFM68K) applications, so
+ applets can be moved between architectures.
+- Twit resource number conflict with debuggee fixed
+- mkapplet now uses a progress bar in stead of print statements
+- unshar made a bit more mac-friendly (input output dialogs)
+- img: added png, xbm, bmp support
+- img: jpeg now uses IJG v6 library
+- img: import of imagefile support modules delayed until needed
+- img: better error handling for truncated images and such
+- img: imgop.unpack() can unpack formats with multiple pixels per byte
+
+
+- All files updated to new Py_ naming convention
+- Toolbox modules regenerated from new Universal Headers
+- nfullpath() merged into PyMac_GetFullPath()
+- Added support for Metrowerks profiler
+- Standard MW/MSL runtime libraries used in stead of homegrown version
+- Allow any object (file, folder, disk) to be dropped on an applet
+- Malloc now returns cache-line-aligned memory on PPC, which speeds
+ things up, especially on a 604. Dictionaries put this to good use.
+- statically linked pythons won't inadvertantly load .slb modules
+- Removed dependencies on PLStringFuncs and/or StdCLib
+- Project "segment" structure changed to more-or-less follow folder
+ structure
+- fullbuild redesigned
+- Added PyMac_Initialize() call, for use by embedding programs.
diff --git a/Mac/Relnotes-1.1 b/Mac/Relnotes-1.1
deleted file mode 100644
index 364c3ec..0000000
--- a/Mac/Relnotes-1.1
+++ /dev/null
@@ -1,131 +0,0 @@
-PYTHON RELEASE NOTES FOR THE MACINTOSH
-
-VERSION 1.1
-
-For the most part, Python on the Mac works just like Python under UNIX.
-The most important differences are:
-
-- Since there is no shell environment on the Mac, the start-up file
- has a fixed name: PythonStartup. If a file by this name exists
- (either in the current folder or in the system folder) it is executed
- when an interactive interpreter is started.
-
-- The default search path for modules is different: first the current
- directory is searched, then the subdirectories 'lib', 'lib:stdwin' and
- 'demo'. As always, you can change this (e.g. in your PythonStartup
- file) by assigning or appending to sys.path -- use Macintosh pathnames!
- (The default contains no absolute paths because these are unlikely
- to make sense on other people's hard disks.)
-
-- The user interface for typing interactive commands is different.
- This is actually the THINK C console I/O module, which is based on
- the Mac toolbox TextEdit. A standard Edit menu provides Cut, Copy,
- Paste and Clear (Undo is only there for Desk Accessories). A minimal
- File menu provides Quit, which immediately exits the application,
- without the usual cleanup. You can Copy from previous output,
- but you can't scroll back beyond the 24x80 screen. The TAB key
- always brings you to the end of the current input line; indentation
- must be entered with spaces (a single space is enough).
- End-of-file is generated by Command-D; Command-Period interrupts.
- There is an annoying limit in the length of an input line to a single
- screen line (less the prompt). Use \ to input long statements.
- Change your program if it requires long lines typed on input.
- Even though there is no resize box, the window can be resized by
- dragging its bottom right corner, but the maximum size is 24x80.
-
-- Tabs in module files are interpreted as 4 (four!) spaces. This is
- consistent with most Mac editors that I know. For individual files
- you can change the tab size with a comment like
-
- # vi:set tabsize=8:
-
- (exactly as shown here, including the colons!). If you are consistent
- in always using tabs for indentation on UNIX, your files will be
- parsed correctly on the Mac, although they may look funny if you
- have nicely lined-up comments or tables using tabs. Never using tabs
- also works. Mixing tabs and spaces to simulate 4-character indentation
- levels is likely to fail.
-
-- You can start a script from the Finder by selecting the script and
- the Python interpreter together and then double clicking. If you
- make the owner of the script PYTH (the type should always be TEXT)
- Python will be launched if you double click it!
- There is no way to pass command line arguments to Python scripts.
-
-- The set of built-in modules is different:
-
- = Operating system functions for the 'os' module is provided by the
- built-in module 'mac', not 'posix'. This doesn't have all the
- functions from posix, for obvious reasons (if you know the Mac
- O/S a little bit). The functions in os.path are provided by
- macpath, they know about Mac pathnames etc.
-
- = None of the UNIX specific modules ('socket', 'pwd', 'grp' etc.)
- exists.
-
- = Module 'stdwin' is always available. It uses the Mac version of
- STDWIN, which interfaces directly with the Mac toolbox. The most
- important difference is in the font names; setfont() has a second
- argument specifying the point size and an optional third one
- specifying the variation: a single letter character string,
- 'i' for italics, 'b' for bold. Note that when STDWIN is waiting
- for events, the standard File and Edit menus are inactive but
- still visible, and (most annoyingly) the Apple menu is also inactive;
- conversely, menus put up by STDWIN are not active when the Python is
- reading from the keyboard. If you open Python together with a text
- file containing a Python script, the script will be executed and
- a console window is only generated when the script uses standard
- input or output. A script that uses STDWIN exclusively for its I/O
- will have a working Apple menu and no extraneous File/Edit menus.
- (This is because both stdwin and stdio try to initialize the
- windowing environment; whoever gets there first owns the Apple menu.)
- LIMITATIONS: a few recent additions to STDWIN for X11 have not yet
- been added to the Mac version. There are no bitmap objects, and
- the setwinpos() and setwinsize() methods are non--functional.
-
-- Because launching an application on the Mac is so tedious, you will
- want to edit your program with a desk accessory editor (e.g., Sigma
- edit) and test the changed version without leaving Python. This is
- possible but requires some care. Make sure the program is a module
- file (filename must be a Python identifier followed by '.py'). You
- can then import it when you test it for the first time. There are
- now three possibilities: it contains a syntax error; it gets a runtime
- error (unhandled exception); or it runs OK but gives wrong results.
- (If it gives correct results, you are done testing and don't need
- to read the rest of this paragraph. :-) Note that the following
- is not Mac-specific -- it's just that on UNIX it's easier to restart
- the entire script so it's rarely useful.
-
- Recovery from a syntax error is easy: edit the file and import it
- again.
-
- Recovery from wrong output is almost as easy: edit the file and,
- instead of importing it, call the function reload() with the module
- name as argument (e.g., if your module is called foo, type
- "reload(foo)").
-
- Recovery from an exception is trickier. Once the syntax is correct,
- a 'module' entry is placed in an internal table, and following import
- statements will not re-read the file, even if the module's initialization
- terminated with an error (one reason why this is done is so that
- mutually recursive modules are initialized only once). You must
- therefore force re-reading the module with reload(), however, if this
- happens the first time you try to import the module, the import statement
- itself has not completed, and your workspace does not know the module
- name (even though the internal table of moduesl does!). The trick is
- to first import the module again, then reload it. For instance,
- "import foo; reload(foo)". Because the module object already exists
- internally, the import statement does not attempt to execute the
- module again -- it just places it in your workspace.
-
- When you edit a module you don't have to worry about the corresponding
- '.pyc' file (a "compiled" version of the module, which loads much faster
- than the textual version): the interpreter notices that the '.py' file
- has changed (because its modification time has changed) and ignores the
- '.pyc' file. When parsing is successful, a new '.pyc' file is written;
- if this fails (no write permission, disk full or whatever) it is
- silently skipped but attempted again the next time the same module
- is loaded. (Thus, if you plan to place a Python library on a read-only
- disk, it is advisable to "warm the cache" by making the disk writable
- and importing all modules once. The standard module 'importall' helps
- in doing this.)
diff --git a/Mac/Relnotes-1.2 b/Mac/Relnotes-1.2
deleted file mode 100644
index f11e343..0000000
--- a/Mac/Relnotes-1.2
+++ /dev/null
@@ -1,169 +0,0 @@
-BUILDING PYTHON 1.2 FOR THE MACINTOSH
-*************************************
-
-Python can be built on the Mac using either THINK C 6.0 (or 7.0), or
-CodeWarrior 5.0 (for 68K and PPC). In the past it has also been compiled
-with earlier versions of Think, but no guarantees are made that the
-source is still compatible with those versions. (Think C 5.0 appears
-to be OK.) Likewise, new compiler versions may effectively change the
-language accepted (or the library provided!) and thus cause problems.
-
-MPW is a special case -- it used to be possible to build Python as
-an MPW tool using MPW 3.2, and this may still work, but I haven't
-tried this lately. What I have tried, however, is building Python
-as a shared library for CFM-68K, using the Symantec C compiler for MPW.
-See subdirectory MPW and the README file there for more info.
-
-
-1. Using Think C 6.0 (or 7.0)
-=============================
-
-1.1 The directory structure
----------------------------
-
-I duplicate the UNIX directory structure from the distribution. The
-subdirectories needed to compile are: Mac, Include, Parser, Python,
-Objects, Modules. (Don't bother with Grammar and the parser
-generator, nor with the Doc subdirectory.)
-
-For running and testing, you also need Lib and its subdirectories test
-and stdwin. You could also copy some things from the Demo/stdwin
-directory (unfortunately most other demos are UNIX specific and even
-many stdwin demos are).
-
-Make sure there is no config.c file in the Modules subdirectory (if
-you copy from a directory where you have done a UNIX build this might
-occur). Also don't use the config.h generated on UNIX.
-
-1.2 The project file
---------------------
-
-I put all source files in one project, which I place in the parent
-directory of the source directories.
-
-1.2.1 Project type
-
-(This is the Set Project Type... dialog in the Project menu.)
-
-Set the creator to PYTH; turn on "far data"; leave "far code" and
-"separate strs" unchecked (they just serve to bloat the application).
-A partition size of 1000K should be enough to run the standard test
-suite (which requires a lot of memory because it stress tests the
-parser quite a bit) and most demos or medium-size applications. The
-interpreter will do basic things in as little at 500K but this may
-prevent parsing larger modules.
-
-1.2.2 Compiler options
-
-(This is the Options -> THINK C ... dialog in the Edit menu.)
-
- - Start with Factory Settings.
-
- - In the Prefix, remove #include <MacHeaders> and add
- #define HAVE_CONFIG_H
-
- - Choose any optimizer and debugger settings you like. - You
- can choose 4-byte ints if you want. This requires that you
- rebuild the ANSI and unix libraries with 4-bytes ints as well
- (better make copies with names like ANSI 32 bit). With 4-byte
- ints the interpreter is marginally bigger and somewhat (~10%)
- slower, but Python programs can use strings and lists with
- more than 32000 items (with 2-byte ints these can cause
- crashes). The range of Python integers is not affected (these
- are always represented as longs). In fact, nowadays I always
- use 4-byte integers, since it is actually rather annoying that
- strings >= 64K cause crashes.
-
-1.2.3 Files to add
-
-(This is the Add Files... dialog in the Source menu.)
-
-The following source files must be added to the project. I use a
-separate segment for each begin letter -- this avoids segment
-overflow, except for 'c', where you have to put either ceval.c or
-compile.c in a separate segment. You could also group them by
-subdirectory or function, but you may still have to split segments
-arbitrarily because of the 32000 bytes restriction.
-
- - From Mac: all .c files.
-
- - From Parser: acceler.c, grammar1.c,
- myreadline.c, node.c, parser.c, parsetok.c, tokenizer.c.
-
- - From Python: bltinmodule.c, ceval.c, cgensupport.c,
- compile.c, errors.c, getargs.c getopt.c, graminit.c, import.c,
- importdl.c, marshal.c, modsupport.c, mystrtoul.c,
- pythonmain.c, pythonrun.c, sigcheck.c, structmember.c,
- sysmodule.c, traceback.c (i.e. all .c files except dup2.c,
- fmod.c, frozenmain.c, getcwd.c, getmtime.c, memmove.c,
- sigcheck.c, strerror.c, strtod.c, thread.c)
-
- - From Objects: all .c files except xxobject.c.
-
- - From Modules: all the modules listed in config.c (in the Mac
- subdirectory) in the initializer for inittab[], before
- "ADDMODULE MARKER 2". Also add md5c.c if you add md5module.c,
- and regexpr.c if you add regexmodule.c. (You'll find
- macmodule.c in the Mac subdirectory, so it should already have
- been added in a previous step.) Note that for most modules,
- the source file is called <name>module.c, but for a few long
- module names it is just <module>.c. Don't add stdwinmodule.c
- yet,
-
-The following THINK C libraries must be added: from Standard
-Libraries, ANSI and unix; from Mac Libraries, MacTraps. I put each
-library in a separate segment. Also see my earlier remark on 4-byte
-ints.
-
-1.4 Adding STDWIN
------------------
-
-STDWIN is built in two separate projects: stdwin.pi contains the core
-STDWIN implementation from Ports/mac, textedit.pi contains the files
-from Packs/textedit. Use the same compiler options as for Python and
-the same general source setup (in a sister directory of the toplevel
-Python directory). Put all sources in the same segment. To
-stdwin.pi, also add Tools/strdup.c and Gen/wtextbreak.c.
-
-The two projects can now be added as libraries to the Python project.
-You must also add stdwinmodule.c and add "#define USE_STDWIN" to the
-Prefix in the compiler options dialog (this only affects macmain.c and
-config.c).
-
-Note that stdwinmodule.c contains an #include statement that
-references "stdwin.h" by relative path name -- if the stdwin toplevel
-directory is not a sibling of the python toplevel directory, you may
-have to adjust the number of colons in the pathname.
-
-1.5 Resources
--------------
-
-Since I created them with ResEdit I have no text source of the
-resources needed to give the application an icon etc... You can copy
-the size, bundle, file reference and icon resources from the
-distributed Python application with ResEdit. THINK C automatically
-copies resources into the application file from a file
-<projectname>.rsrc.
-
-1.6 Think C 5.0
----------------
-
-Tim Gilbert adds one note that will be helpful to future Think C 5.0
-users: When you have a really big project like python, and you want to
-compile and run it, if you just hit Command-R, often Think C will
-compile the remaining files, think for a moment, and then give you a
-warning "internal error(ZREF)--please remove objects." Don't listen
-to it. It is lying. What you should do instead is "Check Link..."
-and _then_ hit Run. Why? Ask Symantec.
-
-
-2. Using MicroWerks CodeWarrior 5.0
-===================================
-
-Essentially, follow the instructions for Think C.
-
-XXX Should at least list the project options.
-
-
---Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>
-<URL:http://www.cwi.nl/cwi/people/Guido.van.Rossum.html>
diff --git a/Mac/Relnotes-1.3 b/Mac/Relnotes-1.3
deleted file mode 100644
index a38f139..0000000
--- a/Mac/Relnotes-1.3
+++ /dev/null
@@ -1,118 +0,0 @@
- 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
diff --git a/Mac/Relnotes-1.3.3 b/Mac/Relnotes-1.3.3
deleted file mode 100644
index 896dc57..0000000
--- a/Mac/Relnotes-1.3.3
+++ /dev/null
@@ -1,125 +0,0 @@
- 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
- "using.html".
-- 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
- source.
-- 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
-incompatabilities.
-
-- imgsgi and imgpbm modules added
-- Various hooks installed to allow integration with MacTk (currently
- disabled)
-- 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
- pending
-
-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
-
-
-
diff --git a/Mac/Relnotes-1.4b3 b/Mac/Relnotes-1.4b3
deleted file mode 100644
index bb4fc41..0000000
--- a/Mac/Relnotes-1.4b3
+++ /dev/null
@@ -1,171 +0,0 @@
- 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
- distribution.
-- 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
- installed.
-- Old sound mgr calls {Set,Get}SoundVol removed, version number
- interface changed.
-- Added convenience routines setarrowcursor and setwatchcursor to
- FrameWork.
-- Bugfixes to time.sleep(), FrameWork, macostools,
-- Minor fixes/additions/updates to demos and documentation in the Demo
- folder.
-- 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
- needed.
- - 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
- "using.html".
-- 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
- source.
-- 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
-incompatabilities.
-
-- imgsgi and imgpbm modules added
-- Various hooks installed to allow integration with MacTk (currently
- disabled)
-- 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
- pending
-
-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
-
-
-
diff --git a/Mac/Relnotes-source b/Mac/Relnotes-source
index 770bde3..c6ecf67 100644
--- a/Mac/Relnotes-source
+++ b/Mac/Relnotes-source
@@ -12,13 +12,9 @@ preferences to make it extract C sources with creator CWIE
and .py files as text files with creator Pyth, this will save
you work later.
-You will also need CodeWarrior 8. If you have another development
+You will also need CodeWarrior 11. If you have another development
environment you are on your own, basically.
-You may also need the img distribution and the stdwin distribution.
-If you don't want them you may have to edit some of the projects
-to remove references to them.
-
When you've extracted everything you may have to unpack the
.hqx files in Mac:Resources and Mac:mwerks:Projects (but suntar
may have done this for you already).
@@ -26,6 +22,7 @@ may have done this for you already).
You have to remove Modules:fmmodule.c, the SGI fm module, which has a
name conflict with the Mac Fmmodule.c.
+
Next, create your build directories. I use the following naming
convention:
build.macppc.shared PowerPC shared-library
@@ -39,47 +36,8 @@ Move MWCPythonCoreRuntime.µ, PythonCore.µ, PythonPPC.µ and
PythonApplet.µ (from the Mac:mwerks:projects folder) to
build.macppc.shared, move Python68K.µ to build.mac68k.stand.
-Build the projects. For the PPC projects, keep the order given above.
-Do *not* run the python interpreter yet. First, move the interpreter
-to the main python folder. For PPC, also move PythonCore to the main
-python folder.
-
-Now try your python interpreter, this will create an initial
-preferences file.
-
-For 68K python you are now done.
-
-For PPC Python, don't try complicated scripts yet, you first have to
-create the dynamically loadable modules. Create a folder PlugIns (in
-the toplevel python folder) and move all the projects that have
-"module" or "modules" in their name there. Build these projects. This
-will create a number of ".exp" files, edit these files to contain only
-all the "init" modules, and build the projects again. This latter step
-isn't really essential, so feel free to skip it.
-
-The next step is to create aliases for the various modules that "live
-together" in one shared library. For this, take MkPluginAliases.py and
-MkPluginAliases.rsrc from the Mac:scripts folder and move or copy them
-to the python home folder. Run the script from there.
-
-If you haven't created all plugins you'll get some errors about files
-not existing, don't worry. Don't forget to move the scripts back.
-
-Next, make an alias of PythonCore (also named PythonCore) and put it
-in System Folder:Extensions. This will ensure that you can run python
-anywhere, not just from the folder where PythonCore lives.
-
-Most of your environment is now setup. You can try it by running
-EditPythonPrefs.py (in Mac:scripts), it should now work from there.
-
-Lastly, you should setup some stuff needed for applet creation. First,
-you should put PythonApplet (or an alias to it) in the python home
-folder. Next, you should turn mkapplet.py (from mac:scripts) into an
-applet itself: double-click it and give it itself as input in the
-input file dialog.
-
-Now that you have created mkapplet you can use this as a droplet:
-drag-and-drop python sources onto it (EditPythonPrefs.py and
-RunLibScript.py come to mind) and the applets will be created.
+Now, your folder structure more-or-less resembles that of what comes
+with the mac source distribution. Read the file Mac:Demo:building.html
+for further instructions.
- Jack Jansen, CWI, 18 March 1996.
+ Jack Jansen, CWI, 28 May 1997.