Ok, I'm back. Moved into a new apartment, finally sold my iBook and got a Pismo. When I've got some money I'll upgrade it to a G4. I got an iMac G4 at the office to play with now too.
Got some good work done on my import code for SRM recently. I added an additional function to the SRM server, srm_user_function_list(), so that the import code won't have to pick the user defined functions out of the list returned by srm_function_list(). The import code, in general, works. Right now it's just hooked up to a simple handler function that just prints the name of the function that was called. Adding the entries to the executor's function_table works fine, and I've added a HashTable to the SRM PHP extension's thread-safe globals to keep track of the imported functions and which connection they were imported from.
I have to add code to the module initialization call to alloc and init the HashTable and then more code to the request shutdown and module shutdown calls to handle the removal of the imported functions from the executor's function table. Probably have a bit more stuff to clean up too. Then it will be ready to really test it.
I've been learning a bit about using GDB throughout my diddling with SRM. I have to say that it's neat. I've also been learning about trying to deal with the Zend Engine's memory management and such. It's nice that it informs you of memory leaks when it shuts down. (well, I'm just testing it with the CLI SAPI, I wonder what happens when you leak with the apache SAPI or others?)
I've also changed the import interface too. It now works like this:
$srm = new SRM('/tmp/srm.socket');
$srm->import_library(); // import all library functions
$srm->import_library("my_func"); // import function "my_func"
$srm->import_library(array("func1", "func2")); // import a few select functions