[722] in Coldmud discussion meeting

root meeting help first first in chain previous in chain previous next last

Re: server extension

daemon@ATHENA.MIT.EDU (Mon Mar 20 14:16:50 1995 )

From: brandon@avon.declab.usu.edu
To: coldstuff@MIT.EDU
Date: Mon, 20 Mar 95 12:12:44 -0700

< My first instinct is to provide a way to 'import' new class objects. What I
< envision is that you'd tell the running server there's an "object file" at
< a certain location in the file system and that you wish for it to be added
< to the server as a new object. Something like import("extensions/bitfield").
< The return of this function would be a new dbref which acts like a regular
< object as far as the db can tell. When the object receives messages it turns
< them into API calls. I guess this is kinda like a Windows DLL...

Unfortunately, I am a complete novice in respect to this low level of
functionality.  However, it is something I would love to see.

< We'd need a way to verify that an import object was 'valid' [...]

Actually, I wouldn't bother.  99% of the time you are linking to a binary
it would be to have faster and more optimal routines.  No joe schmo would
do this (and if they wanted to they could contact an admin).  I think you
should just bind the [de]linking function to $sys and trust the object you
are linking to.

< Incidentally, since I will be providing the parser tree and allowing people to
< compile raw parse trees to methods we will be able to add new operators in-db
< if the code interpreter will support them. Maybe we should change the
< interpreter to allow 'unknown' operators and send messages to the first
< operand about the operator to see if it recognizes it, then to the second
< operator, etc. This would allow some insane person to make string addition to
< non-string types to work as if the non string types were string
< representations of themselves if they provide a way to get that rep.
< Er, I mean, "foo" + 1 could be interpreted as $string.add_op("foo", 1) which
< would generate a $integer.to_string(1)?

Actually, I would interpret "foo" + 1 to return "oo", but that is just me

I wouldn't bother with the above, sure it would be nice, but how often
would it be used (compared to how often you'd have to check the validity
of each operator).

(then again, I could just be raining on your parade :)