[MUD-Dev] Re: DevMUD considerations and the Halloween article

David Bennett ddt at discworld.imaginary.com
Tue Nov 3 15:27:58 New Zealand Daylight Time 1998

On 11/3/98, at 2:09 PM, Jon Leonard wrote: 

>Strong vs. Weak typing:  Are types tagged to let them automatically
>	as necessary, or does the compiler guarantee correct types being
>	passed?  Something else?

Strong typing is an absolute must...    After using LPC for so long and
getting really irritated by all the small run time errors caused by
incorrect types getting passed into things, this would be such a relief...
Java style strict type where it is all done in the language precompiler
(except for an explicit casting opertator) is really quite neat and would
create faster byte code.

>Multiple return values from functions:  Do the calling convetions for
>	softcode allow a function to return a pair (or more) of values?
>	How about a variable number?

What do you mean by this exactly?  Do you mean returning an array?  Or a
class?  If your talking about odd pairing operators on return values, these
seem to end up being more confusing and less useful than at first thought
generaly speaking :)  Since we are talking about an interpreted a language
either returning a class or a create on demand array is simple.

>Closures:  Are functions first-class values?  Are continuations?

You mean treat functions like variables right?  So you can assign them to
things and return them, like a functional language.  I really really like
the benifits offered by a strict functional language, being able to return
functions and treat them as if they really were a variable is very useful
and I think it should be allowed...

>Inheritance support:  Does the VM chase down an inheritance tree, or does
>	the compiler take care of it?  Is there any inheritance at all?

You can get away without runtime binding, by having a function table for
each object stored somewhere with neato index numbers which get referenced
into it.  However, this does create consistancy problems when the tables
are changed.  Especially if the original compiled object structure is
removed off the disk.  Errr, I am assuming you are compiling to a binary
tree saved on disk here.

>Thread model:  How do we deal with locking data structures, and what do we
>	do about deadlocks?

How do operating systems deal with this?  I am not really up on deadlock
avoidance/deadlock breaking.

>Exception handling:  What's to be done when something doesn't match
>	expectations?

Stop the thread?  And clean it up?  If you get a major major exception you
might need to take the system itself down as a whole...

>Security:  What guarantees are made about code behavior, and how?

If you wish to have a dynamicaly alterable system (like LPC) then having
decent security is a must.  Being able to control what people can and
cannot do is really useful.  Something like the java Security Manager
objects would be useful.

Wondering if I made any sense,

More information about the MUD-Dev mailing list