Adding the generated files for GOTO/SWITCH VM to CVS

php.internals

Sebastian Bergmann

21 years ago
It would be great (from a usability point) to add the generated files for all three (CALL, GOTO, SWITCH) VM models to CVS as zend_vm_opcodes_call.h zend_vm_execute_call.h zend_vm_opcodes_goto.h zend_vm_execute_goto.h zend_vm_opcodes_switch.h zend_vm_execute_switch.h and have the --with-zend-vm configure parameter choose the right pair. This way it will be possible to build GOTO and SWITCH without a working PHP interpreter available. It would also be consistent with the "have all generated files in CVS" rule. To make things easier with this new setup the zend_vm_gen.php script should be changed that it creates the above listed files by default.
-- Sebastian Bergmann http://www.sebastian-bergmann.de/ GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69

Jani Taskinen

21 years ago
Here's a patch to get the multiple versions: (totally untested!) http://www.php.net/~jani/patches/zend_multi_vm.patch I didn't want to change the generator that much, so if you want to generate all, just run it 3 times. Perhaps this could be a buildconf thing? --Jani On Fri, 17 Jun 2005, Sebastian Bergmann wrote:
> It would be great (from a usability point) to add the generated files > for all three (CALL, GOTO, SWITCH) VM models to CVS as > > zend_vm_opcodes_call.h > zend_vm_execute_call.h > zend_vm_opcodes_goto.h > zend_vm_execute_goto.h > zend_vm_opcodes_switch.h > zend_vm_execute_switch.h > > and have the --with-zend-vm configure parameter choose the right pair. > > This way it will be possible to build GOTO and SWITCH without a working > PHP interpreter available. It would also be consistent with the "have > all generated files in CVS" rule. > > To make things easier with this new setup the zend_vm_gen.php script > should be changed that it creates the above listed files by default. > >
-- Donate @ http://pecl.php.net/wishlist.php/sniper

Dmitry Stogov

21 years ago
Hi Jani, You shouldn't patch zend_vm_gen.php. The option --without-old-executor is reverted to --with-old-executor. So people will be able to generate old executor too. Other part probably should work, but as I said, I don't like generated files in CVS (however we can generate them for release). Thanks. Dmitry.

Jani Taskinen

21 years ago
Ok, I'll redo the patch. hangon.. :) --Jani On Fri, 17 Jun 2005, Dmitry Stogov wrote:
> Hi Jani, > > You shouldn't patch zend_vm_gen.php. > The option --without-old-executor is reverted to --with-old-executor. > So people will be able to generate old executor too. > > Other part probably should work, but as I said, I don't like generated files > in CVS (however we can generate them for release). > > Thanks. Dmitry. > >> -----Original Message----- >> From: Jani Taskinen [mailto:sniper@iki.fi] >> Sent: Friday, June 17, 2005 2:17 PM >> To: Sebastian Bergmann >> Cc: internals@lists.php.net >> Subject: Re: [PHP-DEV] Adding the generated files for >> GOTO/SWITCH VM to CVS >> >> >> >> Here's a patch to get the multiple versions: >> (totally untested!) >> >> http://www.php.net/~jani/patches/zend_multi_vm.patch >> >> I didn't want to change the generator that much, so >> if you want to generate all, just run it 3 times. >> Perhaps this could be a buildconf thing? >> >> --Jani >> >> On Fri, 17 Jun 2005, Sebastian Bergmann wrote: >> >>> It would be great (from a usability point) to add the >> generated files >>> for all three (CALL, GOTO, SWITCH) VM models to CVS as >>> >>> zend_vm_opcodes_call.h >>> zend_vm_execute_call.h >>> zend_vm_opcodes_goto.h >>> zend_vm_execute_goto.h >>> zend_vm_opcodes_switch.h >>> zend_vm_execute_switch.h >>> >>> and have the --with-zend-vm configure parameter choose the >> right pair. >>> >>> This way it will be possible to build GOTO and SWITCH without a >>> working PHP interpreter available. It would also be consistent with >>> the "have all generated files in CVS" rule. >>> >>> To make things easier with this new setup the >> zend_vm_gen.php script >>> should be changed that it creates the above listed files by default. >>> >>> >> >> -- >> Donate @ http://pecl.php.net/wishlist.php/sniper >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> > >
-- Donate @ http://pecl.php.net/wishlist.php/sniper

Jani Taskinen

