Sun Sep 21 11:22:16 CEST 2008
Initialization is working. The script/plt.pf code will handle the PF
side of things, basically just a receive-eval-send loop.
The problem is with data types and memory management. Essentially,
because of linearity, all PF data objects should be unobservable from
scheme, with only the operations and data constructors (literals)
With PUSH FIND and RESUME we're done for Scheme -> PF control.
Data access can be done on an as-needed basis, copying data straight
NEXT: figure out how build a scheduler that cooperates with Scheme's.
I got it running using 2 PF threads: one to run the 'tick' method and
one to poll the C thread (c-yield / pf_vm_resume() )
Now, because PLT Scheme is a non-realtime language, and due to
linearity we want to hide the PF memory from PLT Scheme (share-nothing
parallellism), I think the best approach is to run PF in a separate OS
thread. O horror yes.
But that's for later. Actually, pipe comm + thread decoupling could
be implemented separately..