| 59 |
|
|
| 60 |
10. A pathological pattern such as /(*ACCEPT)a/ was miscompiled, thinking that |
10. A pathological pattern such as /(*ACCEPT)a/ was miscompiled, thinking that |
| 61 |
the first byte in a match must be "a". |
the first byte in a match must be "a". |
| 62 |
|
|
| 63 |
|
11. Change 17 for 8.13 increased the recursion depth for patterns like |
| 64 |
|
/a(?:.)*?a/ drastically. I've improved things by remembering whether a |
| 65 |
|
pattern contains any instances of (*THEN). If it does not, the old |
| 66 |
|
optimizations are restored. It would be nice to do this on a per-group |
| 67 |
|
basis, but at the moment that is not feasible. |
| 68 |
|
|
| 69 |
|
|
| 70 |
Version 8.13 16-Aug-2011 |
Version 8.13 16-Aug-2011 |
| 164 |
tail recursion to cut down on stack usage. Unfortunately, now that there is |
tail recursion to cut down on stack usage. Unfortunately, now that there is |
| 165 |
the possibility of (*THEN) occurring in these branches, tail recursion is |
the possibility of (*THEN) occurring in these branches, tail recursion is |
| 166 |
no longer possible because the return has to be checked for (*THEN). These |
no longer possible because the return has to be checked for (*THEN). These |
| 167 |
two optimizations have therefore been removed. |
two optimizations have therefore been removed. [But see 8.20/11 above.] |
| 168 |
|
|
| 169 |
18. If a pattern containing \R was studied, it was assumed that \R always |
18. If a pattern containing \R was studied, it was assumed that \R always |
| 170 |
matched two bytes, thus causing the minimum subject length to be |
matched two bytes, thus causing the minimum subject length to be |