/[pcre]/code/trunk/ChangeLog
ViewVC logotype

Diff of /code/trunk/ChangeLog

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

revision 19 by nigel, Sat Feb 24 21:38:33 2007 UTC revision 35 by nigel, Sat Feb 24 21:39:05 2007 UTC
# Line 2  ChangeLog for PCRE Line 2  ChangeLog for PCRE
2  ------------------  ------------------
3    
4    
5    Version 2.06 09-Jun-99
6    ----------------------
7    
8    1. Change pcretest's output for amount of store used to show just the code
9    space, because the remainder (the data block) varies in size between 32-bit and
10    64-bit systems.
11    
12    2. Added an extra argument to pcre_exec() to supply an offset in the subject to
13    start matching at. This allows lookbehinds to work when searching for multiple
14    occurrences in a string.
15    
16    3. Added additional options to pcretest for testing multiple occurrences:
17    
18       /+   outputs the rest of the string that follows a match
19       /g   loops for multiple occurrences, using the new startoffset argument
20       /G   loops for multiple occurrences by passing an incremented pointer
21    
22    4. PCRE wasn't doing the "first character" optimization for patterns starting
23    with \b or \B, though it was doing it for other lookbehind assertions. That is,
24    it wasn't noticing that a match for a pattern such as /\bxyz/ has to start with
25    the letter 'x'. On long subject strings, this gives a significant speed-up.
26    
27    
28    Version 2.05 21-Apr-99
29    ----------------------
30    
31    1. Changed the type of magic_number from int to long int so that it works
32    properly on 16-bit systems.
33    
34    2. Fixed a bug which caused patterns starting with .* not to work correctly
35    when the subject string contained newline characters. PCRE was assuming
36    anchoring for such patterns in all cases, which is not correct because .* will
37    not pass a newline unless PCRE_DOTALL is set. It now assumes anchoring only if
38    DOTALL is set at top level; otherwise it knows that patterns starting with .*
39    must be retried after every newline in the subject.
40    
41    
42    Version 2.04 18-Feb-99
43    ----------------------
44    
45    1. For parenthesized subpatterns with repeats whose minimum was zero, the
46    computation of the store needed to hold the pattern was incorrect (too large).
47    If such patterns were nested a few deep, this could multiply and become a real
48    problem.
49    
50    2. Added /M option to pcretest to show the memory requirement of a specific
51    pattern. Made -m a synonym of -s (which does this globally) for compatibility.
52    
53    3. Subpatterns of the form (regex){n,m} (i.e. limited maximum) were being
54    compiled in such a way that the backtracking after subsequent failure was
55    pessimal. Something like (a){0,3} was compiled as (a)?(a)?(a)? instead of
56    ((a)((a)(a)?)?)? with disastrous performance if the maximum was of any size.
57    
58    
59    Version 2.03 02-Feb-99
60    ----------------------
61    
62    1. Fixed typo and small mistake in man page.
63    
64    2. Added 4th condition (GPL supersedes if conflict) and created separate
65    LICENCE file containing the conditions.
66    
67    3. Updated pcretest so that patterns such as /abc\/def/ work like they do in
68    Perl, that is the internal \ allows the delimiter to be included in the
69    pattern. Locked out the use of \ as a delimiter. If \ immediately follows
70    the final delimiter, add \ to the end of the pattern (to test the error).
71    
72    4. Added the convenience functions for extracting substrings after a successful
73    match. Updated pcretest to make it able to test these functions.
74    
75    
76    Version 2.02 14-Jan-99
77    ----------------------
78    
79    1. Initialized the working variables associated with each extraction so that
80    their saving and restoring doesn't refer to uninitialized store.
81    
82    2. Put dummy code into study.c in order to trick the optimizer of the IBM C
83    compiler for OS/2 into generating correct code. Apparently IBM isn't going to
84    fix the problem.
85    
86    3. Pcretest: the timing code wasn't using LOOPREPEAT for timing execution
87    calls, and wasn't printing the correct value for compiling calls. Increased the
88    default value of LOOPREPEAT, and the number of significant figures in the
89    times.
90    
91    4. Changed "/bin/rm" in the Makefile to "-rm" so it works on Windows NT.
92    
93    5. Renamed "deftables" as "dftables" to get it down to 8 characters, to avoid
94    a building problem on Windows NT with a FAT file system.
95    
96    
97    Version 2.01 21-Oct-98
98    ----------------------
99    
100    1. Changed the API for pcre_compile() to allow for the provision of a pointer
101    to character tables built by pcre_maketables() in the current locale. If NULL
102    is passed, the default tables are used.
103    
104    
105    Version 2.00 24-Sep-98
106    ----------------------
107    
108    1. Since the (>?) facility is in Perl 5.005, don't require PCRE_EXTRA to enable
109    it any more.
110    
111    2. Allow quantification of (?>) groups, and make it work correctly.
112    
113    3. The first character computation wasn't working for (?>) groups.
114    
115    4. Correct the implementation of \Z (it is permitted to match on the \n at the
116    end of the subject) and add 5.005's \z, which really does match only at the
117    very end of the subject.
118    
119    5. Remove the \X "cut" facility; Perl doesn't have it, and (?> is neater.
120    
121    6. Remove the ability to specify CASELESS, MULTILINE, DOTALL, and
122    DOLLAR_END_ONLY at runtime, to make it possible to implement the Perl 5.005
123    localized options. All options to pcre_study() were also removed.
124    
125    7. Add other new features from 5.005:
126    
127       $(?<=           positive lookbehind
128       $(?<!           negative lookbehind
129       (?imsx-imsx)    added the unsetting capability
130                       such a setting is global if at outer level; local otherwise
131       (?imsx-imsx:)   non-capturing groups with option setting
132       (?(cond)re|re)  conditional pattern matching
133    
134       A backreference to itself in a repeated group matches the previous
135       captured string.
136    
137    8. General tidying up of studying (both automatic and via "study")
138    consequential on the addition of new assertions.
139    
140    9. As in 5.005, unlimited repeated groups that could match an empty substring
141    are no longer faulted at compile time. Instead, the loop is forcibly broken at
142    runtime if any iteration does actually match an empty substring.
143    
144    10. Include the RunTest script in the distribution.
145    
146    11. Added tests from the Perl 5.005_02 distribution. This showed up a few
147    discrepancies, some of which were old and were also with respect to 5.004. They
148    have now been fixed.
149    
150    
151    Version 1.09 28-Apr-98
152    ----------------------
153    
154    1. A negated single character class followed by a quantifier with a minimum
155    value of one (e.g.  [^x]{1,6}  ) was not compiled correctly. This could lead to
156    program crashes, or just wrong answers. This did not apply to negated classes
157    containing more than one character, or to minima other than one.
158    
159    
160  Version 1.08 27-Mar-98  Version 1.08 27-Mar-98
161  ----------------------  ----------------------
162    

Legend:
Removed from v.19  
changed lines
  Added in v.35

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12