summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
committerThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
commit49fd7fa4431da299196d74087df4a04f99f9c46f (patch)
tree35ace5fe78d3d52c7a9ab356ab9f6dbf8d4b71f4 /README
parent9ada3d6e29d5165dadacbe6be07bcd35cfbef59d (diff)
downloadcpython-49fd7fa4431da299196d74087df4a04f99f9c46f.zip
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.gz
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.bz2
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
Diffstat (limited to 'README')
-rw-r--r--README690
1 files changed, 360 insertions, 330 deletions
diff --git a/README b/README
index 919af4c..1da5430 100644
--- a/README
+++ b/README
@@ -89,7 +89,7 @@ LaTeX formats; the LaTeX version is primarily for documentation
authors, translators, and people with special formatting requirements.
Unfortunately, new-style classes (new in Python 2.2) have not yet been
-integrated into Python's standard documention. A collection of
+integrated into Python's standard documentation. A collection of
pointers to what has been written is at:
http://www.python.org/doc/newstyle.html
@@ -114,7 +114,7 @@ for Python-related announcements. These are also accessible as
mailing lists: see http://www.python.org/community/lists.html for an
overview of these and many other Python-related mailing lists.
-Archives are accessible via the Google Groups usenet archive; see
+Archives are accessible via the Google Groups Usenet archive; see
http://groups.google.com/. The mailing lists are also archived, see
http://www.python.org/community/lists.html for details.
@@ -257,28 +257,28 @@ submit a documentation bug report to SourceForge (see Bug Reports
above) so we can remove them!)
Unix platforms: If your vendor still ships (and you still use) Berkeley DB
- 1.85 you will need to edit Modules/Setup to build the bsddb185
- module and add a line to sitecustomize.py which makes it the
- default. In Modules/Setup a line like
+ 1.85 you will need to edit Modules/Setup to build the bsddb185
+ module and add a line to sitecustomize.py which makes it the
+ default. In Modules/Setup a line like
- bsddb185 bsddbmodule.c
+ bsddb185 bsddbmodule.c
- should work. (You may need to add -I, -L or -l flags to direct the
- compiler and linker to your include files and libraries.)
+ should work. (You may need to add -I, -L or -l flags to direct the
+ compiler and linker to your include files and libraries.)
XXX I think this next bit is out of date:
64-bit platforms: The modules audioop, imageop and rgbimg don't work.
- The setup.py script disables them on 64-bit installations.
- Don't try to enable them in the Modules/Setup file. They
- contain code that is quite wordsize sensitive. (If you have a
- fix, let us know!)
+ The setup.py script disables them on 64-bit installations.
+ Don't try to enable them in the Modules/Setup file. They
+ contain code that is quite wordsize sensitive. (If you have a
+ fix, let us know!)
Solaris: When using Sun's C compiler with threads, at least on Solaris
- 2.5.1, you need to add the "-mt" compiler option (the simplest
- way is probably to specify the compiler with this option as
- the "CC" environment variable when running the configure
- script).
+ 2.5.1, you need to add the "-mt" compiler option (the simplest
+ way is probably to specify the compiler with this option as
+ the "CC" environment variable when running the configure
+ script).
When using GCC on Solaris, beware of binutils 2.13 or GCC
versions built using it. This mistakenly enables the
@@ -290,136 +290,136 @@ Solaris: When using Sun's C compiler with threads, at least on Solaris
and 2.8, but may also affect earlier and later versions of the
OS.
- When the dynamic loader complains about errors finding shared
- libraries, such as
+ When the dynamic loader complains about errors finding shared
+ libraries, such as
- ld.so.1: ./python: fatal: libstdc++.so.5: open failed:
- No such file or directory
+ ld.so.1: ./python: fatal: libstdc++.so.5: open failed:
+ No such file or directory
- you need to first make sure that the library is available on
- your system. Then, you need to instruct the dynamic loader how
- to find it. You can choose any of the following strategies:
+ you need to first make sure that the library is available on
+ your system. Then, you need to instruct the dynamic loader how
+ to find it. You can choose any of the following strategies:
- 1. When compiling Python, set LD_RUN_PATH to the directories
- containing missing libraries.
- 2. When running Python, set LD_LIBRARY_PATH to these directories.
- 3. Use crle(8) to extend the search path of the loader.
- 4. Modify the installed GCC specs file, adding -R options into the
- *link: section.
+ 1. When compiling Python, set LD_RUN_PATH to the directories
+ containing missing libraries.
+ 2. When running Python, set LD_LIBRARY_PATH to these directories.
+ 3. Use crle(8) to extend the search path of the loader.
+ 4. Modify the installed GCC specs file, adding -R options into the
+ *link: section.
The complex object fails to compile on Solaris 10 with gcc 3.4 (at
least up to 3.4.3). To work around it, define Py_HUGE_VAL as
HUGE_VAL(), e.g.:
make CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()" -I. -I$(srcdir)/Include'
- ./python setup.py CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()"'
+ ./python setup.py CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()"'
Linux: A problem with threads and fork() was tracked down to a bug in
- the pthreads code in glibc version 2.0.5; glibc version 2.0.7
- solves the problem. This causes the popen2 test to fail;
- problem and solution reported by Pablo Bleyer.
+ the pthreads code in glibc version 2.0.5; glibc version 2.0.7
+ solves the problem. This causes the popen2 test to fail;
+ problem and solution reported by Pablo Bleyer.
Red Hat Linux: Red Hat 9 built Python2.2 in UCS-4 mode and hacked
- Tcl to support it. To compile Python2.3 with Tkinter, you will
- need to pass --enable-unicode=ucs4 flag to ./configure.
+ Tcl to support it. To compile Python2.3 with Tkinter, you will
+ need to pass --enable-unicode=ucs4 flag to ./configure.
- There's an executable /usr/bin/python which is Python
- 1.5.2 on most older Red Hat installations; several key Red Hat tools
- require this version. Python 2.1.x may be installed as
- /usr/bin/python2. The Makefile installs Python as
- /usr/local/bin/python, which may or may not take precedence
- over /usr/bin/python, depending on how you have set up $PATH.
+ There's an executable /usr/bin/python which is Python
+ 1.5.2 on most older Red Hat installations; several key Red Hat tools
+ require this version. Python 2.1.x may be installed as
+ /usr/bin/python2. The Makefile installs Python as
+ /usr/local/bin/python, which may or may not take precedence
+ over /usr/bin/python, depending on how you have set up $PATH.
FreeBSD 3.x and probably platforms with NCurses that use libmytinfo or
- similar: When using cursesmodule, the linking is not done in
- the correct order with the defaults. Remove "-ltermcap" from
- the readline entry in Setup, and use as curses entry: "curses
- cursesmodule.c -lmytinfo -lncurses -ltermcap" - "mytinfo" (so
- called on FreeBSD) should be the name of the auxiliary library
- required on your platform. Normally, it would be linked
- automatically, but not necessarily in the correct order.
-
-BSDI: BSDI versions before 4.1 have known problems with threads,
- which can cause strange errors in a number of modules (for
- instance, the 'test_signal' test script will hang forever.)
- Turning off threads (with --with-threads=no) or upgrading to
- BSDI 4.1 solves this problem.
+ similar: When using cursesmodule, the linking is not done in
+ the correct order with the defaults. Remove "-ltermcap" from
+ the readline entry in Setup, and use as curses entry: "curses
+ cursesmodule.c -lmytinfo -lncurses -ltermcap" - "mytinfo" (so
+ called on FreeBSD) should be the name of the auxiliary library
+ required on your platform. Normally, it would be linked
+ automatically, but not necessarily in the correct order.
+
+BSDI: BSDI versions before 4.1 have known problems with threads,
+ which can cause strange errors in a number of modules (for
+ instance, the 'test_signal' test script will hang forever.)
+ Turning off threads (with --with-threads=no) or upgrading to
+ BSDI 4.1 solves this problem.
DEC Unix: Run configure with --with-dec-threads, or with
- --with-threads=no if no threads are desired (threads are on by
- default). When using GCC, it is possible to get an internal
- compiler error if optimization is used. This was reported for
- GCC 2.7.2.3 on selectmodule.c. Manually compile the affected
- file without optimization to solve the problem.
+ --with-threads=no if no threads are desired (threads are on by
+ default). When using GCC, it is possible to get an internal
+ compiler error if optimization is used. This was reported for
+ GCC 2.7.2.3 on selectmodule.c. Manually compile the affected
+ file without optimization to solve the problem.
DEC Ultrix: compile with GCC to avoid bugs in the native compiler,
- and pass SHELL=/bin/sh5 to Make when installing.
+ and pass SHELL=/bin/sh5 to Make when installing.
-AIX: A complete overhaul of the shared library support is now in
- place. See Misc/AIX-NOTES for some notes on how it's done.
- (The optimizer bug reported at this place in previous releases
- has been worked around by a minimal code change.) If you get
- errors about pthread_* functions, during compile or during
- testing, try setting CC to a thread-safe (reentrant) compiler,
- like "cc_r". For full C++ module support, set CC="xlC_r" (or
- CC="xlC" without thread support).
+AIX: A complete overhaul of the shared library support is now in
+ place. See Misc/AIX-NOTES for some notes on how it's done.
+ (The optimizer bug reported at this place in previous releases
+ has been worked around by a minimal code change.) If you get
+ errors about pthread_* functions, during compile or during
+ testing, try setting CC to a thread-safe (reentrant) compiler,
+ like "cc_r". For full C++ module support, set CC="xlC_r" (or
+ CC="xlC" without thread support).
AIX 5.3: To build a 64-bit version with IBM's compiler, I used the
following:
export PATH=/usr/bin:/usr/vacpp/bin
- ./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" \
+ ./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" \
--disable-ipv6 AR="ar -X64"
- make
+ make
HP-UX: When using threading, you may have to add -D_REENTRANT to the
- OPT variable in the top-level Makefile; reported by Pat Knight,
- this seems to make a difference (at least for HP-UX 10.20)
- even though pyconfig.h defines it. This seems unnecessary when
- using HP/UX 11 and later - threading seems to work "out of the
- box".
+ OPT variable in the top-level Makefile; reported by Pat Knight,
+ this seems to make a difference (at least for HP-UX 10.20)
+ even though pyconfig.h defines it. This seems unnecessary when
+ using HP/UX 11 and later - threading seems to work "out of the
+ box".
HP-UX ia64: When building on the ia64 (Itanium) platform using HP's
- compiler, some experience has shown that the compiler's
- optimiser produces a completely broken version of python
- (see http://www.python.org/sf/814976). To work around this,
- edit the Makefile and remove -O from the OPT line.
+ compiler, some experience has shown that the compiler's
+ optimiser produces a completely broken version of python
+ (see http://www.python.org/sf/814976). To work around this,
+ edit the Makefile and remove -O from the OPT line.
- To build a 64-bit executable on an Itanium 2 system using HP's
- compiler, use these environment variables:
+ To build a 64-bit executable on an Itanium 2 system using HP's
+ compiler, use these environment variables:
- CC=cc
- CXX=aCC
- BASECFLAGS="+DD64"
- LDFLAGS="+DD64 -lxnet"
+ CC=cc
+ CXX=aCC
+ BASECFLAGS="+DD64"
+ LDFLAGS="+DD64 -lxnet"
- and call configure as:
+ and call configure as:
- ./configure --without-gcc
+ ./configure --without-gcc
- then *unset* the environment variables again before running
- make. (At least one of these flags causes the build to fail
- if it remains set.) You still have to edit the Makefile and
- remove -O from the OPT line.
+ then *unset* the environment variables again before running
+ make. (At least one of these flags causes the build to fail
+ if it remains set.) You still have to edit the Makefile and
+ remove -O from the OPT line.
HP PA-RISC 2.0: A recent bug report (http://www.python.org/sf/546117)
- suggests that the C compiler in this 64-bit system has bugs
- in the optimizer that break Python. Compiling without
- optimization solves the problems.
+ suggests that the C compiler in this 64-bit system has bugs
+ in the optimizer that break Python. Compiling without
+ optimization solves the problems.
-SCO: The following apply to SCO 3 only; Python builds out of the box
- on SCO 5 (or so we've heard).
+SCO: The following apply to SCO 3 only; Python builds out of the box
+ on SCO 5 (or so we've heard).
- 1) Everything works much better if you add -U__STDC__ to the
- defs. This is because all the SCO header files are broken.
- Anything that isn't mentioned in the C standard is
- conditionally excluded when __STDC__ is defined.
+ 1) Everything works much better if you add -U__STDC__ to the
+ defs. This is because all the SCO header files are broken.
+ Anything that isn't mentioned in the C standard is
+ conditionally excluded when __STDC__ is defined.
- 2) Due to the U.S. export restrictions, SCO broke the crypt
- stuff out into a separate library, libcrypt_i.a so the LIBS
- needed be set to:
+ 2) Due to the U.S. export restrictions, SCO broke the crypt
+ stuff out into a separate library, libcrypt_i.a so the LIBS
+ needed be set to:
- LIBS=' -lsocket -lcrypt_i'
+ LIBS=' -lsocket -lcrypt_i'
UnixWare: There are known bugs in the math library of the system, as well as
problems in the handling of threads (calling fork in one
@@ -427,61 +427,61 @@ UnixWare: There are known bugs in the math library of the system, as well as
tests involving threads will fail until those problems are fixed.
SunOS 4.x: When using the SunPro C compiler, you may want to use the
- '-Xa' option instead of '-Xc', to enable some needed non-ANSI
- Sunisms.
- THIS SYSTEM IS NO LONGER SUPPORTED.
+ '-Xa' option instead of '-Xc', to enable some needed non-ANSI
+ Sunisms.
+ THIS SYSTEM IS NO LONGER SUPPORTED.
NeXT: Not supported anymore. Start with the MacOSX/Darwin code if you
- want to revive it.
+ want to revive it.
-QNX: Chris Herborth (chrish@qnx.com) writes:
- configure works best if you use GNU bash; a port is available on
- ftp.qnx.com in /usr/free. I used the following process to build,
- test and install Python 1.5.x under QNX:
+QNX: Chris Herborth (chrish@qnx.com) writes:
+ configure works best if you use GNU bash; a port is available on
+ ftp.qnx.com in /usr/free. I used the following process to build,
+ test and install Python 1.5.x under QNX:
- 1) CONFIG_SHELL=/usr/local/bin/bash CC=cc RANLIB=: \
- ./configure --verbose --without-gcc --with-libm=""
+ 1) CONFIG_SHELL=/usr/local/bin/bash CC=cc RANLIB=: \
+ ./configure --verbose --without-gcc --with-libm=""
- 2) edit Modules/Setup to activate everything that makes sense for
- your system... tested here at QNX with the following modules:
+ 2) edit Modules/Setup to activate everything that makes sense for
+ your system... tested here at QNX with the following modules:
- array, audioop, binascii, cPickle, cStringIO, cmath,
- crypt, curses, errno, fcntl, gdbm, grp, imageop,
- _locale, math, md5, new, operator, parser, pcre,
- posix, pwd, readline, regex, reop, rgbimg, rotor,
- select, signal, socket, soundex, strop, struct,
- syslog, termios, time, timing, zlib, audioop, imageop, rgbimg
+ array, audioop, binascii, cPickle, cStringIO, cmath,
+ crypt, curses, errno, fcntl, gdbm, grp, imageop,
+ _locale, math, md5, new, operator, parser, pcre,
+ posix, pwd, readline, regex, reop, rgbimg, rotor,
+ select, signal, socket, soundex, strop, struct,
+ syslog, termios, time, timing, zlib, audioop, imageop, rgbimg
- 3) make SHELL=/usr/local/bin/bash
+ 3) make SHELL=/usr/local/bin/bash
- or, if you feel the need for speed:
+ or, if you feel the need for speed:
- make SHELL=/usr/local/bin/bash OPT="-5 -Oil+nrt"
+ make SHELL=/usr/local/bin/bash OPT="-5 -Oil+nrt"
- 4) make SHELL=/usr/local/bin/bash test
+ 4) make SHELL=/usr/local/bin/bash test
- Using GNU readline 2.2 seems to behave strangely, but I
- think that's a problem with my readline 2.2 port. :-\
+ Using GNU readline 2.2 seems to behave strangely, but I
+ think that's a problem with my readline 2.2 port. :-\
- 5) make SHELL=/usr/local/bin/bash install
+ 5) make SHELL=/usr/local/bin/bash install
- If you get SIGSEGVs while running Python (I haven't yet, but
- I've only run small programs and the test cases), you're
- probably running out of stack; the default 32k could be a
- little tight. To increase the stack size, edit the Makefile
- to read: LDFLAGS = -N 48k
+ If you get SIGSEGVs while running Python (I haven't yet, but
+ I've only run small programs and the test cases), you're
+ probably running out of stack; the default 32k could be a
+ little tight. To increase the stack size, edit the Makefile
+ to read: LDFLAGS = -N 48k
-BeOS: See Misc/BeOS-NOTES for notes about compiling/installing
- Python on BeOS R3 or later. Note that only the PowerPC
- platform is supported for R3; both PowerPC and x86 are
- supported for R4.
+BeOS: See Misc/BeOS-NOTES for notes about compiling/installing
+ Python on BeOS R3 or later. Note that only the PowerPC
+ platform is supported for R3; both PowerPC and x86 are
+ supported for R4.
Cray T3E: Mark Hadfield (m.hadfield@niwa.co.nz) writes:
- Python can be built satisfactorily on a Cray T3E but based on
- my experience with the NIWA T3E (2002-05-22, version 2.2.1)
- there are a few bugs and gotchas. For more information see a
- thread on comp.lang.python in May 2002 entitled "Building
- Python on Cray T3E".
+ Python can be built satisfactorily on a Cray T3E but based on
+ my experience with the NIWA T3E (2002-05-22, version 2.2.1)
+ there are a few bugs and gotchas. For more information see a
+ thread on comp.lang.python in May 2002 entitled "Building
+ Python on Cray T3E".
1) Use Cray's cc and not gcc. The latter was reported not to
work by Konrad Hinsen. It may work now, but it may not.
@@ -491,16 +491,16 @@ Cray T3E: Mark Hadfield (m.hadfield@niwa.co.nz) writes:
MACHDEP=unicosmk
- 2) Run configure with option "--enable-unicode=ucs4".
+ 2) Run configure with option "--enable-unicode=ucs4".
- 3) The Cray T3E does not support dynamic linking, so extension
- modules have to be built by adding (or uncommenting) lines
- in Modules/Setup. The minimum set of modules is
+ 3) The Cray T3E does not support dynamic linking, so extension
+ modules have to be built by adding (or uncommenting) lines
+ in Modules/Setup. The minimum set of modules is
- posix, new, _sre, unicodedata
+ posix, new, _sre, unicodedata
- On NIWA's vanilla T3E system the following have also been
- included successfully:
+ On NIWA's vanilla T3E system the following have also been
+ included successfully:
_codecs, _locale, _socket, _symtable, _testcapi, _weakref
array, binascii, cmath, cPickle, crypt, cStringIO, dbm
@@ -508,28 +508,28 @@ Cray T3E: Mark Hadfield (m.hadfield@niwa.co.nz) writes:
rotor, select, struct, strop, syslog, termios,
time, timing
- 4) Once the python executable and library have been built, make
- will execute setup.py, which will attempt to build remaining
- extensions and link them dynamically. Each of these attempts
- will fail but should not halt the make process. This is
- normal.
-
- 5) Running "make test" uses a lot of resources and causes
- problems on our system. You might want to try running tests
- singly or in small groups.
-
-SGI: SGI's standard "make" utility (/bin/make or /usr/bin/make)
- does not check whether a command actually changed the file it
- is supposed to build. This means that whenever you say "make"
- it will redo the link step. The remedy is to use SGI's much
- smarter "smake" utility (/usr/sbin/smake), or GNU make. If
- you set the first line of the Makefile to #!/usr/sbin/smake
- smake will be invoked by make (likewise for GNU make).
-
- WARNING: There are bugs in the optimizer of some versions of
- SGI's compilers that can cause bus errors or other strange
- behavior, especially on numerical operations. To avoid this,
- try building with "make OPT=".
+ 4) Once the python executable and library have been built, make
+ will execute setup.py, which will attempt to build remaining
+ extensions and link them dynamically. Each of these attempts
+ will fail but should not halt the make process. This is
+ normal.
+
+ 5) Running "make test" uses a lot of resources and causes
+ problems on our system. You might want to try running tests
+ singly or in small groups.
+
+SGI: SGI's standard "make" utility (/bin/make or /usr/bin/make)
+ does not check whether a command actually changed the file it
+ is supposed to build. This means that whenever you say "make"
+ it will redo the link step. The remedy is to use SGI's much
+ smarter "smake" utility (/usr/sbin/smake), or GNU make. If
+ you set the first line of the Makefile to #!/usr/sbin/smake
+ smake will be invoked by make (likewise for GNU make).
+
+ WARNING: There are bugs in the optimizer of some versions of
+ SGI's compilers that can cause bus errors or other strange
+ behavior, especially on numerical operations. To avoid this,
+ try building with "make OPT=".
OS/2: If you are running Warp3 or Warp4 and have IBM's VisualAge C/C++
compiler installed, just change into the pc\os2vacpp directory
@@ -569,8 +569,8 @@ MacOSX: The tests will crash on both 10.1 and 10.2 with SEGV in
additions.
Some people have reported problems building Python after using "fink"
- to install additional unix software. Disabling fink (remove all references
- to /sw from your .profile or .login) should solve this.
+ to install additional unix software. Disabling fink (remove all
+ references to /sw from your .profile or .login) should solve this.
You may want to try the configure option "--enable-framework"
which installs Python as a framework. The location can be set
@@ -602,8 +602,8 @@ Cygwin: With recent (relative to the time of writing, 2001-12-19)
#SSL=/usr/local/ssl
#_socket socketmodule.c \
- # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
- # -L$(SSL)/lib -lssl -lcrypto
+ # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
+ # -L$(SSL)/lib -lssl -lcrypto
and remove "local/" from the SSL variable. Finally, just run
"make"!
@@ -648,69 +648,69 @@ Cygwin: With recent (relative to the time of writing, 2001-12-19)
AtheOS: From Octavian Cerna <tavy at ylabs.com>:
- Before building:
+ Before building:
- Make sure you have shared versions of the libraries you
- want to use with Python. You will have to compile them
- yourself, or download precompiled packages.
+ Make sure you have shared versions of the libraries you
+ want to use with Python. You will have to compile them
+ yourself, or download precompiled packages.
- Recommended libraries:
+ Recommended libraries:
- ncurses-4.2
- readline-4.2a
- zlib-1.1.4
+ ncurses-4.2
+ readline-4.2a
+ zlib-1.1.4
- Build:
+ Build:
- $ ./configure --prefix=/usr/python
- $ make
+ $ ./configure --prefix=/usr/python
+ $ make
- Python is always built as a shared library, otherwise
- dynamic loading would not work.
+ Python is always built as a shared library, otherwise
+ dynamic loading would not work.
- Testing:
+ Testing:
- $ make test
+ $ make test
- Install:
+ Install:
- # make install
- # pkgmanager -a /usr/python
+ # make install
+ # pkgmanager -a /usr/python
- AtheOS issues:
+ AtheOS issues:
- - large file support: due to a stdio bug in glibc/libio,
- access to large files may not work correctly. fseeko()
- tries to seek to a negative offset. ftello() returns a
- negative offset, it looks like a 32->64bit
- sign-extension issue. The lowlevel functions (open,
- lseek, etc) are OK.
- - sockets: AF_UNIX is defined in the C library and in
- Python, but not implemented in the system.
- - select: poll is available in the C library, but does not
- work (It does not return POLLNVAL for bad fds and
- hangs).
- - posix: statvfs and fstatvfs always return ENOSYS.
- - disabled modules:
- - mmap: not yet implemented in AtheOS
- - nis: broken (on an unconfigured system
- yp_get_default_domain() returns junk instead of
- error)
- - dl: dynamic loading doesn't work via dlopen()
- - resource: getrimit and setrlimit are not yet
- implemented
+ - large file support: due to a stdio bug in glibc/libio,
+ access to large files may not work correctly. fseeko()
+ tries to seek to a negative offset. ftello() returns a
+ negative offset, it looks like a 32->64bit
+ sign-extension issue. The lowlevel functions (open,
+ lseek, etc) are OK.
+ - sockets: AF_UNIX is defined in the C library and in
+ Python, but not implemented in the system.
+ - select: poll is available in the C library, but does not
+ work (It does not return POLLNVAL for bad fds and
+ hangs).
+ - posix: statvfs and fstatvfs always return ENOSYS.
+ - disabled modules:
+ - mmap: not yet implemented in AtheOS
+ - nis: broken (on an unconfigured system
+ yp_get_default_domain() returns junk instead of
+ error)
+ - dl: dynamic loading doesn't work via dlopen()
+ - resource: getrimit and setrlimit are not yet
+ implemented
- - if you are getting segmentation faults, you probably are
- low on memory. AtheOS doesn't handle very well an
- out-of-memory condition and simply SEGVs the process.
+ - if you are getting segmentation faults, you probably are
+ low on memory. AtheOS doesn't handle very well an
+ out-of-memory condition and simply SEGVs the process.
- Tested on:
+ Tested on:
- AtheOS-0.3.7
- gcc-2.95
- binutils-2.10
- make-3.78
+ AtheOS-0.3.7
+ gcc-2.95
+ binutils-2.10
+ make-3.78
Configuring the bsddb and dbm modules
@@ -719,15 +719,25 @@ Configuring the bsddb and dbm modules
Beginning with Python version 2.3, the PyBsddb package
<http://pybsddb.sf.net/> was adopted into Python as the bsddb package,
exposing a set of package-level functions which provide
-backwards-compatible behavior. Only versions 3.1 through 4.1 of
+backwards-compatible behavior. Only versions 3.3 through 4.4 of
Sleepycat's libraries provide the necessary API, so older versions
aren't supported through this interface. The old bsddb module has
been retained as bsddb185, though it is not built by default. Users
wishing to use it will have to tweak Modules/Setup to build it. The
dbm module will still be built against the Sleepycat libraries if
-other preferred alternatives (ndbm, gdbm) are not found, though
-versions of the Sleepycat library prior to 3.1 are not considered.
+other preferred alternatives (ndbm, gdbm) are not found.
+Building the sqlite3 module
+---------------------------
+
+To build the sqlite3 module, you'll need the sqlite3 or libsqlite3
+packages installed, including the header files. Many modern operating
+systems distribute the headers in a separate package to the library -
+often it will be the same name as the main package, but with a -dev or
+-devel suffix.
+
+The version of pysqlite2 that's including in Python needs sqlite3 3.0.8
+or later. setup.py attempts to check that it can find a correct version.
Configuring threads
-------------------
@@ -757,17 +767,17 @@ incorrectly, please report that as a bug.
SunOS 5.{1-5}/{gcc,SunPro cc}/solaris -mt
SunOS 5.5/{gcc,SunPro cc}/POSIX (nothing)
DEC OSF/1 3.x/cc/DCE -threads
- (butenhof@zko.dec.com)
+ (butenhof@zko.dec.com)
Digital UNIX 4.x/cc/DCE -threads
- (butenhof@zko.dec.com)
+ (butenhof@zko.dec.com)
Digital UNIX 4.x/cc/POSIX -pthread
- (butenhof@zko.dec.com)
+ (butenhof@zko.dec.com)
AIX 4.1.4/cc_r/d7 (nothing)
- (buhrt@iquest.net)
+ (buhrt@iquest.net)
AIX 4.1.4/cc_r4/DCE (nothing)
- (buhrt@iquest.net)
+ (buhrt@iquest.net)
IRIX 6.2/cc/POSIX (nothing)
- (robertl@cwi.nl)
+ (robertl@cwi.nl)
Linker (ld) libraries and flags for threads
@@ -778,15 +788,15 @@ Linker (ld) libraries and flags for threads
SunOS 5.{1-5}/solaris -lthread
SunOS 5.5/POSIX -lpthread
DEC OSF/1 3.x/DCE -lpthreads -lmach -lc_r -lc
- (butenhof@zko.dec.com)
+ (butenhof@zko.dec.com)
Digital UNIX 4.x/DCE -lpthreads -lpthread -lmach -lexc -lc
- (butenhof@zko.dec.com)
+ (butenhof@zko.dec.com)
Digital UNIX 4.x/POSIX -lpthread -lmach -lexc -lc
- (butenhof@zko.dec.com)
+ (butenhof@zko.dec.com)
AIX 4.1.4/{draft7,DCE} (nothing)
- (buhrt@iquest.net)
+ (buhrt@iquest.net)
IRIX 6.2/POSIX -lpthread
- (jph@emilia.engr.sgi.com)
+ (jph@emilia.engr.sgi.com)
Building a shared libpython
@@ -896,7 +906,7 @@ IMPORTANT: If the tests fail and you decide to mail a bug report,
*don't* include the output of "make test". It is useless. Run the
failing test manually, as follows:
- ./python ./Lib/test/test_whatever.py
+ ./python ./Lib/test/test_whatever.py
(substituting the top of the source tree for '.' if you built in a
different directory). This runs the test in verbose mode.
@@ -909,7 +919,7 @@ To install the Python binary, library modules, shared library modules
(see below), include files, configuration files, and the manual page,
just type
- make install
+ make install
This will install all platform-independent files in subdirectories of
the directory given with the --prefix option to configure or to the
@@ -934,7 +944,7 @@ by default.
If you have a previous installation of Python that you don't
want to replace yet, use
- make altinstall
+ make altinstall
This installs the same set of files as "make install" except it
doesn't create the hard link to "python<version>" named "python" and
@@ -963,104 +973,124 @@ after changing --prefix or --exec-prefix, all you need to do is remove
Modules/getpath.o.
--with(out)-gcc: The configure script uses gcc (the GNU C compiler) if
- it finds it. If you don't want this, or if this compiler is
- installed but broken on your platform, pass the option
- --without-gcc. You can also pass "CC=cc" (or whatever the
- name of the proper C compiler is) in the environment, but the
- advantage of using --without-gcc is that this option is
- remembered by the config.status script for its --recheck
- option.
+ it finds it. If you don't want this, or if this compiler is
+ installed but broken on your platform, pass the option
+ --without-gcc. You can also pass "CC=cc" (or whatever the
+ name of the proper C compiler is) in the environment, but the
+ advantage of using --without-gcc is that this option is
+ remembered by the config.status script for its --recheck
+ option.
--prefix, --exec-prefix: If you want to install the binaries and the
- Python library somewhere else than in /usr/local/{bin,lib},
- you can pass the option --prefix=DIRECTORY; the interpreter
- binary will be installed as DIRECTORY/bin/python and the
- library files as DIRECTORY/lib/python/*. If you pass
- --exec-prefix=DIRECTORY (as well) this overrides the
- installation prefix for architecture-dependent files (like the
- interpreter binary). Note that --prefix=DIRECTORY also
- affects the default module search path (sys.path), when
- Modules/config.c is compiled. Passing make the option
- prefix=DIRECTORY (and/or exec_prefix=DIRECTORY) overrides the
- prefix set at configuration time; this may be more convenient
- than re-running the configure script if you change your mind
- about the install prefix.
+ Python library somewhere else than in /usr/local/{bin,lib},
+ you can pass the option --prefix=DIRECTORY; the interpreter
+ binary will be installed as DIRECTORY/bin/python and the
+ library files as DIRECTORY/lib/python/*. If you pass
+ --exec-prefix=DIRECTORY (as well) this overrides the
+ installation prefix for architecture-dependent files (like the
+ interpreter binary). Note that --prefix=DIRECTORY also
+ affects the default module search path (sys.path), when
+ Modules/config.c is compiled. Passing make the option
+ prefix=DIRECTORY (and/or exec_prefix=DIRECTORY) overrides the
+ prefix set at configuration time; this may be more convenient
+ than re-running the configure script if you change your mind
+ about the install prefix.
--with-readline: This option is no longer supported. GNU
- readline is automatically enabled by setup.py when present.
+ readline is automatically enabled by setup.py when present.
--with-threads: On most Unix systems, you can now use multiple
- threads, and support for this is enabled by default. To
- disable this, pass --with-threads=no. If the library required
- for threads lives in a peculiar place, you can use
- --with-thread=DIRECTORY. IMPORTANT: run "make clean" after
- changing (either enabling or disabling) this option, or you
- will get link errors! Note: for DEC Unix use
- --with-dec-threads instead.
+ threads, and support for this is enabled by default. To
+ disable this, pass --with-threads=no. If the library required
+ for threads lives in a peculiar place, you can use
+ --with-thread=DIRECTORY. IMPORTANT: run "make clean" after
+ changing (either enabling or disabling) this option, or you
+ will get link errors! Note: for DEC Unix use
+ --with-dec-threads instead.
--with-sgi-dl: On SGI IRIX 4, dynamic loading of extension modules is
- supported by the "dl" library by Jack Jansen, which is
- ftp'able from ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
- This is enabled (after you've ftp'ed and compiled the dl
- library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
- is the absolute pathname of the dl library. (Don't bother on
- IRIX 5, it already has dynamic linking using SunOS style
- shared libraries.) THIS OPTION IS UNSUPPORTED.
+ supported by the "dl" library by Jack Jansen, which is
+ ftp'able from ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
+ This is enabled (after you've ftp'ed and compiled the dl
+ library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
+ is the absolute pathname of the dl library. (Don't bother on
+ IRIX 5, it already has dynamic linking using SunOS style
+ shared libraries.) THIS OPTION IS UNSUPPORTED.
--with-dl-dld: Dynamic loading of modules is rumored to be supported
- on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
- Symmetry (Dynix), and Atari ST. This is done using a
- combination of the GNU dynamic loading package
- (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
- emulation of the SGI dl library mentioned above (the emulation
- can be found at
- ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z). To
- enable this, ftp and compile both libraries, then call
- configure, passing it the option
- --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where DL_DIRECTORY is
- the absolute pathname of the dl emulation library and
- DLD_DIRECTORY is the absolute pathname of the GNU dld library.
- (Don't bother on SunOS 4 or 5, they already have dynamic
- linking using shared libraries.) THIS OPTION IS UNSUPPORTED.
+ on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
+ Symmetry (Dynix), and Atari ST. This is done using a
+ combination of the GNU dynamic loading package
+ (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
+ emulation of the SGI dl library mentioned above (the emulation
+ can be found at
+ ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z). To
+ enable this, ftp and compile both libraries, then call
+ configure, passing it the option
+ --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where DL_DIRECTORY is
+ the absolute pathname of the dl emulation library and
+ DLD_DIRECTORY is the absolute pathname of the GNU dld library.
+ (Don't bother on SunOS 4 or 5, they already have dynamic
+ linking using shared libraries.) THIS OPTION IS UNSUPPORTED.
--with-libm, --with-libc: It is possible to specify alternative
- versions for the Math library (default -lm) and the C library
- (default the empty string) using the options
- --with-libm=STRING and --with-libc=STRING, respectively. For
- example, if your system requires that you pass -lc_s to the C
- compiler to use the shared C library, you can pass
- --with-libc=-lc_s. These libraries are passed after all other
- libraries, the C library last.
+ versions for the Math library (default -lm) and the C library
+ (default the empty string) using the options
+ --with-libm=STRING and --with-libc=STRING, respectively. For
+ example, if your system requires that you pass -lc_s to the C
+ compiler to use the shared C library, you can pass
+ --with-libc=-lc_s. These libraries are passed after all other
+ libraries, the C library last.
--with-libs='libs': Add 'libs' to the LIBS that the python interpreter
- is linked against.
-
---with-cxx=<compiler>: Some C++ compilers require that main() is
- compiled with the C++ if there is any C++ code in the application.
- Specifically, g++ on a.out systems may require that to support
- construction of global objects. With this option, the main() function
- of Python will be compiled with <compiler>; use that only if you
- plan to use C++ extension modules, and if your compiler requires
- compilation of main() as a C++ program.
+ is linked against.
+
+--with-cxx-main=<compiler>: If you plan to use C++ extension modules,
+ then -- on some platforms -- you need to compile python's main()
+ function with the C++ compiler. With this option, make will use
+ <compiler> to compile main() *and* to link the python executable.
+ It is likely that the resulting executable depends on the C++
+ runtime library of <compiler>. (The default is --without-cxx-main.)
+
+ There are platforms that do not require you to build Python
+ with a C++ compiler in order to use C++ extension modules.
+ E.g., x86 Linux with ELF shared binaries and GCC 3.x, 4.x is such
+ a platform. We recommend that you configure Python
+ --without-cxx-main on those platforms because a mismatch
+ between the C++ compiler version used to build Python and to
+ build a C++ extension module is likely to cause a crash at
+ runtime.
+
+ The Python installation also stores the variable CXX that
+ determines, e.g., the C++ compiler distutils calls by default
+ to build C++ extensions. If you set CXX on the configure command
+ line to any string of non-zero length, then configure won't
+ change CXX. If you do not preset CXX but pass
+ --with-cxx-main=<compiler>, then configure sets CXX=<compiler>.
+ In all other cases, configure looks for a C++ compiler by
+ some common names (c++, g++, gcc, CC, cxx, cc++, cl) and sets
+ CXX to the first compiler it finds. If it does not find any
+ C++ compiler, then it sets CXX="".
+
+ Similarly, if you want to change the command used to link the
+ python executable, then set LINKCC on the configure command line.
--with-pydebug: Enable additional debugging code to help track down
- memory management problems. This allows printing a list of all
- live objects when the interpreter terminates.
+ memory management problems. This allows printing a list of all
+ live objects when the interpreter terminates.
--with(out)-universal-newlines: enable reading of text files with
- foreign newline convention (default: enabled). In other words,
- any of \r, \n or \r\n is acceptable as end-of-line character.
- If enabled import and execfile will automatically accept any newline
- in files. Python code can open a file with open(file, 'U') to
- read it in universal newline mode. THIS OPTION IS UNSUPPORTED.
+ foreign newline convention (default: enabled). In other words,
+ any of \r, \n or \r\n is acceptable as end-of-line character.
+ If enabled import and execfile will automatically accept any newline
+ in files. Python code can open a file with open(file, 'U') to
+ read it in universal newline mode. THIS OPTION IS UNSUPPORTED.
--with-tsc: Profile using the Pentium timestamping counter (TSC).
---with-fpectl: Enable building the ``fpectl'' module which can be used
- to control the generation of SIGFPE and its conversion into a
- Python exception. Note: this module is dangerous or useless
- except in the hands of experts.
+--with-system-ffi: Build the _ctypes extension module using an ffi
+ library installed on the system.
Building for multiple architectures (using the VPATH feature)
@@ -1081,13 +1111,13 @@ For example, the following is all you need to build a minimal Python
in /usr/tmp/python (assuming ~guido/src/python is the toplevel
directory and you want to build in /usr/tmp/python):
- $ mkdir /usr/tmp/python
- $ cd /usr/tmp/python
- $ ~guido/src/python/configure
- [...]
- $ make
- [...]
- $
+ $ mkdir /usr/tmp/python
+ $ cd /usr/tmp/python
+ $ ~guido/src/python/configure
+ [...]
+ $ make
+ [...]
+ $
Note that configure copies the original Setup file to the build
directory if it finds no Setup file there. This means that you can
@@ -1184,13 +1214,12 @@ Distribution structure
Most subdirectories have their own README files. Most files have
comments.
-.cvsignore Additional filename matching patterns for CVS to ignore
-BeOS/ Files specific to the BeOS port
+BeOS/ Files specific to the BeOS port
Demo/ Demonstration scripts, modules and programs
-Doc/ Documentation sources (LaTeX)
+Doc/ Documentation sources (LaTeX)
Grammar/ Input for the parser generator
Include/ Public header files
-LICENSE Licensing information
+LICENSE Licensing information
Lib/ Python library modules
Mac/ Macintosh specific resources
Makefile.pre.in Source from which config.status creates the Makefile.pre
@@ -1198,7 +1227,7 @@ Misc/ Miscellaneous useful files
Modules/ Implementation of most built-in modules
Objects/ Implementation of most built-in object types
PC/ Files specific to PC ports (DOS, Windows, OS/2)
-PCbuild/ Build directory for Microsoft Visual C++
+PCbuild/ Build directory for Microsoft Visual C++
Parser/ The parser and tokenizer and their input handling
Python/ The byte-compiler and interpreter
README The file you're reading now
@@ -1207,6 +1236,7 @@ pyconfig.h.in Source from which pyconfig.h is created (GNU autoheader output)
configure Configuration shell script (GNU autoconf output)
configure.in Configuration specification (input for GNU autoconf)
install-sh Shell script used to install files
+setup.py Python script used to build extension modules
The following files will (may) be created in the toplevel directory by
the configuration and build processes:
@@ -1218,8 +1248,8 @@ config.cache Cache of configuration variables
pyconfig.h Configuration header
config.log Log from last configure run
config.status Status from last run of the configure script
-getbuildinfo.o Object file from Modules/getbuildinfo.c
-libpython<version>.a The library archive
+getbuildinfo.o Object file from Modules/getbuildinfo.c
+libpython<version>.a The library archive
python The executable interpreter
tags, TAGS Tags files for vi and Emacs