1   ____  _   _
2  |  _ \| |_| |__
3  | |_) | __| '_ \
4  |  __/| |_| | | |                   ``Real hackers can write assembly
5  |_|    \__|_| |_|                     code in any language.''
6
7  GNU Pth - The GNU Portable Threads
8
9  HACKING
10  =======
11
12  HOW TO BE ALWAYS UP TO DATE
13  ---------------------------
14
15  Those who want to be always at the bleeding edge or even want to
16  hack on the Pth sources can browse the latest Pth source tree on
17  http://cvs.ossp.org/pkg/lib/pth/ or retrieve these sources via
18  Anonymous-CVS from the OSSP master repository.
19
20  For this you need CVS 1.10 or later. If you still don't have CVS installed,
21  grab it from http://www.cvshome.org/ and install it first. Then you can
22  check out the Pth source tree via the following steps:
23
24    | $ CVSROOT=:pserver:anonymous@cvs.ossp.org:/e/ossp/cvs
25    | $ export CVSROOT
26    | $ cvs login
27    | (Logging in to anonymous@cvs.ossp.org)
28    | CVS password:
29      [use an empty password by just pressing RETURN]
30    | $ cvs -z3 checkout pth
31    | cvs server: Updating pth
32    | U pth/.configure
33    | U pth/.cvsignore
34    | U pth/.gdbinit
35    | U pth/AUTHORS
36    | U pth/COPYING
37    | U pth/ChangeLog
38    | U pth/INSTALL
39    | U pth/Makefile.in
40    | U pth/NEWS
41    | :  :
42
43  Then start hacking on your local changes. You cannot commit it to the
44  repository, of course, because you've read-only access only. But you
45  can let the changes stay around in your checkout tree and whenever
46  changes occur in the master version (because of commits by the author)
47  you can update your version from time to time via:
48
49    | $ cd pth
50    | $ cvs -z3 update
51    | cvs server: Updating .
52    | U HACKING
53    |  :  :
54
55  If you want to contribute your changes to the author, create a
56  unified difference file as described below and send the generated
57  pth.diff file to pth-users@gnu.org (to send it to the public) or
58  bug-pth@gnu.org (to send it only to the author).
59
60    | $ cd pth
61    | $ cvs diff -u3 . >pth.diff
62
63  Read the comprehensive CVS user manual (included in the CVS
64  distrubtion as `doc/cvs.ps') for more details on how to work with CVS.
65
66  OVERVIEW OF THE SOURCE TREE
67  ---------------------------
68
69  Here is a brief overview of the source tree.
70
71  .gdbinit .............. GDB rc file for use with Pth
72  .dmallocrc ............ DMalloc rc file for use with Pth
73
74  AUTHORS ............... List of major package authors
75  COPYING ............... Copying conditions (the LGPL)
76  ChangeLog ............. The detailed list of every source change
77  HACKING ............... This document
78  HISTORY ............... List of released Pth versions
79  INSTALL ............... Installation Instructions
80  Makefile.in ........... Build procedure for a standard Make tool
81  NEWS .................. The list of major changes between version
82  PORTING ............... Instructions for porting Pth to new platforms
83  README ................ The general package introduction text
84  SUPPORT ............... Hints for user support
85  TESTS ................. Results from tests with real-world applications
86  THANKS ................ List of credits to people
87  USERS ................. List of packages utilizing Pth
88
89  acconfig.h ............ Autoconf header (the input for pth_acdef.h.in)
90  acheader.m4 ........... Autoconf macros for use with autoheader
91  aclocal.m4 ............ Autoconf macros (for configure)
92  config.guess .......... Autoconf platform guessing tool (part I)
93  config.param .......... Autoconf command line parameter collections
94  config.sub ............ Autoconf platform guessing tool (part II)
95  configure ............. Autoconf script (pre-generated from configure.ac)
96  configure.ac .......... Autoconf script source
97
98  ltconfig .............. Libtool configuration script
99  ltmain.sh ............. Libtool main template
100
101  pth-config.1 .......... Pth config script manual page (pre-generated)
102  pth-config.in ......... Pth config script input
103  pth-config.pod ........ Pth config script manual page source
104  pth.3 ................. Pth manual page (pre-generated)
105  pth.pod ............... Pth manual page source
106
107  pth_acdef.h.in ........ Autoconf header with definitions (generated)
108  pth_acmac.h.in ........ Autoconf header with macros
109  pth.h.in .............. Public header file source
110  pth_p.h.in ............ Private header file source
111
112  pth_attr.c ............ Pth module source: attribute objects
113  pth_cancel.c .......... Pth module source: cancellation
114  pth_clean.c ........... Pth module source: cleanup handler
115  pth_compat.c .......... Pth module source: platform compatibility
116  pth_data.c ............ Pth module source: thread local data
117  pth_debug.c ........... Pth module source: debugging support
118  pth_errno.c ........... Pth module source: errno handling
119  pth_event.c ........... Pth module source: event objects
120  pth_ext.c ............. Pth module source: extensional functionality
121  pth_fork.c ............ Pth module source: fork support
122  pth_high.c ............ Pth module source: high-level functions
123  pth_lib.c ............. Pth module source: standard library functions
124  pth_mctx.c ............ Pth module source: maschine context handling
125  pth_msg.c ............. Pth module source: message ports
126  pth_pqueue.c .......... Pth module source: priority queue data structure
127  pth_ring.c ............ Pth module source: ring data structure
128  pth_sched.c ........... Pth module source: scheduler
129  pth_string.c .......... Pth module source: string functions
130  pth_sync.c ............ Pth module source: synchronizations objects
131  pth_syscall.c ......... Pth module source: hard system call support
132  pth_tcb.c ............. Pth module source: thread control block
133  pth_time.c ............ Pth module source: time handling
134  pth_util.c ............ Pth module source: utility functions
135  pth_vers.c ............ Pth module source: library version (generated)
136
137  pthread-config.1 ...... Pthread API config script manual page (pre-generated)
138  pthread-config.in ..... Pthread API config script input
139  pthread-config.pod .... Pthread API config script manual page source
140  pthread.3 ............. Pthread API manual page (pre-generated)
141  pthread.pod ........... Pthread API manual page source
142  pthread.c ............. Pthread API functions
143  pthread.h.in .......... Pthread API public header source
144
145  pthread.ps ............ Pthread API overview (from SMI)
146  rse-pmt.ps ............ Article `Portable Multithreading' for pth_mctx.c
147
148  shtool ................ Shtool script
149
150  striptease.mk ......... Makefile for stripped source tree
151  striptease.pl ......... Perl Script for stripping the source tree
152
153  test_common.c ......... Test common functions
154  test_common.h ......... Test common header
155  test_httpd.c .......... Test module: Faked HTTP Daemon
156  test_misc.c ........... Test module: Miscellaneous
157  test_mp.c ............. Test module: Message Ports
158  test_philo.c .......... Test module: Five Dining Philosophers
159  test_pthread.c ........ Test module: Pthread API
160  test_select.c ......... Test module: pth_select(3) handling
161  test_sfio.c ........... Test module: AT&T Sfio support
162  test_sig.c ............ Test module: Signal handling
163  test_std.c ............ Test module: Standard Test
164
165