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