/[pcre]/code/trunk/maint/README
ViewVC logotype

Diff of /code/trunk/maint/README

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 122 by ph10, Mon Mar 12 15:10:25 2007 UTC revision 155 by ph10, Tue Apr 24 13:36:11 2007 UTC
# Line 16  also contains some notes for maintainers Line 16  also contains some notes for maintainers
16  Files in the maint directory  Files in the maint directory
17  ----------------------------  ----------------------------
18    
19  Builducptable   A Perl script that creates the contents of the ucptable.h file  Builducptable    A Perl script that creates the contents of the ucptable.h file
20                  from two Unicode data files, which themselves are downloaded                   from two Unicode data files, which themselves are downloaded
21                  from the Unicode web site. Run this script in the "maint"                   from the Unicode web site. Run this script in the "maint"
22                  directory.                   directory.
23    
24  Tech.Notes      Some notes about the internals of the PCRE code.  ManyConfigTests  A shell script that runs "configure, make, test" a number of
25                     times with different configuration settings.
26  Unicode.tables  The files in this directory, Scripts.txt and UnicodeData.txt,  
27                  were downloaded from the Unicode web site. They contain  Unicode.tables   The files in this directory, Scripts.txt and UnicodeData.txt,
28                  information about Unicode characters and scripts.                   were downloaded from the Unicode web site. They contain
29                     information about Unicode characters and scripts.
30  ucptest.c       A short C program for testing the Unicode property functions in  
31                  pcre_ucp_searchfuncs.c, mainly useful after rebuilding the  ucptest.c        A short C program for testing the Unicode property functions
32                  Unicode property table. Compile and run this in the "maint"                   in pcre_ucp_searchfuncs.c, mainly useful after rebuilding the
33                  directory.                   Unicode property table. Compile and run this in the "maint"
34                     directory.
35  ucptestdata     A directory containing two files, testinput1 and testoutput1,  
36                  to use in conjunction with the ucptest program.  ucptestdata      A directory containing two files, testinput1 and testoutput1,
37                     to use in conjunction with the ucptest program.
38  utf8.c          A short, freestanding C program for converting a Unicode code  
39                  point into a sequence of bytes in the UTF-8 encoding, and vice  utf8.c           A short, freestanding C program for converting a Unicode code
40                  versa. If its argument is a hex number such as 0x1234, it                   point into a sequence of bytes in the UTF-8 encoding, and vice
41                  outputs a list of the equivalent UTF-8 bytes. If its argument                   versa. If its argument is a hex number such as 0x1234, it
42                  is sequence of concatenated UTF-8 bytes (e.g. e188b4) it treats                   outputs a list of the equivalent UTF-8 bytes. If its argument
43                  them as a UTF-8 character and outputs the equivalent code point                   is sequence of concatenated UTF-8 bytes (e.g. e188b4) it
44                  in hex.                   treats them as a UTF-8 character and outputs the equivalent
45                     code point in hex.
46    
47    
48  Updating to a new Unicode release  Updating to a new Unicode release
# Line 60  Preparing for a PCRE release Line 61  Preparing for a PCRE release
61  This section contains a checklist of things that I consult before building a  This section contains a checklist of things that I consult before building a
62  distribution for a new release.  distribution for a new release.
63    
64  . Ensure that the version number and version date are correct in configure.ac.  . Ensure that the version number and version date are correct in configure.ac,
65      ChangeLog, and NEWS.
66    
67  . Run ./autogen.sh to ensure everything is up-to-date.  . Run ./autogen.sh to ensure everything is up-to-date.
68    
69  . Compile and test with many different config options, and combinations of  . Compile and test with many different config options, and combinations of
70    options:    options. The maint/ManyConfigTests script now encapsulates this testing.
   
    * Totally standard ./configure with no options  
    * --disable-shared  
    * --disable-static  
    * --enable-utf8  
    * --enable-unicode-properties  
    * --disable-cpp  
    * --with-link-size=3 (occasionally check with 4 as well)  
    * --disable-stack-for-recursion  
    * --enable-newline-is-any  
   
   I've never automated this, but perhaps I should. The newline testing could be  
   enhanced; at present, some tests fail unless plain LF is a newline.  
