Mailing List Archive

nPth - The New GNU Portable Threads Library
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.