[Python-checkins] CVS: python/dist/src/Misc BeOS-NOTES,1.2,1.3
Guido van Rossum
gvanrossum@users.sourceforge.net
2001年4月10日 14:51:31 -0700
Update of /cvsroot/python/python/dist/src/Misc
In directory usw-pr-cvs1:/tmp/cvs-serv5674
Modified Files:
BeOS-NOTES
Log Message:
Completely revamped BeOS notes, by Donn Cave (SF patch 411834).
Index: BeOS-NOTES
===================================================================
RCS file: /cvsroot/python/python/dist/src/Misc/BeOS-NOTES,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** BeOS-NOTES 2001年02月16日 04:35:20 1.2
--- BeOS-NOTES 2001年04月10日 21:51:29 1.3
***************
*** 1,58 ****
Python for BeOS R5
! To build,
! 1) ./configure --prefix=/boot/home/config
! 2) edit Modules/Setup
! comment out grp and mmap, and pwd on 4.5 or earlier
! uncomment any modules you want to include in python
! (you can also add them later as shared libraries.)
3) make
Test:
make test
! [Chris Herborth writes:]
! test_popen2 will probably hang; it's deadlocked on a semaphore. I should
! probably disable popen2 support... it uses fork(), and fork() doesn't mix
! with threads on BeOS. In *THEORY* you could use it in a single-threaded
! program, but I haven't tried.
!
! If test_popen2 does hang, you can find the semaphore it's hung on via the
! "ps" command. Look for python and you'll find something like this:
!
! ./python -tt ../src/Lib/test/regrtest.py (team 26922) (uid 0) (gid 0)
! 39472 python sem 10 3785 1500 piperd(360526)
! ./python -tt ../src/Lib/test/regrtest.py (team 26923) (uid 0) (gid 0)
! 39477 python sem 10 25 4 python lock (1)(360022)
! ^^^^^^
! That last number is the semaphore the fork()'d python is stuck on
! (see how it's helpfully called "python lock (1)"? :-). You can unblock
! that semaphore to let the tests continue using the "release" command
! with that semaphore number. Be _very_ careful with "release" though,
! releasing the wrong semaphore can be hazardous.
!
! Expect the following errors:
!
! test * skipped -- an optional feature could not be imported (you'll see
! quite a few of these, based on what optional modules
! you've included)
!
! test test_fork1 skipped -- can't mix os.fork with threads on BeOS
!
! test test_select crashed -- select.error : (-2147459072, 'Bad file
! descriptor')
!
! test test_socket crashed -- exceptions.AttributeError : SOCK_RAW
!
! These are all due to either partial support for certain things (like
! sockets), or valid differences between systems.
!
! test test_pickle crashed. This is apparently a serious problem,
! "complex" number objects reconstructed from a
! pickle don't compare equal to their ancestors.
! But it happens on BeOS PPC only, not Intel.
Install:
--- 1,37 ----
Python for BeOS R5
! In Python-2.1, the standard version of the new setup.py program
! will not build the full complement of modules on BeOS. Instead,
! please replace it with the special BeOS version in Misc/BeOS-setup.py.
! To build,
! 1) cp Misc/BeOS-setup.py setup.py
! 2) ./configure --prefix=/boot/home/config
3) make
+ The modules will all build, except termios which assumes some flags
+ we don't have. Put a libreadline.a in /boot/home/config/lib to get
+ a readline.so for your interactive editing convenience; NB, not
+ libreadline.so, you want to link a static readline library into the
+ dynamically loaded Python module.
+
Test:
make test
! The BeOS is Not UNIX category:
! - test_select crashed -- select.error : (-2147459072, 'Bad file descriptor')
! - test_socket crashed -- exceptions.AttributeError : SOCK_RAW
! - test_fcntl crashed -- exceptions.IOError: [Errno -2147483643] Invalid argument
!
! This one is funny! BeOS does support large files, and that's why
! we get this error: the file is too big for my filesystem!
! - test_largefile crashed -- exceptions.IOError: [Errno -2147459065]
! No space left on device
!
! - test_pickle crashed. This is apparently a serious problem, "complex"
! number objects reconstructed from a pickle don't compare equal to
! their ancestors. But it happens on BeOS PPC only, not Intel.
Install:
***************
*** 60,128 ****
make install
-
- Using GNU readline:
-
- The Python interpreter is much nicer to work with interactively if
- you've got readline installed. Highly recommended.
-
- You can get the original GNU readline 2.2 source code from your
- favourite GNU software repository, such as
- ftp://prep.ai.mit.edu/pub/gnu/.
-
- You can get the only-slightly-modified-for-BeOS version of GNU
- readline 2.2 from the GeekGadgets repository;
- ftp://ftp.ninemoons.com/pub/geekgadgets/.
-
-
- Building libreadline for BeOS hosts:
-
- Note that we don't build a shared library version of libreadline and
- libhistory. That's left as an exercise for the reader.
-
- You won't be able to link against libreadline.a using the limited
- linker.
-
- 1) If you're on a PowerPC system, install the POSIX ar from
- http://www.qnx.com/~chrish/Be/software/index.html#programming
- (note that it's currently packaged with Python, in the BeOS/ar-1.1
- directory).
-
- If you're on an x86 system, you can leave out the "AR=ar-posix"
- part of the following instructions. In fact, you'll have to...
-
- 2) For PowerPC, configure with:
-
- CC=mwcc CFLAGS="-O7 -i- -I." AR=ar-posix RANLIB=: ./configure --verbose \
- --without-gcc --prefix=/boot/home/config powerpc-*-beos
-
- For x86, configure with:
-
- CC=mwcc CFLAGS="-O2 -i- -I." RANLIB=: ./configure --verbose \
- --without-gcc --prefix=/boot/home/config x86-*-beos
-
- Don't worry about the warnings/errors configure spews for
- powerpc-*-beos or x86-*-beos; readline doesn't actually use this host
- information for anything, although configure will die if you don't
- specify it.
-
- 3) Edit config.h to comment out "#define HAVE_SELECT 1"; select() on
- BeOS doesn't work on file descriptors (such as stdin).
-
- 4) For PowerPC, make with:
-
- make AR=ar-posix
-
- For x86, make with:
-
- make
-
- 5) Install with:
-
- make install
-
- Enjoy!
-
- - Chris Herborth (chrish@pobox.com)
- July 21, 2000
- Donn Cave (donn@oz.net)
--- 39,42 ----