Thank you for the comments. So far Raul and Dan have shown interest. After
this message I would like to take this out of chat and go to private
messages so as not to burden those not interested.
Before getting into how to implement, I would like to get a feel as to what
we need to build. So here is a list of things I would want to see available
and easy to use when using J to develop an application. Please feel free to
add and/or modify.
Functions:
Clone another J instance
- In same machine
- In another machine
Send and receive nouns
- via sockets
- via mapped files
Send scripts to clones
Send and receive semaphores
Send verbs to be executed and possibly get results back
Stop cloned J sessions
- By a command to the cloned session
- Forcing clone to stop
Detect lost clone
Detect lost parent
Comments:
Mapped Files
- Advantages:
- Reduces memory requirements
- Avoids copying
- Disadvantages:
- Does not support boxed arrays
- Mapped files can only be used with shared memory systems
- Question:
- If a file on a file server shared by several computers is mapped,
does this make sense? What would be needed to make it work?
Cloning in the same machine should require no additional tools outside those
already in J.
Some facilities listed may be easier to implement or coming with J7. We
should be able to use J7 for development as it is J6 console with a
few added foreigns.
Should it be implemented as a class, or just add names to the z locale?
Objects would be easier to keep track of if multiple clones are created,
although arrays of locatives are unwieldy.
Whether nouns are passed via mapped files or through sockets should not be a
concern of the application.
If a command sent to a clone was to return a result, it should not cause the
sending system to hang. Receiving the results should be a separate
operation.
Right now distributing work should be a defined by the application
developer. No automatic distribution of work at this time.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm