[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