summaryrefslogtreecommitdiffstats
path: root/PC/os2emx/README.os2emx
diff options
context:
space:
mode:
Diffstat (limited to 'PC/os2emx/README.os2emx')
-rw-r--r--PC/os2emx/README.os2emx663
1 files changed, 0 insertions, 663 deletions
diff --git a/PC/os2emx/README.os2emx b/PC/os2emx/README.os2emx
deleted file mode 100644
index 61cf6df..0000000
--- a/PC/os2emx/README.os2emx
+++ /dev/null
@@ -1,663 +0,0 @@
-This is a port of Python 2.6 to OS/2 using the EMX development tools
-=========================================================================
-
-What's new since the previous release
--------------------------------------
-
-Another day, another version...
-
-
-Licenses and info about Python and EMX
---------------------------------------
-
-Please read the file README.Python-2.6 included in this package for
-information about Python 2.6. This file is the README file from the
-Python 2.6 source distribution available via http://www.python.org/
-and its mirrors. The file LICENCE.Python-2.6 is the text of the Licence
-from the Python 2.6 source distribution.
-
-Note that the EMX package that this package depends on is released under
-the GNU General Public Licence. Please refer to the documentation
-accompanying the EMX Runtime libraries for more information about the
-implications of this. A copy of version 2 of the GPL is included as the
-file COPYING.gpl2.
-
-Readline and GDBM are covered by the GNU General Public Licence. I think
-Eberhard Mattes' porting changes to BSD DB v1.85 are also GPL'ed (BSD DB
-itself is BSD Licenced). ncurses and expat appear to be covered by MIT
-style licences - please refer to the source distributions for more detail.
-zlib is distributable under a very free license. GNU UFC is under the
-GNU LGPL (see file COPYING.lib).
-
-My patches to the Python-2.x source distributions, and any other packages
-used in this port, are placed in the public domain.
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the author be held liable for any damages arising from the
-use of the software.
-
-I do hope however that it proves useful to someone.
-
-
-Other ports
------------
-
-There have been ports of previous versions of Python to OS/2.
-
-The best known would be that by Jeff Rush, most recently of version
-1.5.2. Jeff used IBM's Visual Age C++ (v3) for his ports, and his
-patches have been included in the Python 2.6 source distribution.
-
-Andy Zabolotny implemented a port of Python v1.5.2 using the EMX
-development tools. His patches against the Python v1.5.2 source
-distribution have become the core of this port, and without his efforts
-this port wouldn't exist. Andy's port also appears to have been
-compiled with his port of gcc 2.95.2 to EMX, which I have but have
-chosen not to use for the binary distribution of this port (see item 16
-of the "YOU HAVE BEEN WARNED" section below).
-
-It is possible to have these earlier ports still usable after installing
-this port - see the README.os2emx.multiple_versions file, contributed by
-Dr David Mertz, for a suggested approach to achieving this.
-
-
-Software requirements
----------------------
-
-This package requires the EMX Runtime package, available from the
-Hobbes (http://hobbes.nmsu.edu/) and LEO (http://archiv.leo.org/)
-archives of OS/2 software. I have used EMX version 0.9d fix04 in
-developing this port.
-
-My development system is running OS/2 v4 with fixpack 12.
-
-3rd party software which has been linked into dynamically loaded modules:
-- ncurses (see http://dickey.his.com/ for more info, v5.2)
-- GNU Readline (Kai Uwe Rommel's port available from Hobbes or LEO, v2.1)
-- GNU GDBM (Kai Uwe Rommel's port available from Hobbes or LEO, v1.7.3)
-- zlib (derived from Hung-Chi Chu's port of v1.1.3, v1.1.4)
-- expat (distributed with Python, v1.95.6)
-- GNU UFC (Kai Uwe Rommel's port available from LEO, v2.0.4)
-
-
-About this port
----------------
-
-I have attempted to make this port as complete and functional as I can,
-notwithstanding the issues in the "YOU HAVE BEEN WARNED" section below.
-
-Core components:
-
-Python.exe is linked as an a.out executable, ie using EMX method E1
-to compile & link the executable. This is so that fork() works (see
-"YOU HAVE BEEN WARNED" item 1).
-
-Python26.dll is created as a normal OMF DLL, with an OMF import
-library and module definition file. There is also an a.out (.a) import
-library to support linking the DLL to a.out executables. The DLL
-requires the EMX runtime DLLs.
-
-This port has been built with complete support for multithreading.
-
-Modules:
-
-With the exception of modules that have a significant code size, or are
-not recommended or desired for normal use, the standard modules are now
-built into the core DLL rather than configured as dynamically loadable
-modules. This is for both reasons of performance (startup time) and
-memory use (lots of small DLLs fragment the address space).
-
-I haven't yet changed the building of Python's dynamically loadable
-modules over to using the DistUtils.
-
-See "YOU HAVE BEEN WARNED" item 3 for notes about the fcntl module, and
-"YOU HAVE BEEN WARNED" item 10 for notes about the pwd and grp modules.
-
-This port supports case sensitive module import semantics, matching
-the Windows release. This can be deactivated by setting the PYTHONCASEOK
-environment variable (the value doesn't matter) - see "YOU HAVE BEEN WARNED"
-item 12.
-
-Optional modules:
-
-Where I've been able to locate the required 3rd party packages already
-ported to OS/2, I've built and included them.
-
-These include ncurses (_curses, _curses_panel),
-GNU GDBM (gdbm, dbm), zlib (zlib), GNU Readline (readline), and GNU UFC
-(crypt).
-
-Expat is now included in the Python release sourceball, and the pyexpat
-module is always built.
-
-I have built these modules statically linked against the 3rd party
-libraries. Unfortunately my attempts to use the dll version of GNU
-readline have been a dismal failure, in that when the dynamically
-linked readline module is active other modules immediately provoke a
-core dump when imported.
-
-Only the BSD DB package (part of the BSD package distributed with EMX)
-needs source modifications to be used for this port, pertaining to use
-of errno with multithreading.
-
-The other packages, except for ncurses and zlib, needed Makefile changes
-for multithreading support but no source changes.
-
-The _curses_panel module is a potential problem - see "YOU HAVE BEEN
-WARNED" item 13.
-
-Upstream source patches:
-
-No updates to the Python 2.6 release have become available.
-
-Library and other distributed Python code:
-
-The Python standard library lives in the Lib directory. All the standard
-library code included with the Python 2.6 source distribution is included
-in the binary archive, with the exception of the dos-8x3 and tkinter
-subdirectories which have been omitted to reduce the size of the binary
-archive - the dos-8x3 components are unnecessary duplicates and Tkinter
-is not supported by this port (yet). All the plat-* subdirectories in the
-source distribution have also been omitted, except for the plat-os2emx
-subdirectory.
-
-The Tools and Demo directories contain a collection of Python scripts.
-To reduce the size of the binary archive, the Demo/sgi, Demo/Tix,
-Demo/tkinter, Tools/audiopy and Tools/IDLE subdirectories have been
-omitted as not being supported by this port. The Misc directory has
-also been omitted.
-
-All subdirectories omitted from the binary archive can be reconstituted
-from the Python 2.6 source distribution, if desired.
-
-Support for building Python extensions:
-
-The Config subdirectory contains the files describing the configuration
-of the interpreter and the Makefile, import libraries for the Python DLL,
-and the module definition file used to create the Python DLL. The
-Include subdirectory contains all the standard Python header files
-needed for building extensions.
-
-As I don't have the Visual Age C++ compiler, I've made no attempt to
-have this port support extensions built with that compiler.
-
-
-Packaging
----------
-
-This port is packaged as follows:
-- python-2.6-os2emx-bin-03????.zip (binaries, library modules)
-- python-2.6-os2emx-src-03???? (patches+makefiles for non-Python code)
-
-As all the Python specific patches for the port are now part of the
-Python release tarball, only the patches and makefiles involved in
-building external libraries for optional extensions are included in
-the source archive.
-
-Documentation for the Python language, as well as the Python 2.6
-source distibution, can be obtained from the Python website
-(http://www.python.org/) or the Python project pages at Sourceforge
-(http://sf.net/projects/python/).
-
-
-Installation
-------------
-
-Obtain and install, as per the included instructions, the EMX runtime
-package.
-
-Unpack this archive, preserving the subdirectories, in the root directory
-of the drive where you want Python to live.
-
-Add the Python directory (eg C:\Python26) to the PATH and LIBPATH
-variables in CONFIG.SYS.
-
-You should then set the PYTHONHOME and PYTHONPATH environment variables
-in CONFIG.SYS.
-
-PYTHONHOME should be set to Python's top level directory. PYTHONPATH
-should be set to the semicolon separated list of principal Python library
-directories.
-I use:
- SET PYTHONHOME=F:/Python26
- SET PYTHONPATH=F:/Python26/Lib;F:/Python26/Lib/plat-os2emx;
- F:/Python26/Lib/lib-dynload;F:/Python26/Lib/site-packages
-
-NOTE!: the PYTHONPATH setting above is linewrapped for this document - it
-should all be on one line in CONFIG.SYS!
-
-If you wish to use the curses module, you should set the TERM and TERMINFO
-environment variables appropriately.
-
-If you don't already have ncurses installed, I have included a copy of the
-EMX subset of the Terminfo database included with the ncurses-5.2 source
-distribution. This can be used by setting the TERMINFO environment variable
-to the path of the Terminfo subdirectory below the Python home directory.
-On my system this looks like:
- SET TERMINFO=F:/Python26/Terminfo
-
-For the TERM environment variable, I would try one of the following:
- SET TERM=ansi
- SET TERM=os2
- SET TERM=window
-
-You will have to reboot your system for these changes to CONFIG.SYS to take
-effect.
-
-If you wish to compile all the included Python library modules to bytecode,
-you can change into the Python home directory and run the COMPILEALL.CMD
-batch file.
-
-You can execute the regression tests included with the Python 2.6 source
-distribution by changing to the Python 2.6 home directory and executing the
-REGRTEST.CMD batch file. The following tests are known to fail at this
-time:
-- test_mhlib (I don't know of any port of MH to OS/2);
-- test_strptime (see "YOU HAVE BEEN WARNED" item 22);
-- test_time (see "YOU HAVE BEEN WARNED" item 22);
-- test_posixpath (see "YOU HAVE BEEN WARNED" item 23).
-
-Note that some of the network related tests expect the loopback interface
-(interface "lo", with IP address 127.0.0.1) to be enabled, which from my
-experience is not the default configuration. Additionally, test_popen2
-expects the "cat" utility (such as found in ports of the GNU tools) to
-be installed.
-
-
-Building from source
---------------------
-
-With the EMX port now checked into Python's CVS repository, the build
-infrastructure is part of the Python release sourceball.
-
-Prerequisites
-
-First and foremost, you need an operational EMX development installation -
-EMX v0.9d with fix04 (the latest at time of writing) & the gcc 2.8.1
-compiler released by Eberhard Mattes is the recommended setup.
-
-If you have a different version of gcc installed, see "YOU HAVE BEEN
-WARNED" item 16.
-
-Other items of software required:-
-
-- GNU make (I'm using v3.76.1)
-- rm, cp, mkdir from the GNU file utilities package
-- GNU find
-- GNU sed
-
-Procedure
-
-0. all changes mentioned apply to files in the PC/os2emx subdirectory
- of the Python release source tree. make is also executed from this
- directory, so change into this directory before proceeding.
-
-1. decide if you need to change the location of the Python installation.
- If you wish to do this, set the value of the Makefile variable LIB_DIR
- to the directory you wish to use for PYTHONHOME
- (eg /usr/local/lib/python2.6).
-
- If you want Python to find its library without the PYTHONHOME
- environment variable set, set the value of the Makefile variable
- FIXED_PYHOME to "yes" (uncomment the appropriate line).
-
-2. If you wish the Python executables (python.exe, pythonpm.exe & pgen.exe)
- to be installed in a directory other than the PYTHONHOME directory, set
- the value of the Makefile variable EXE_DIR to the appropriate directory.
-
-3. If you wish the Python core DLL (python33.dll) to be installed in a
- directory other than the directory in which the Python executables are
- installed (by default, the PYTHONHOME directory), set the value of the
- Makefile variable DLL_DIR to the appropriate directory. This DLL must
- be placed in a directory on the system's LIBPATH, or that gets set
- with BEGINLIBPATH or ENDLIBPATH.
-
-4. If you have installed any of the libraries that can be used to build
- optional Python modules, set the value of the relevant HAVE_<package>
- Makefile variable to "yes". The Makefile currently supports:
-
- library Makefile variable
- ........................................
- zlib (1.1.4) HAVE_ZLIB
- GNU UltraFast Crypt HAVE_UFC
- Tcl/Tk HAVE_TCLTK (not known to work)
- GNU Readline HAVE_GREADLINE
- ncurses HAVE_NCURSES
- GNU gdbm HAVE_GDBM
- libbz2 HAVE_BZ2
- OpenSSL HAVE_OPENSSL
-
- Please note that you need to check that what you have installed
- is compatible with Python's build options. In particular, the
- BSD DB v1.85 library needs to be rebuilt with a source patch for
- multithread support (doesn't change the library's reentrant status
- but allows it to be linked to Python which is multithreaded).
- Widely available binary packages of other librarys & DLLs are
- not built/linked with multithread support. Beware!
-
- Also note that the Makefile currently expects any libraries to be
- found with the default library search path. You may need to add
- -L switches to the LDFLAGS Makefile variable if you have installed
- libraries in directories not in the default search path (which can
- be controlled by the LIBRARY_PATH environment variable used by EMX).
-
-5. make
-
- It is usually a good idea to redirect the stdout and stderr streams
- of the make process to log files, so that you can review any messages.
-
-6. make test
-
- This runs the Python regression tests, and completion is a sign of
- a usable build. You should check the list of skipped modules to
- ensure that any optional modules you selected have been built;
- checking the list of failures against the list of known failures
- elsewhere in this document is also prudent.
-
-7. make install
- >>>>>> NOT YET COMPLETE <<<<<<
-
-8. change to a directory outside the Python source tree and start Python.
- Check the version and build date to confirm satisfactory installation.
-
-
-YOU HAVE BEEN WARNED!!
-----------------------
-
-I know about a number of nasties in this port.
-
-1. Eberhard Mattes, author of EMX, writes in his documentation that fork()
-is very inefficient in the OS/2 environment. It also requires that the
-executable be linked in a.out format rather than OMF. Use the os.exec
-and/or the os.spawn family of functions where possible.
-
-2. In the absence of GNU Readline, terminating the interpreter requires a
-control-Z (^Z) followed by a carriage return. Jeff Rush documented this
-problem in his Python 1.5.2 port. With Readline, a control-D (^D) works
-as per the standard Unix environment.
-
-3. EMX only has a partial implementation of fcntl(). The fcntl module
-in this port supports what EMX supports. If fcntl is important to you,
-please review the EMX C Library Reference (included in .INF format in the
-EMXVIEW.ZIP archive as part of the complete EMX development tools suite).
-Because of other side-effects I have modified the test_fcntl.py test
-script to deactivate the exercising of the missing functionality.
-
-4. The readline module has been linked against ncurses rather than the
-termcap library supplied with EMX.
-
-5. I have configured this port to use "/" as the preferred path separator
-character, rather than "\" ('\\'), in line with the convention supported
-by EMX. Backslashes are still supported of course, and still appear in
-unexpected places due to outside sources that don't get normalised.
-
-6. While the DistUtils components are now functional, other
-packaging/binary handling tools and utilities such as those included in
-the Demo and Tools directories - freeze in particular - are unlikely to
-work. If you do get them going, I'd like to know about your success.
-
-7. I haven't set out to support the [BEGIN|END]LIBPATH functionality
-supported by one of the earlier ports (Rush's??). If it works let me know.
-
-8. As a result of the limitations imposed by EMX's library routines, the
-standard extension module pwd only synthesises a simple passwd database,
-and the grp module cannot be supported at all.
-
-I have written pure Python substitutes for pwd and grp, which can process
-real passwd and group files for those applications (such as MailMan) that
-require more than EMX emulates. I have placed pwd.py and grp.py in
-Lib/plat-os2emx, which is usually before Lib/lib-dynload (which contains
-pwd.pyd) in the PYTHONPATH. If you have become attached to what pwd.pyd
-supports, you can put Lib/lib-dynload before Lib/plat-os2emx in PYTHONPATH
-or delete/rename pwd.py & grp.py.
-
-pwd.py & grp.py support locating their data files by looking in the
-environment for them in the following sequence:
-pwd.py: $ETC_PASSWD (%ETC_PASSWD%)
- $ETC/passwd (%ETC%/passwd)
- $PYTHONHOME/Etc/passwd (%PYTHONHOME%/Etc/passwd)
-grp.py: $ETC_GROUP (%ETC_GROUP%)
- $ETC/group (%ETC%/group)
- $PYTHONHOME/Etc/group (%PYTHONHOME%/Etc/group)
-
-The ETC_PASSWD and ETC_GROUP environment variables are intended to allow
-support for multiple passwd/grp files, where other applications may not
-support as wide a variety of input variations (drive remappings,
-separators etc).
-
-Both modules support using either the ":" character (Unix standard) or
-";" (OS/2, DOS, Windows standard) field separator character, and pwd.py
-implements the following drive letter conversions for the home_directory and
-shell fields (for the ":" separator only):
- $x -> x:
- x; -> x:
-
-Example versions of passwd and group are in the Etc subdirectory. The
-regression tests (test_pwd and test_grp) will fail if valid password and
-group files cannot be found, but should pass otherwise.
-
-Be aware that Python's pwd & group modules are for reading password and
-group information only.
-
-11. EMX's termios routines don't support all of the functionality now
-exposed by the termios module - refer to the EMX documentation to find
-out what is supported.
-
-12. The case sensitive import semantics introduced in Python 2.1 for other
-case insensitive but case preserving file/operating systems (Windows etc),
-have been incorporated into this port, and are active by default. Setting
-the PYTHONCASEOK environment variable (to any value) reverts to the
-previous (case insensitive) semantics. This can be an issue with some
-file management utilities that do not preserve the case of file and
-directory names.
-
-13. Because I am statically linking ncurses, the _curses_panel
-module has potential problems arising from separate library data areas.
-To avoid this, I have configured the _curses_.pyd (imported as
-"_curses_panel") to import the ncurses symbols it needs from _curses.dll
-(which is the curses module, but with a .dll extension rather than .pyd
-so that the dynamic loader can actually import the symbols from it as a
-DLL).
-
-The site module (Lib/site.py) has code added to tweak BEGINLIBPATH so
-that _curses.dll is found when _curses_panel is imported. If you have
-problems attempting to use the _curses_panel support please let me know,
-and I'll have another look at this.
-
-14. sys.platform reports "os2emx" instead of "os2". os.name still
-reports "os2". This change was to make it easier to distinguish between
-the VAC++ build (formerly maintained by Michael Muller) and the EMX build
-(this port), principally for DistUtils.
-
-15. it appears that the %W substitution in the EMX strftime() routine has
-an off-by-one bug. strftime was listed as passing the regression tests
-in previous releases, but this fact appears to have been an oversight in
-the regression test suite. To fix this really requires a portable
-strftime routine - I'm looking into using one from FreeBSD, but its not
-ready yet.
-
-16. I have successfully built this port with Andy Zabolotny's ports of
-pgcc 2.95 and gcc 3.2.1, in addition to EM's gcc 2.8.1.
-
-I have not attempted to compile Python with any version of gcc prior to
-v2.8.1.
-
-This release sees the default optimisation change to
-"-O3 -fomit-frame-pointer -mprobe". This works fine too for pgcc 2.95
-but not for gcc 3.2.1.
-
-With gcc 3.2.1, -O3 causes 2 unexpected test failures: test_format and
-test_unicode. Both these tests pass if -O2 is instead of -O3 with this
-compiler, and the performance difference is negligible (in contrast to
-gcc 2.8.1 and pgcc 2.95, where the performance difference between the
-2 optimisation settings approaches 10%).
-
-17. os.spawnv() and os.spawnve() expose EMX's library routines rather
-than use the emulation in os.py.
-
-In order to make use of some of the features this makes available in
-the OS/2 environment, you should peruse the relevant EMX documentation
-(EMXLIB.INF in the EMXVIEW.ZIP archive accompanying the EMX archives
-on Hobbes or LEO). Be aware that I have exposed all the "mode" options
-supported by EMX, but there are combinations that either cannot be
-practically used by/in Python or have the potential to compromise your
-system's stability.
-
-18. pythonpm.exe used to be just python.exe with the WINDOWAPI linker
-option set in the pythonpm.def file. In practice, this turns out to do
-nothing useful.
-
-I have written a replacement which wraps the Python DLL in a genuine
-Presentation Manager application. This version actually runs the
-Python interpreter in a separate thread from the PM shell, in order
-that PythonPM has a functioning message queue as good PM apps should.
-In its current state, PythonPM's window is hidden. It can be displayed,
-although it will have no content as nothing is ever written to the
-window. Only the "hide" button is available. Although the code
-has support for shutting PythonPM down when the Python interpreter is
-still busy (via the "control" menu), this is not well tested and given
-comments I've come across in EMX documentation suggesting that the
-thread killing operation has problems I would suggest caution in
-relying on this capability.
-
-PythonPM processes commandline parameters normally. The standard input,
-output and error streams are only useful if redirected, as PythonPM's
-window is not a console in any form and so cannot accept or display
-anything. This means that the -i option is ineffective.
-
-Because the Python thread doesn't create its own message queue, creating
-PM Windows and performing most PM operations is not possible from within
-this thread. How this will affect supporting PM extensions (such as
-Tkinter using a PM port of Tcl/Tk, or wxPython using the PM port of
-WxWindows) is still being researched.
-
-Note that os.fork() _DOES_NOT_WORK_ in PythonPM - SYS3175s are the result
-of trying. os.spawnv() _does_ work. PythonPM passes all regression tests
-that the standard Python interpreter (python.exe) passes, with the exception
-of test_fork1 and test_socket which both attempt to use os.fork().
-
-I very much want feedback on the performance, behaviour and utility of
-PythonPM. I would like to add a PM console capability to it, but that
-will be a non-trivial effort. I may be able to leverage the code in
-Illya Vaes' Tcl/Tk port, which would make it easier.
-
-19. os.chdir() uses EMX's _chdir2(), which supports changing both drive
-and directory at once. Similarly, os.getcwd() uses EMX's _getcwd()
-which returns drive as well as path.
-
-20. pyconfig.h is installed in the Include subdirectory with all
-other include files.
-
-21. the default build explicitly sets the number of file handles
-available to a Python process to 250. EMX default is 40, which is
-insufficient for the tempfile regression test (test_tempfile) which
-tries to create 100 temporary files.
-
-This setting can be overridden via the EMXOPT environment variable:
- set EMXOPT=-h250
-is equivalent to the setting currently used. The emxbind utility (if you
-have it installed) can also be used to permanently change the setting in
-python.exe - please refer to the EMX documentation for more information.
-
-22. a pure python strptime module is now part of the Python standard
-library, superceding a platform specific extension module. This module
-leverages the strftime module, and as a result test_strptime fails
-due to the EMX strftime bug in item 20 above.
-
-23. test_posixpath attempts to exercise various Posix path related
-functionality. Most of the sub-tests pass, but the "ismount" and
-"samestat" subtests fail:
-- EMX provides not satisfactory mount point emulation, so "ismount"
- cannot succeed;
-- EMX documents that successive stat() calls will produce different
- results, so "samestat" cannot succeed.
-
-test_posixpath should skip these tests on EMX.
-
-24. I have reports of BitTorrent not working. It appears that the
-EMX select() emulation, possibly in concert with bugs in the TCP/IP
-stack, runs into problems under the stress imposed by this application.
-I think it suffices to say that BitTorrent is a fair stress test of a
-system's networking capability.
-
-25. In the absence of an EMX implementation of the link() function, I've
-implemented a crude Python emulation, in the file
-Lib/plat-os2emx/_emx_link.py. This is imported into the os module, and
-becomes available as os.link() in the normal way.
-
-The emulation copies the source file in binary mode, and will fail if
-disk space is exhausted. The call fails if the target already exists.
-There are no guarantees to thread safety with this emulation - beware!
-
-The emulation was written to support a link() based file locking system
-used in GNU Mailman.
-
-26. AF_UNIX sockets, otherwise known as Unix domain sockets, are now
-supported. Unfortunately, there are some traps arising from the
-implementation in IBM's TCP/IP stack:-
-- the path name must start with '\\socket\\' ('/socket/' won't work!),
- with the length of the full path name less than 108 characters;
-- unlike Unix, the socket endpoints don't exist in the filesystem;
-- by default, sockets are in binary mode.
-
-27. As of Python 2.4, the mpz, rotor and xreadlines modules have been
-dropped from the Python source tree.
-
-28. The subprocess module was added to the standard library relatively
-late in the 2.4 development cycle. Unfortunately I haven't had the
-round tuits to adapt the module to the EMX environment yet, and
-test_subprocess has a number of failures as a result.
-
-29. The default stack size for threads has been 64k. This is proving
-insufficient for some codebases, such as Zope. The thread stack size
-still defaults to 64k, but this can now be increased via the stack_size()
-function exposed by the threading & thread modules as well as by defining
-THREAD_STACK_SIZE to an appropriate value in the Makefile (which contains
-a commented out definition for 128kB thread stacks). I have seen
-references to heavy Zope/Plone usage requiring 1MB thread stacks on
-FreeBSD and Linux, but doubt that for most likely usage on OS/2 that
-more than 256kB is necessary. The size of the required stacks (main
-and thread) can vary significantly depending on which version of gcc
-is used along with the compiler optimisations selected. Note that the
-main thread stack size is set during linking and is currently 2MB.
-
-... probably other issues that I've not encountered, or don't remember :-(
-
-If you encounter other difficulties with this port, which can be
-characterised as peculiar to this port rather than to the Python release,
-I would like to hear about them. However I cannot promise to be able to do
-anything to resolve such problems. See the Contact section below...
-
-
-To do...
---------
-
-In no particular order of apparent importance or likelihood...
-
-- support Tkinter and/or alternative GUI (wxWindows??)
-
-
-Credits
--------
-
-In addition to people identified above, I'd like to thank:
-- the BDFL, Guido van Rossum, and crew for Python;
-- Dr David Mertz, for trying out a pre-release of this port;
-- the Python-list/comp.lang.python community;
-- John Poltorak, for input about pwd/grp.
-
-Contact
--------
-
-Constructive feedback, negative or positive, about this port is welcome
-and should be addressed to me at the e-mail addresses below.
-
-I have a private mailing list for announcements of fixes & updates to
-this port. If you wish to receive such e-mail announcments, please send
-me an e-mail requesting that you be added to this list.
-
-Andrew MacIntyre
-E-mail: andymac@bullseye.apana.org.au, or andymac@pcug.org.au
-Web: http://www.andymac.org/
-
-28 January, 2008.