-*- text -*-

o if a udp service exits without reading the buffered data, it
immediately respawns. if this recurs, we're in deep poo. Moral: write
your UDP apps carefully.

o the daemon name that tcp wrappers thinks it's invoking is the
service name, rather than argv[0] as one might think. This is due to
the fact that we construct our argv string on the fly, and it isn't
available at that stage. The rlinetd.conf file generated by
inetd2rlinetd works fine.

o it's a teensy bit difficult to work out what libtool is going to
call a module. manual modification may be necessary if it's something
other than what is expected inside main.c.

o ELF! ELF! Non-ELF platforms seem to be just too painful, libtool
notwithstanding.

o the parser has a bunch of O(k ** n) routines in it. big config files 
could be tres exciting.

o now that everything is done with opcodes, which get magically
reordered as they're built and extended and stuff, I'm no longer
*absolutely* certain that things happen in the right order. assemble.c 
has the strictures applied to opcode ordering - do let me know if I've 
missed anything.

o OP_ECHO needs to be ready to handle a partial write, a la OP_BANNER

o we lose all state data across a reload. this means that 'instances
1;' services will respawn.