____ _ _ | _ \| |_| |__ | |_) | __| '_ \ ``It doesn't need to be | __/| |_| | | | tested, because it works.'' |_| \__|_| |_| -- Richard Holloway GNU Pth - The GNU Portable Threads TESTS ===== GNU Pth was successfully tested with the following real-world applications (which are not just trivial sample applications unlike the shipped test_xxx programs): o Apache (webserver) o MySQL (relational database system) o OpenLDAP (LDAP toolkit) o pidentd (IDENT daemon) o Perl (scripting language) o Python (scripting language) o gFTP (FTP client) o NakenChat (chat server) Details of the tests follow: Package: Apache Version: 2.0-dev URL: http://www.apache.org/ Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 30-Aug-1999 Config: CFLAGS="`pthread-config --cflags` \ -DPTHREAD_EVERYWHERE \ -DNO_SERIALIZED_ACCEPT" LDFLAGS="`pthread-config --ldflags`" LIBS="`pthread-config --libs`" --set-rule=MPM_METHOD:dexter Comment: Apache 2.0-dev is a developer version, `dexter' is a MPM (multi process model) module based on Pthreads. The server served around 1000 requests per second. Package: MySQL Version: 3.22.25 URL: http://www.mysql.com/ Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 30-Aug-1999 Config: CC=egcc CXX=eg++ \ CFLAGS="`pthread-config --cflags`" \ CXXFLAGS="`pthread-config --cflags`" \ LDFLAGS="`pthread-config --ldflags`" \ ./configure \ --prefix=/tmp/mysql \ --without-mit-pthreads \ --with-pthread \ --with-named-thread-libs="`pthread-config --libs`" Comment: MySQL seems to work fine with Pth. I was able to run the tests from the INSTALL/README documents, i.e. a create table, a few inserts and a select and the server served them fine. Package: OpenLDAP Version: 2.0-dev URL: http://www.openldap.org/ Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 01-Sep-1999 Config: CPPFLAGS="`pth-config --cflags`" \ LDFLAGS="`pth-config --ldflags`" \ ./configure --prefix=/tmp/openldap \ --with-threads=pth Comments: Still not tested under runtime, just compiled the beast. Interesting is that OpenLDAP has native Pth support. Package: pidentd Version: 3.1a14 URL: ftp://ftp.lysator.liu.se/pub/unix/ident/servers/ Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 30-Aug-1999 Config: CFLAGS="`pthread-config --cflags`" \ LDFLAGS="`pthread-config --ldflags`" \ LIBS="`pthread-config --libs`" \ ./configure \ --prefix=/tmp/pindent \ --with-threads Comment: I had to change ``CC="$CC -pthread"'' in `configure' with ``: CC="$CC -pthread"'' in order to avoid the use uthreads under FreeBSD. Package: Perl Version: 5.005_03 URL: http://www.perl.com/ Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft --enable-syscall-hard] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 02-Sep-1999 Config: ./Configure \ -Dusethreads -des \ -Dccflags="`pthread-config --cflags`" \ -Dlibs="`pthread-config --ldflags --libs` -lm" \ -Dprefix=/tmp/perl Comment: I've tried all tests ext/Thread/*.t. All worked fine, except for the io.t. Even with Pth's --enable-syscall-hard Perl seems to use direct I/O for the facility. So the Pth support for Perl is still not 100%. But perhaps one can make it complete by using PerlIO abstraction layer (either directly to use pth_read/write or via Sfio and pth_sfdisc)? Additionally I had to deactivate the -pthread in hints/freebsd to get rid of uthread under FreeBSD. Package: Python Version: 1.5.2 URL: http://www.python.org/ Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 01-Sep-1999 Config: CC="cc `pthread-config --cflags`" \ LDFLAGS="`pthread-config --ldflags`" \ LIBS="`pthread-config --ldflags --libs`" \ ./configure \ --prefix=/tmp/python \ --with-thread Comment: The configure stuff of Python was a little bit strange (using CFLAGS or CPPFLAGS didn't work), but except for this Python worked fine. It even passed its "make test" and there also the test_thread. Seems to work fine with Pth. Package: gFTP Version: 2.0.5a URL: http://gftp.seul.org/ Pth: 1.2b6 [--enable-pthread --disable-shared --enable-syscall-soft] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 04-Oct-1999 Config: CC="cc `pthread-config --cflags`" \ LDFLAGS="`pthread-config --ldflags` `pthread-config --ldflags --libs`" \ ./configure \ --prefix=/tmp/gftp Comment: none Package: NakenChat Version: 1.10 URL: http://home.i1.net/~naken/nakenchat/ Pth: 1.2b7 [--enable-pthread] Platform: i686-pc-freebsd3.1 Tester: Ralf S. Engelschall Date: 19-Oct-1999 Config: cc `pthread-config --cflags` \ -onakenchat nakenchat.c \ `pthread-config --ldflags --libs` Comment: none