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

Diff of /code/trunk/ChangeLog

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

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

Legend:
Removed from v.17  
changed lines
  Added in v.31

  ViewVC Help
Powered by ViewVC 1.1.5