[Info-vax] New PHP kits available (and a programming question)

Arne Vajhøj arne at vajhoej.dk
Mon Jul 10 19:51:16 EDT 2023


On 7/10/2023 1:47 PM, Mark Berryman wrote:
> 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

Thanks.

> 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.

Fibers are a known concept.

https://en.wikipedia.org/wiki/Fiber_(computer_science)

Besides Boost they are also part of Windows:

https://learn.microsoft.com/en-us/windows/win32/procthread/fibers

> 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.

It would be nice if VMS had Boost!

> 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?

I am for. Not because I really need it (I do little PHP), but
because I want VMS on all platforms to have as much software
as possible available.

> 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?

Native assembler and languages that allow inline assembler??

Arne





More information about the Info-vax mailing list