Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

early_binding pass #193

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

early_binding pass #193

wants to merge 1 commit into from

Conversation

jpauli
Copy link

@jpauli jpauli commented Oct 22, 2014

Talked to dmitry about it.

The goal here is to do the early_binding at compile time, for each op_array, when the class_table of each op_array is known.
This pass code binds the inherited class to its parent.

However, this seems to be really really close to what ZEND_DECLARE_INHERITED_CLASS_DELAYED does. It binds the inheritence tree, but at script loading. I didnt know about that when preparing my patch.

It however seems to bug as I get "class Serializable not found" when I run it against an app of mine :-p

@nikic
Copy link
Contributor

nikic commented Oct 22, 2014

Unless I missed something, this assumes that the looked up parent class is the same between all requests, which is not necessarily true.

@dstogov
Copy link
Collaborator

dstogov commented Oct 23, 2014

Fixed patch for PHP7, with benchmark results.

https://gist.github.com/dstogov/8d5c3224105f77ec4b84

However, I'm not sure if it makes sense to include it.

On Wed, Oct 22, 2014 at 11:33 PM, Nikita Popov notifications@github.com
wrote:

Unless I missed something, this assumes that the looked up parent class is
the same between all requests, which is not necessarily true.


Reply to this email directly or view it on GitHub
#193 (comment)
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants