   ____  _   _
  |  _ \| |_| |__
  | |_) | __| '_ \
  |  __/| |_| | | |                   ``Real hackers can write assembly 
  |_|    \__|_| |_|                     code in any language.''

  GNU Pth - The GNU Portable Threads

  HACKING
  =======

  HOW TO BE ALWAYS UP TO DATE
  ---------------------------

  Those who want to be always at the bleeding edge or even want to
  hack on the Pth sources can fetch the latest Pth source tree via
  Anonymous-CVS from a copy of the master source repository. This
  copy is updated in regular intervals from the authors original CVS
  repository and can be used for easily keeping local modifications in a
  checked out tree while the master version is updated over time.

  For this you need CVS 1.10 or later. If you still don't have CVS installed,
  grab it from http://www.cvshome.org/ and install it first. Then you can
  check out the Pth source tree via the following steps:

    | $ CVSROOT=:pserver:anoncvs@cvs.engelschall.com:/e/cvs
    | $ export CVSROOT
    | $ cvs login
    | (Logging in to anoncvs@cvs.engelschall.com)
    | CVS password:
      [use `anoncvs' for the password]
    | $ cvs -z3 checkout pth
    | cvs server: Updating pth
    | U pth/.configure
    | U pth/.cvsignore
    | U pth/.gdbinit
    | U pth/AUTHORS
    | U pth/COPYING
    | U pth/ChangeLog
    | U pth/INSTALL
    | U pth/Makefile.in
    | U pth/NEWS
    | :  :

  Then start hacking on your local changes. You cannot commit it to the
  repository, of course, because you've read-only access only. But you
  can let the changes stay around in your checkout tree and whenever
  changes occur in the master version (because of commits by the author)
  you can update your version from time to time via:

    | $ cd pth
    | $ cvs -z3 update
    | cvs server: Updating .
    | U HACKING
    |  :  :

  If you want to contribute your changes to the author, create a
  unified difference file as described below and send the generated
  pth.diff file to pth-users@gnu.org (to send it to the public) or
  bug-pth@gnu.org (to send it only to the author).

    | $ cd pth
    | $ cvs diff -u3 . >pth.diff

  Read the comprehensive CVS user manual (included in the CVS
  distrubtion as `doc/cvs.ps') for more details on how to work with CVS.

  OVERVIEW OF THE SOURCE TREE
  ---------------------------

  Here is a brief overview of the source tree.

  .gdbinit .............. GDB rc file for use with Pth
  .dmallocrc ............ DMalloc rc file for use with Pth

  AUTHORS ............... List of major package authors
  COPYING ............... Copying conditions (the LGPL)
  ChangeLog ............. The detailed list of every source change
  HACKING ............... This document
  HISTORY ............... List of released Pth versions
  INSTALL ............... Installation Instructions
  Makefile.in ........... Build procedure for a standard Make tool
  NEWS .................. The list of major changes between version
  PORTING ............... Instructions for porting Pth to new platforms
  README ................ The general package introduction text
  SUPPORT ............... Hints for user support
  TESTS ................. Results from tests with real-world applications
  THANKS ................ List of credits to people
  USERS ................. List of packages utilizing Pth

  acconfig.h ............ Autoconf header (the input for pth_acdef.h.in)
  acheader.m4 ........... Autoconf macros for use with autoheader 
  aclocal.m4 ............ Autoconf macros (for configure)
  config.guess .......... Autoconf platform guessing tool (part I)
  config.param .......... Autoconf command line parameter collections
  config.sub ............ Autoconf platform guessing tool (part II)
  configure ............. Autoconf script (pre-generated from configure.in)
  configure.in .......... Autoconf script source

  ltconfig .............. Libtool configuration script
  ltmain.sh ............. Libtool main template

  pth-config.1 .......... Pth config script manual page (pre-generated)
  pth-config.in ......... Pth config script input
  pth-config.pod ........ Pth config script manual page source
  pth.3 ................. Pth manual page (pre-generated)
  pth.pod ............... Pth manual page source

  pth_acdef.h.in ........ Autoconf header with definitions (generated)
  pth_acmac.h.in ........ Autoconf header with macros
  pth.h.in .............. Public header file source
  pth_p.h.in ............ Private header file source

  pth_attr.c ............ Pth module source: attribute objects
  pth_cancel.c .......... Pth module source: cancellation
  pth_clean.c ........... Pth module source: cleanup handler
  pth_compat.c .......... Pth module source: platform compatibility
  pth_data.c ............ Pth module source: thread local data
  pth_debug.c ........... Pth module source: debugging support
  pth_errno.c ........... Pth module source: errno handling
  pth_event.c ........... Pth module source: event objects
  pth_ext.c ............. Pth module source: extensional functionality
  pth_fork.c ............ Pth module source: fork support
  pth_high.c ............ Pth module source: high-level functions
  pth_lib.c ............. Pth module source: standard library functions
  pth_mctx.c ............ Pth module source: maschine context handling
  pth_msg.c ............. Pth module source: message ports
  pth_pqueue.c .......... Pth module source: priority queue data structure
  pth_ring.c ............ Pth module source: ring data structure
  pth_sched.c ........... Pth module source: scheduler
  pth_string.c .......... Pth module source: string functions
  pth_sync.c ............ Pth module source: synchronizations objects
  pth_syscall.c ......... Pth module source: hard system call support
  pth_tcb.c ............. Pth module source: thread control block
  pth_time.c ............ Pth module source: time handling
  pth_util.c ............ Pth module source: utility functions
  pth_vers.c ............ Pth module source: library version (generated)

  pthread-config.1 ...... Pthread API config script manual page (pre-generated)
  pthread-config.in ..... Pthread API config script input
  pthread-config.pod .... Pthread API config script manual page source
  pthread.3 ............. Pthread API manual page (pre-generated)
  pthread.pod ........... Pthread API manual page source
  pthread.c ............. Pthread API functions
  pthread.h.in .......... Pthread API public header source

  pthread.ps ............ Pthread API overview (from SMI)
  rse-pmt.ps ............ Article `Portable Multithreading' for pth_mctx.c

  shtool ................ Shtool script

  striptease.mk ......... Makefile for stripped source tree
  striptease.pl ......... Perl Script for stripping the source tree

  test_common.c ......... Test common functions
  test_common.h ......... Test common header
  test_httpd.c .......... Test module: Faked HTTP Daemon
  test_misc.c ........... Test module: Miscellaneous
  test_mp.c ............. Test module: Message Ports
  test_philo.c .......... Test module: Five Dining Philosophers
  test_pthread.c ........ Test module: Pthread API
  test_select.c ......... Test module: pth_select(3) handling
  test_sfio.c ........... Test module: AT&T Sfio support
  test_sig.c ............ Test module: Signal handling
  test_std.c ............ Test module: Standard Test

