Re: [PATCH] Some string changes/optimizations
| From: | Matt Wilmas | Date: | Tue, 06 May 2008 14:05:25 +0000 |
| Subject: | Re: [PATCH] Some string changes/optimizations | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-37497@lists.php.net to get a copy of this message | ||
Hi Felipe, all,
The patches have been updated to fix the failing nowdoc_015.phpt test.
http://realplain.com/php/string_optimizations.diff
http://realplain.com/php/string_optimizations_5_3.diff
The problem was that after removing the ST_START_NOWDOC stuff, the
NOWDOC_CHARS pattern wasn't matching on:
<<<'EOT'
SingleLineOfTextThatMatchesThe_LABEL_Pattern
EOT;
I updated NOWDOC_CHARS, I think simplifying it a bit and making it more like
HEREDOC_CHARS. (And this made zend_language_scanner.c ~5K smaller.) I
previously tried to change it, and it just hung PHP when scanning a nowdoc
(endless loop being generated somewhere, etc.), so I left it alone. Looking
into it more now, with the new pattern, re2c is messing up (endless loop)
with
<ST_NOWDOC>{NOWDOC_CHARS}*{NEWLINE}+{LABEL}";"?[\n\r]
And I had to change it to
<ST_NOWDOC>({NOWDOC_CHARS}+{NEWLINE}+|{NEWLINE}+){LABEL}";"?[\n\r]
Though the original should be equivalent... Well, hopefully it's all
working correctly now!
- Matt
----- Original Message -----
From: "Felipe Pena"
Sent: Monday, May 05, 2008
> [...]
> Hi Matt, the nowdoc_015.phpt fails in HEAD.
>
> --
> Regards,
> Felipe Pena.
>