On May 29, 2014, at 13:21, Adam Harvey wrote:
sort of Bison 3 compatibility in 5.5.
John, can you see a way — however hackish — to get Bison 3 support in
5.5 without changing those functions?
Thanks,
Adam
On 28 May 2014 08:06, Nikita Popov wrote:
I don't think it's applicable to PHP 5.5 in this form.
Agreed, but as Derick said, there's definitely an argument for someOn Wed, May 28, 2014 at 1:41 PM, Derick Rethans wrote:
right now, on the latest Ubuntu's with only bison 3 you can't actually
build it. Because of that, a patch like this should absolutely be
considered.
The patch (as proposed) changes the ABI for zendlex and zendparse. As suchOn Fri, 23 May 2014, Julien Pauli wrote:
That's a no-go for 5.5.
5.5 is stable, 1year old (at this email date), and we should not
change such a thing into this stable branch.
Right, but it's going to be supported for at least another year. AndThat's a no-go for 5.5.
5.5 is stable, 1year old (at this email date), and we should not
change such a thing into this stable branch.
right now, on the latest Ubuntu's with only bison 3 you can't actually
build it. Because of that, a patch like this should absolutely be
considered.
I don't think it's applicable to PHP 5.5 in this form.
sort of Bison 3 compatibility in 5.5.
John, can you see a way — however hackish — to get Bison 3 support in
5.5 without changing those functions?
Thanks,
Adam
If that sounds reasonable, I’ll go ahead and give that a try, and if it works, we can merge that implementation into 5.5 and 5.6, and then I can revert the really hacky bits in the 5.6 branch since they’re not necessary because we can change the ABI.
Two notes:
At the least, I need to update the 5.6 version of the PR to account for that zenderror is exported as phperror, and the definition in main/php.h is wrong. (I think; following the macros is a bit confusing.) I’ll take care of that later tonight.
I’d also suggest that perhaps in >= 5.6, those functions shouldn’t even be exported as part of the public API. In php-src, they’re basically treated as internal implementation details. zenderror and zendlex are only ever called directly from the parser, and zendparse is only ever called directly from the compile_(file|filename) functions in the scanner. (That doesn’t mean they aren’t called from external modules, but there’s a lot of setup and teardown you have to do besides, so it’d certainly be a quite advanced use. Does anyone know if those functions actually are used by pecl or other third-party modules?)
-John