# Plugin interface

Erik Ostrom (eostrom@research.att.com)
Wed, 16 Jul 1997 13:55:00 -0400

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    > 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