Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(17)

Unified Diff: PC/os2emx/README.os2emx

Issue 15550: Trailing white spaces
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « PC/os2emx/python33.def ('k') | PC/os2vacpp/makefile » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
--- a/PC/os2emx/README.os2emx Sat Aug 04 16:17:10 2012 +0200
+++ b/PC/os2emx/README.os2emx Sat Aug 04 22:46:03 2012 +0300
@@ -10,30 +10,30 @@
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
+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
+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
+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
+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
+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.
@@ -44,19 +44,19 @@
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
+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
+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
+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.
@@ -64,9 +64,9 @@
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
+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.
@@ -83,67 +83,67 @@
About this port
---------------
-I have attempted to make this port as complete and functional as I can,
+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
+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
+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
+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
+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
+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"
+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
+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
+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
+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
+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
+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
+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
+The _curses_panel module is a potential problem - see "YOU HAVE BEEN
WARNED" item 13.
Upstream source patches:
@@ -152,33 +152,33 @@
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
+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
+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
+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
+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
+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.
@@ -189,49 +189,49 @@
- 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
+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
+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
+Obtain and install, as per the included instructions, the EMX runtime
package.
-Unpack this archive, preserving the subdirectories, in the root directory
+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
+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
+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
+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
+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
+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
+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
@@ -241,16 +241,16 @@
SET TERM=os2
SET TERM=window
-You will have to reboot your system for these changes to CONFIG.SYS to take
+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
+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
+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);
@@ -267,16 +267,16 @@
Building from source
--------------------
-With the EMX port now checked into Python's CVS repository, the build
+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
+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
+If you have a different version of gcc installed, see "YOU HAVE BEEN
WARNED" item 16.
Other items of software required:-
@@ -288,32 +288,32 @@
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
+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
+ 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
+ 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
+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
+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>
+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
@@ -327,37 +327,37 @@
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
+ 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
+ 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.
+ 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
+ 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 <<<<<<
+ >>>>>> NOT YET COMPLETE <<<<<<
-8. change to a directory outside the Python source tree and start Python.
+8. change to a directory outside the Python source tree and start Python.
Check the version and build date to confirm satisfactory installation.
@@ -366,52 +366,52 @@
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
+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
+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
+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
+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
+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
+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
+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
+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
+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,
+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
+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
+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)
@@ -420,43 +420,43 @@
$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,
+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
+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
+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
+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
+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
+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
+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
+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
@@ -464,99 +464,99 @@
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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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()
+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
+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
+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
+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
@@ -580,16 +580,16 @@
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
+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.
+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
+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
@@ -600,7 +600,7 @@
- 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
+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
@@ -616,16 +616,16 @@
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
+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
+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
+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...
@@ -649,11 +649,11 @@
Contact
-------
-Constructive feedback, negative or positive, about this port is welcome
+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
+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
« no previous file with comments | « PC/os2emx/python33.def ('k') | PC/os2vacpp/makefile » ('j') | no next file with comments »

RSS Feeds Recent Issues | This issue
This is Rietveld 894c83f36cb7+