71    
72  . Run perltest.pl on the test data for tests 1 and 4. The output should match  . Run perltest.pl on the test data for tests 1 and 4. The output should match
73    the PCRE test output, apart from the version identification at the top. The    the PCRE test output, apart from the version identification at the top. The
74    other tests are not Perl-compatible (they use various special PCRE options).    other tests are not Perl-compatible (they use various special PCRE options).
75    
 . Test on a number of different operating systems. In particular, at the moment  
   I can test on Solaris, using Sun's cc compiler (as a change from gcc). Adding  
   -xarch=v9 to the cc options does a 64-bit test, but it also needs -S 64 for  
   pcretest to increase the stack size for test 2. I also test on FreeBSD and  
   Linux (where I develop).  
   
76  . Test with valgrind by running "RunTest valgrind". There is also "RunGrepTest  . Test with valgrind by running "RunTest valgrind". There is also "RunGrepTest
77    valgrind", though that takes quite a long time.    valgrind", though that takes quite a long time.
78    
79  . It can also useful to test with Electric Fence, though the fact that it  . It may also useful to test with Electric Fence, though the fact that it
80    grumbles for missing free() calls can be a nuisance. (A missing free() in    grumbles for missing free() calls can be a nuisance. (A missing free() in
81    pcretest is hardly a big problem.) To build with EF, use:    pcretest is hardly a big problem.) To build with EF, use:
82    
# Line 107  distribution for a new release. Line 90  distribution for a new release.
90    because there have been problems with lookbehinds that looked too far.    because there have been problems with lookbehinds that looked too far.
91    
92  . Test with the emulated memmove() function by undefining HAVE_MEMMOVE and  . Test with the emulated memmove() function by undefining HAVE_MEMMOVE and
93    HAVE_BCOPY in config.h.    HAVE_BCOPY in config.h. You may see a number of "pcre_memmove defined but not
94      used" warnings for the modules in which there is no call to memmove(). These
95      can be ignored.
96    
97  . Documentation: check AUTHORS, COPYING, ChangeLog (check date), INSTALL,  . Documentation: check AUTHORS, COPYING, ChangeLog (check date), INSTALL,
98    LICENCE, NEWS (check date), NON-UNIX-USE, and README. Many of these won't    LICENCE, NEWS (check date), NON-UNIX-USE, and README. Many of these won't
# Line 116  distribution for a new release. Line 101  distribution for a new release.
101  . Man pages: Check all man pages for \ not followed by e or f or " because  . Man pages: Check all man pages for \ not followed by e or f or " because
102    that indicates a markup error.    that indicates a markup error.
103    
104    . When the release is built, test it on a number of different operating
105      systems if possible, and using different compilers as well. For example,
106      on Solaris it is helpful to test using Sun's cc compiler as a change from
107      gcc. Adding -xarch=v9 to the cc options does a 64-bit test, but it also
108      needs -S 64 for pcretest to increase the stack size for test 2.
109    
110    
111  Making a PCRE release  Making a PCRE release
112  ---------------------  ---------------------
113    
114  Run PrepareRelease and commit the files that it changes (by removing trailing  Run PrepareRelease and commit the files that it changes (by removing trailing
115  spaces). Then run "make dist" to create the tarballs and the zipball.  spaces). Then run "make distcheck" to create the tarballs and the zipball.
116    
117  Don't forget to update Freshmeat when the new release is out, and to tell  Don't forget to update Freshmeat when the new release is out, and to tell
118  webmaster@pcre.org and the mailing list.  webmaster@pcre.org and the mailing list.
# Line 263  others are relatively new. Line 254  others are relatively new.
254    
255  . Someone suggested --disable-callout to save code space when callouts are  . Someone suggested --disable-callout to save code space when callouts are
256    never wanted. This seems rather marginal.    never wanted. This seems rather marginal.
   
 . Automate some of the testing before release into a script that compiles with  
   different options and runs the tests in each case.  
257    
258  . How about distributing a fixed pcre_chartables.c file and abandoning the  . Work needs doing so that the pcregrep tests work better with different
259    on-the-fly generation using dftables. This will make cross-compiling easier,    linebreak settings. Currently, some tests don't work when the input files
260    and in any case, locales are going out of fashion.    do not have \n line endings.
261    
262    . If the fr_FR locale isn't available for testing, try "french" instead,
263      because this may be available on Windows. It means modifying the test data,
264      however.
265    
266  Philip Hazel  Philip Hazel
267  Email local part: ph10  Email local part: ph10
268  Email domain: cam.ac.uk  Email domain: cam.ac.uk
269  Last updated: 12 March 2007  Last updated: 24 April 2007

Legend:
Removed from v.122  
changed lines
  Added in v.155

  ViewVC Help
Powered by ViewVC 1.1.5