MOO-cows Mailing List Archive

[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: Plugin interface



> At first it seams like a good idea and it might, the problum being that
> what about having the server parse the DB when starting before the modules
> are loaded? The server would not know about them and would mostlikely
> thing the DB is corrept

My assumption is that there is a set of modules that is loaded at startup.
This can happen _before_ the database is loaded, so there's no issue of
corrupt data unless you start up the server _without_ a data type that
you included last time.  I think this is sufficient (provided there's
a way to recover if you do eliminate a data type).

> This sounds like a great idea, espectly when keeping inmind my point
> above, the server won't load a DB with built-ins it does not know about,

Actually, the server will.  At load time, it converts unknown functions
into call_function() calls.  This won't _work_ particularly well, and
it's not ideal for some situations, but at least it will load it.  This
is true as of version 1.8.0 of the server.

Again, I suspect that most of the time your "dynamic" loading
is something you want to do when you start up the server, not at
arbitrary points during its use.  Well, you might want to use it
to install a new module, once; but subsequently it should be loaded
at startup for as long as you're still using it.  This seems to follow
from the persistent nature of the MOO database.

> or change the DB format to include a list of data types and built-ins used
> by modules, a list prone to some length problums and problums with finding
> a good way to remove things from the list without.

The new server does save a list of data types in the database; this is
necessary regardless of dynamic loading, to maintain consistency if
data types are added to or removed from a statically compiled server.
There will also be a way for server extensions to "uninstall" themselves,
and a more drastic way to simply flush all values of a given data type.

--Erik



Home | Subject Index | Thread Index