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

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


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

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

I have never used EXE$KP_* but in a recent thread I think it
was agreed that they were really a coroutine implementation.
So obvious question: could they be used to implement this?

Arne





More information about the Info-vax mailing list