[MUD-Dev] More module ideas

Mark Gritter mark at erdos.Stanford.EDU
Fri Nov 13 19:41:47 CET 1998

I've been trying to think of some more examples of modules (particularly 
those I'd find interesting to write, of course.)

Memory management:
    A module which performs dynamic allocation; client modules
  may perform their own allocation from "chunks" granted by the memory
  manager, or depend on it for all requests.
      -- Enforce per-module or per-process memory limits if desired.
      -- Memory leak detection via a "debugging" version of the module.
      -- Usage statistics
    A simple version of this would just use malloc/free.  I don't think
  its feasible to require all modules to use the memory manager (particularly
  if existing code gets converted into a DevMUD module), this might be
  a good goal.
    The memory management module could also be the location of signal handlers
  (is there something corresponding in Windows?) for memory faults.

Remote Procedure Call:
    The RPC module would make use of the socket module.  Its responsiblity
  would be to provide argument marshalling and demarshalling.  Stub functions
  might still be needed in the client modules, but I'm picturing something
  like this (possibly machine-generated.)

void my_rpc_call(HostID host, int arg1, int arg2, char *arg3) {
  rpc_send(host, "my_rpc_call", "(i:hostID,i,i,*b:string)v",
	   &host);  /* Hmmm... not portable, I think.  Gonna have to
                       support varargs, or require some packaging here. */

    The module would take care of sequence numbers, timeouts, etc.  There's
  obviously a lost more to be designed, obviously, and I'm certainly not
  suggesting we implement RPC right away.

Mark Gritter
mark at erdos.stanford.edu

More information about the mud-dev-archive mailing list