On Mon, Sep 18, 2023 at 8:01 AM Pierre Joye <pierre....@gmail.com> wrote:
> Great work! This is a massive jump for PHP. Thank you :) > > I don't have much concerns about the license etc as the ZE is already > under Zend the ZE license (never updated since Perforce acquired them, > tho'): > > https://github.com/php/php-src/blob/master/Zend/LICENSE > > I do really like the IR addition. This opens huge new opportunity, not > only for optimization and JIT but to move forward into bringing new > technology support to PHP (WASM f.e.). There are big challenges and I > am not sure yet it can be ever be fully possible to target WASM. > Creating a new back-end for IR is significantly simpler than for old PHP-JIT implementation. However, I'm not sure if this will work for WASM, because PHP-JIT calls a lot of functions from PHP itself. I'm not sure how this should work with WASM. I just didn't research in this area. > however, having the ability to do it with a subset of PHP, f.e. some > business logic classes etc., would already be amazing. I can't imagine > a php9 without taking this into account tbh. That would be kill php in > any way but that would definitively puts it in less competitive area > than others (JS, go, rust, ocaml f.e.), for another few years. > > I have a simple php function working (just a small go app to parse the > IR text output and convert it. But that's not remotely a POC :). Really? You already use the IR Framework? :) > I discussed with Dmitry and the idea would be to add a WASM target to > libIR (partial support or whatever is possible). > > This is the part I would like to see more discussions or feedback as > it will define what could become possible or not. A certain level of > similarity or compatibility could make other targets much easier. > > > The old JIT implementation is going to be kept for a while. > > I like the idea too. The sooner this work can be available as > experimental, the sooner it will get stable. > Yes. I hope it's already quite stable. It passes all the nightly CI tests, including Amp, Symfony, Laravel and Wordpress uit tests. But it definitely will cause problems. The sooner we start the more time we will have to release. And keeping the old version for a while, we have a plan B. Thanks. Dmitry.