21 years ago
New version now @ http://www.php.net/~jani/patches/zend_multi_vm.patch --Jani On Fri, 17 Jun 2005, Jani Taskinen wrote:
> > Ok, I'll redo the patch. hangon.. :) > > --Jani > > On Fri, 17 Jun 2005, Dmitry Stogov wrote: > >> Hi Jani, >> >> You shouldn't patch zend_vm_gen.php. >> The option --without-old-executor is reverted to --with-old-executor. >> So people will be able to generate old executor too. >> >> Other part probably should work, but as I said, I don't like generated files >> in CVS (however we can generate them for release). >> >> Thanks. Dmitry. >> >>> -----Original Message----- >>> From: Jani Taskinen [mailto:sniper@iki.fi] >>> Sent: Friday, June 17, 2005 2:17 PM >>> To: Sebastian Bergmann >>> Cc: internals@lists.php.net >>> Subject: Re: [PHP-DEV] Adding the generated files for >>> GOTO/SWITCH VM to CVS >>> >>> >>> >>> Here's a patch to get the multiple versions: >>> (totally untested!) >>> >>> http://www.php.net/~jani/patches/zend_multi_vm.patch >>> >>> I didn't want to change the generator that much, so >>> if you want to generate all, just run it 3 times. >>> Perhaps this could be a buildconf thing? >>> >>> --Jani >>> >>> On Fri, 17 Jun 2005, Sebastian Bergmann wrote: >>> >>>> It would be great (from a usability point) to add the >>> generated files >>>> for all three (CALL, GOTO, SWITCH) VM models to CVS as >>>> >>>> zend_vm_opcodes_call.h >>>> zend_vm_execute_call.h >>>> zend_vm_opcodes_goto.h >>>> zend_vm_execute_goto.h >>>> zend_vm_opcodes_switch.h >>>> zend_vm_execute_switch.h >>>> >>>> and have the --with-zend-vm configure parameter choose the >>> right pair. >>>> >>>> This way it will be possible to build GOTO and SWITCH without a >>>> working PHP interpreter available. It would also be consistent with >>>> the "have all generated files in CVS" rule. >>>> >>>> To make things easier with this new setup the >>> zend_vm_gen.php script >>>> should be changed that it creates the above listed files by default. >>>> >>>> >>> >>> -- >>> Donate @ http://pecl.php.net/wishlist.php/sniper >>> >>> -- >>> PHP Internals - PHP Runtime Development Mailing List >>> To unsubscribe, visit: http://www.php.net/unsub.php >>> >>> >> >> > >
-- Donate @ http://pecl.php.net/wishlist.php/sniper

Dmitry Stogov

21 years ago
This should work, but don't commit it right now. Thanks. Dmitry.

Dmitry Stogov

21 years ago
Hi Sebastian, I don't like generated files in CVS at all. Having several copies can be a reason of lot of mistakes. Right now you are able to make call-threaded PHP, then regenerate executor and build another one. I think it is possible to automat this process with PHP building system. Old version of specialiser was implemented in C preprocessor and didn't require generation at all. But final executor was hard for debug. Thanks. Dmitry.

Jani Taskinen

21 years ago
They have to be in CVS, otherwise there is the small but annoying chicken'n'egg problem..you might not have PHP installed to begin with. :) --Jani On Fri, 17 Jun 2005, Dmitry Stogov wrote:
> Hi Sebastian, > > I don't like generated files in CVS at all. > Having several copies can be a reason of lot of mistakes. > > Right now you are able to make call-threaded PHP, then regenerate executor > and build another one. > I think it is possible to automat this process with PHP building system. > > Old version of specialiser was implemented in C preprocessor and didn't > require generation at all. > But final executor was hard for debug. > > Thanks. Dmitry. > >> -----Original Message----- >> From: news [mailto:news@sea.gmane.org] On Behalf Of Sebastian Bergmann >> Sent: Friday, June 17, 2005 2:06 PM >> To: internals@lists.php.net >> Subject: [PHP-DEV] Adding the generated files for GOTO/SWITCH >> VM to CVS >> >> >> It would be great (from a usability point) to add the >> generated files for all three (CALL, GOTO, SWITCH) VM models >> to CVS as >> >> zend_vm_opcodes_call.h >> zend_vm_execute_call.h >> zend_vm_opcodes_goto.h >> zend_vm_execute_goto.h >> zend_vm_opcodes_switch.h >> zend_vm_execute_switch.h >> >> and have the --with-zend-vm configure parameter choose the >> right pair. >> >> This way it will be possible to build GOTO and SWITCH >> without a working PHP interpreter available. It would also >> be consistent with the "have all generated files in CVS" rule. >> >> To make things easier with this new setup the >> zend_vm_gen.php script should be changed that it creates the >> above listed files by default. >> >> -- >> Sebastian Bergmann >> http://www.sebastian-bergmann.de/ >> GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 >> C514 B85B 5D69 >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> > >
-- Donate @ http://pecl.php.net/wishlist.php/sniper

Dmitry Stogov

21 years ago
Hi Jani, I don't see chicken&egg problem. Look into my idea (of course it requred some work). Makefile ------------ stage1/php: ... $(BUILD_CLI) -DSTAGE1 zend_vm_execute_goto.h: stage1/php (cd Zend ; stage1/php zend_vm_gen.php --with-vm-kind=GOTO ; mv zend_vm_execute.h zend_vm_execute_goto.h" sapi/cli/php: ... zend_vm_execute_call.h zend_vm_execute_goto.h zend_vm_execute_switch.h $(BUILD_CLI) ---- Thanks. Dmitry.