Hi Marcus, Johannes, and all,

First of all let me say that I have no conceptual problem with replacing
the scanner with re2c. If it's cleaner, performs better and a better
maintained piece of software (let's hope Marcus doesn't get run over)
then we can move to re2c.

There are a few important things to consider though:
- There is a huge PHP/MySQL community in the far east especially in
Japan. You may not hear as much from them because they mostly don't post
on our public lists but it's large. They very much depend on multibyte
support and it works well for them (I have talked to several people in
those communities). Shift-JIS is a matter of fact for those communities.
We can't just dump them in PHP 5.3.
- We need to make sure that we have a streams story that works and
existing functionality is supported by it (sounds like this is almost
complete so probably not high risk).
- We should make sure we can achieve compatibility including supporting
functionality like declare(...) which is used by some including
multibyte guys. I haven't heard of a reason why this couldn't be
possible with RE2C.

I think all the above is doable but we shouldn't ship without
accomplishing that 100% compatibility especially telling the non-Latin
world that we will stop supporting them.

So at the end of the day it all boils down to timing. I have been
expecting Johannes to cut a beta any day now (I realize Sun acquisition
somewhat postponed his schedule). PHP 5.3 is on a pretty good track to a
good & stable release cycle. I think re-engineering a core piece of the
engine at this point adds considerable risk and would definitely prolong
the release cycle.

So while I'm supportive of embracing RE2C if we get commitment to reach
that 100% compatibility including multibyte support, I don't quite
understand the sense of urgency and why we'd want to introduce this risk
so late in the development of PHP 5.3. This is a risk the release
manager shouldn't really be willing to take. Rewriting this multibyte
support will require time and interaction with the communities that are
currently using it to make sure that it meets their needs. It will not
be a trivial project.

We can definitely work towards RE2C in parallel and as Stas said the
engine hasn't really been changing very much recently to make this hard
(we finished our todos for 5.3). We could even branch off PHP 5.4 right
after RC1 for PHP 5.3 and therefore reduce the time where this patch
would need to be maintained separately (although I think it can already
be maintained in a branch).

Let's consider all the angles in addition to wanting to get the code in
the tree asap.
Andi


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to