Subject: Server Extensibility

From: Clay Luther <[email-masked]>
Date: Mon, 10 Aug 1992 09:58:26 -0700

Idea to put forward:

Linkable libraries of built-in functions for the moo server.

Purpose:

1) To provide moo admins with a way of adding functionality to the moo server
by writing discrete libraries of their own functions without the need to hack
on the server itself.

2) Increased modularity and compatibility of existing moo servers.  Admins
could share their function modules with other admins.  Other admins could 
add the new built-ins to their moo simply by editing a header file (to
indicate the new functions) and the make file (to ensure the library is
linked) and recompiling.

3) Provides Pavel with a method of maintaining an up-to-date and reliable
core server, while providing other moo admins with the ability to tailor 
their moo with C functions.  

Please discuss.

-- 
Clay Luther
[email-masked]

---

From: Moonchilde <[email-masked]>
Date: Mon, 10 Aug 1992 10:51:23 -0700

I personally think this idea is a very good one, and would like to
see it.

I know that some servers out there would find having heavy math functions
inserver to be an extreme boon, and I know that I find the regexp and
listassoc stuff that Clay wrote for GodNET and distributed to be also
very useful.

Setting up a mechanism whereby module libraries of external functions could
be added to the interpreter easily would be highly nice.
--Moonchilde
([email-masked])

---

From: Pavel Curtis <[email-masked]>
Date: Tue, 11 Aug 1992 18:27:32 -0700

I will do the best I can in the next release to make it easy to add new
built-in functions.  Somewhere, there'll be a list of C functions to be called
when the server starts up, with the intent that they'll register new built-in
MOO functions.  If you add your registration function(s) to the list and add
your .o file(s) to a particular line in the Makefile, your code will be linked
into the server.  See the README file for the details when the release happens.

Beware, though, that the server is going though some pretty pervasive changes
right now and so I can't say much yet about how easy it will be to keep your
code up to date.  Perhaps, after the disk-based-DB maelstrom is over, I'll try
to make it very clear what the `stable' interfaces are within the server.

	Pavel/Haakon