Afternoon internals,

> Is there a roadmap somewhere that describes this, or any background
discussion of doing this within the 7.x series, rather than planning for
8.0?

We have no such sensible thing as a plan :)

The reason for the existence of PHP 7 (ng) is efficiency of the kind I
described, this is surely well understood by everyone.

What may not be well understood is that the job is nothing like complete.
Vigilant observers will have noticed that Dmitry does indeed have a JIT for
NG, which is very useful research, but it sucks so hard that we can't
deploy it.

The reason for this is that, in part, generated code doesn't look so much
different to code executed by the VM, though details differ considerably;
It needs to do at least the same job, it may need to do more (because of
guarding and other boring things).

Without knowing anything about generating instructions anyone can tell that
a complicated Zend, with all kinds of edge cases and inconsistencies
(specifically regarding ZE) is going to necessitate the generation of
complicated code, to accommodate those edge cases and inconsistencies.

A lot of effort is being put in to finding and resolving inconsistencies in
the engine such as this, a lot of effort has been expended and will be
expended on 7 in the pursuit of efficiency. A lot of this is of no
consequence to BC.

You can count the number of people putting in the majority of this effort
on your fingers ... erecting a road block in front of them in the name of
unobtainable BC is harmful to the apparent goals of the project at this
time.

The kinds of changes that must be delayed until 8.0 are surely going to be
proposed, and we will surely delay them by consensus.

> This is my main concern, also

I will update the RFC, if Dmitry doesn't, when voting is closed.

I will ensure the change is properly documented in the manual also.

> Ideally, this could lead to a revised policy

I think our policy has always been to consider each proposal on a
case-by-case basis. That's all I have done, and all I am suggesting others
do.

I know it's very strange to hear someone talking about "goals" ...

We can waste a bunch of time trying to define them, voting on them, and so
on ... or, we can look at what is going on, and what has gone on, and come
to sensible conclusions.

Cheers
Joe



On Mon, Jun 13, 2016 at 1:28 PM, Rowan Collins <rowan.coll...@gmail.com>
wrote:

> On 13/06/2016 10:35, Joe Watkins wrote:
>
>>     Backward compatibility is important. Also important is the long term
>> goals for PHP, or at least for this major version of PHP: The goal is to
>> make Zend so efficient that generating machine code from user code
>> becomes a deployable solution.
>>
>
> OK, that's an interesting bit of background, which might explain why
> Dmitry seemed in a hurry to get this in place. I was aware of the
> discussion of performance, but not the background "long-term goal". Is
> there a roadmap somewhere that describes this, or any background discussion
> of doing this within the 7.x series, rather than planning for 8.0?
>
>
>     I can be wrong, might be ... it doesn't really matter, the majority
>> has spoken. It is only my concern that the change is documented properly.
>>
>
> This is my main concern, also. The RFC is very brief, and the discussion
> period was artificially shortened, and I think the implications to the BC
> policy make this RFC more important than Dmitry assumed.
>
> Having a documented reason why a BC break was accepted in this case will
> help to set expectations in the future. Ideally, this could lead to a
> revised policy with BC guidelines that actually match the current reality
> of the project, which the existing RFC does not seem to do.
>
>
> Regards,
> --
> Rowan Collins
> [IMSoP]
>

Reply via email to