nPth - The new GNU portable threads library

From: Werner Koch <wk-AT-gnupg.org> To: gnupg-announce-AT-gnupg.org Subject: nPth - The New GNU Portable Threads Library Date: Tue, 08 May 2012 12:39:49 +0200 Message-ID: <87zk9j2byi.fsf@vigenere.g10code.de> Cc: marcus.brinkmann-AT-rub.de Archive-link: Article, Thread

Hi! We are pleased to announce the first tarball release of the New GNU Portable Threads Library: nPth version 0.90. nPth is a non-preemptive threads implementation using an API very similar to the one known from GNU Pth. It has been designed as a replacement of GNU Pth for non-ancient operating systems. In contrast to GNU Pth is is based on the system's standard threads implementation. Thus nPth allows the use of libraries which are not compatible to GNU Pth. GNU Pth is often used to provide a co-routine based framework. GnuPG-2 makes heavy use of this concept for good audibility, general security concerns, and ease of implementation. However, GNU Pth has the drawback that ugly hacks are required to work with libraries which are not GNU Pth aware. The nPth tarball and its signature are available as ftp://ftp.gnupg.org/gcrypt/npth/npth-0.90.tar.bz2 ftp://ftp.gnupg.org/gcrypt/npth/npth-0.90.tar.bz2.sig and at all GnuPG mirrors. See the included README file and the npth.h header for documentation. Bug reports and requests for help should be send to the gnupg-devel mailing list at gnupg.org. nPth is available under the terms of the LGPLv3+ or the GPLv2+. The GIT repository is at git://git.gnupg.org/npth.git . The current development version of GnuPG (2.1) has already been migrated to nPth and thus the next beta release will require it. Obviously we expect to fix some portability problems before we can release 1.0. On common Linux and kFreeBSD systems and even on Android, nPth should build and work fine. Background: When porting GnuPG-2 to Windows in 2004, we had the need for a replacement of GNU Pth, which is not available for native Windows. We came up with an emulation based on the native Windows thread system. Experience since then showed that such an emulation is a solid way to provide a co-routine based framework. Given that thread implementations (in particular pthreads) are now in common use on all platforms, there is not must justification left for not using them: Without considering the GnuPG packages, Debian has only two packages requiring GNU Pth (zhcon and jabberd14 - the latter even seems not in wide use anymore). Many thanks to Ralf S. Engelschall for his excellent GNU PTH library, which served GnuPG very well for many years. Happy hacking, Marcus and Werner -- Die Gedanken sind frei. Ausnahmen regelt ein Bundesgesetz. _______________________________________________ Gnupg-announce mailing list Gnupg-announce@gnupg.org http://lists.gnupg.org/mailman/listinfo/gnupg-announce