[MUD-Dev] Re: DevMUD: Inheritable modules

Thandor thandor at donut.dhis.org
Sat Oct 31 15:25:05 New Zealand Daylight Time 1998

On Sat, Oct 31, 1998 at 01:14:20AM +0100, The Arrow wrote:
> MUDs must have at least the following interfaces to be DevMUD compliant:
>   o Module
>       The Module interface contains functions to get info about the
>       module and configuring the module.
>   o Net
>      The Net module is an abstract interface, containing just dummy net
>      functions.  Modules inheriting this interface must provide real
>      implementations for these functions.

Maybe this is a stupid question, but what do you mean by the terms "MUDs" and
"DevMUD compliant"? I'm struggling to read this in a fasion that makes sense.
Maybe if by mud you mean the gameworld module, it's almost making sense. Or
maybe by MUD you mean the mud core? And what is DevMUD compliance? I thought
DevMUD was supposed to be a system, not just a specification of a system? I'm 
really confused. Some standardisation of terminology is needed here I think.

>   o Command Parser
>       A basic command parser.  The basic Command Parser module read
>       commands from the Telnet module.

If the basic standard parser is going to be reading commands from the telnet
module, why break the telnet module into net/TCP/telnet anyway? Shouldn't the
parser read input from an arbitrary input module that is somehow derived from
the net module, but need not be the telnet module?

>   o Compilation
>       Abstract interface for all MUD-language compilers.  Modules
>       inheriting this interface must provide real implementation of the
>       interface.
>   o Virtual Machine
>       Abstract interface for all MUD-language interpreters.  Modules
>       inheriting this interface must provide real implementation of the
>       interface.

If all "compiler" modules inherit the same abstract interface, is that going
to restrict me to producing byte-code to the virtual machine? What if I want
to write a compiler that produces native code? Maybe I misunderstand what you
intend here, but I would think the interface a compiler inherits would be at
least somewhat dependent on which virtual machine (if any) it is intended to
compile code for.

> If a module inherits an interface not in the interface database, the
> module is unloaded and an error message should be logged on the console
> and sent as a message to all loaded modules.

So if module B depends on module A I must ensure that I load A before B? I
don't see why that restriction needs to be made, what's stopping module B
sitting idle until module A is loaded - seems a reasonable way of handling
things to me. This also allows for circular dependencies - which although
generally not a good thing could be useful in some cases.

- Shane King.

More information about the MUD-Dev mailing list