OK, thanks for the answer. My PR is up now, with a fixme comment for the GOTO and SWITCH VMs. I'm still not sure how to make them work.
https://github.com/php/php-src/pull/7642 -- Tim Starling On 10/11/21 8:10 pm, Dmitry Stogov wrote: > I prefer to keep GOTO and SWITCH VMs. It's easy to drop something, > but it's going to be much more complex to reimplement it again. > > Note that HYBRID VM (based on CALL and GOTO VMs) was introduced only > in PHP-7.2, because GOTO was already implemented a long time ago. In > the future, it's possible to extend HYBRID VM, to make it work with > GCC-incompatible compilers through SWITCH. We might also like to > move from direct-threaded to indirect-threaded dispatch. > > Thanks. Dmitry. > > On Wed, Nov 10, 2021 at 11:35 AM Nikita Popov <nikita....@gmail.com > <mailto:nikita....@gmail.com>> wrote: > > On Wed, Nov 10, 2021 at 8:13 AM Tim Starling > <tstarl...@wikimedia.org <mailto:tstarl...@wikimedia.org>> > wrote: > > > What are VM kinds for? Are they just a prototyping tool to allow > > different implementation strategies to be benchmarked? Or are they > > permanent? Does anyone use them? > > > > I ask because I'm working on a VM bug, and non-default VM > kinds make > > already complex code even more complex and harder to edit. > > > > -- Tim Starling > > > > I don't think anyone uses them, and the GOTO/SWITCH VMs receive > little > testing in practice (we don't use them in CI), and I believe > they're not > supported by the JIT either. Personally, I would be fine with simply > dropping them, as they do add additional maintenance burden > without any > apparent benefit. Maybe Dmitry has some thoughts on this. > > Regards, > Nikita >