[Info-vax] New PHP kits available (and a programming question)
Mark Berryman
mark at theberrymans.com
Mon Jul 10 13:47:53 EDT 2023
I have made some new ports of PHP available as follows:
PHP 8.0.29
https://theberrymans.com/php_kits/php_axp_8_0_29.zip
https://theberrymans.com/php_kits/php_i64_8_0_29.zip
https://theberrymans.com/php_kits/php_x86_8_0_29.zip
PHP 8.1.20
https://theberrymans.com/php_kits/php_x86_8_1_20.zip
PHP 8.1 and later implement a new feature named fibers. It is
advertised as allowing a program running in a single thread to run
multiple threads. In reality, it simply allows one to create co-routines.
In order to implement this feature, PHP needs to be able to save and
restore execution context, as well as the ability to jump to a saved PC
location. PHP uses the boost library to implement this and the boost
library provides code in x86 assembly for the save/restore functions. I
had planned to implement similar functionality for Alpha and Integrity
using Macro32, only to discover that Macro32 doesn't provide access to
the floating point registers.
So, I'd to like to request an informal poll. How many folks would like
to have a version of PHP later than 8.0 for their Alpha or Integrity
systems?
While I'm waiting for the answers, if anyone knows how I can
save/restore execution context and jump to a saved PC location, I would
appreciate any hints. I had hoped to use the various *INVO* functions
for this but, while I have found routines that will save the current
context, I haven't found any that will load the contents of an INVO
block back into the registers.
Also, what languages have access to all of the registers?
Mark Berryman
More information about the Info-vax
mailing list