PPCR and Python?

Bill Janssen (janssen@parc.xerox.com)
Fri, 13 Jan 1995 16:38:36 PST

Has anyone attempted to use Python with PPCR?

A brief description of PPCR:

Abstract: The Posix Portable Common Runtime (PPCR) provides integrated
user-level support for pre-emptive lightweight threads, garbage
collected storage, and dynamic programming loading. It should run on
any POSIX.1-conforming implementation that also supports BSD select() or
System V poll(). PPCR can take advantage of kernel thread extensions of
the underlying system, such as the LWP facility of Solaris 2.3 and the
sproc facility of Irix 5, to achieve true concurrent execution by its
threads on multiprocessors. It also uses memory protection features
available in some systems (e.g. mprotect()) to support incremental
garbage collection. PPCR has been successfully built for SunOS 4.1.3
(aka Solaris 1.1), SunOS 5.3 (aka Solaris 2.3), Irix 5, Linux 1.0 and
BSDI. See ftp://ftp.parc.xerox.com/pub/ppcr/ for releases.

It seems to me this would be a good platform for UNIX Python, as it
would provide by default threads and dynamic loading on UNIX systems,
even on operating systems which don't provide them (such as SunOS 4.1.3
and Linux). This would allow us to be a bit more forceful in our use of
threads. The changes to Python would be reasonably contained in
Modules/threadmodule.c and Python/import.c. The conservative garbage
collector used in PPCR would catch various storage leaks in the C code
(it's possible it could also be used to discover/fix leaks in Python ref
counts! It does support finalization.).

Bill