1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: PDMud thread summary -->
<!--X-From-R13: Quevf Uenl <ptNnzv&#45;pt.UenlEntr.Sqzbagba.OP.QO> -->
<!--X-Date: Mon, 26 Oct 1998 22:05:12 &#45;0800 -->
<!--X-Message-Id: 199810270602.XAA03708@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: PDMud thread summary</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00538.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00540.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00656.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00540.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00539">Author</A>
&nbsp;|&nbsp;<A HREF="#00539">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00539">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: PDMud thread summary</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Subject</em>: [MUD-Dev] Re: PDMud thread summary</LI>
<LI><em>From</em>: Chris Gray &lt;<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>&gt;</LI>
<LI><em>Date</em>: Mon, 26 Oct 1998 23:02:54 -0700</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
[Jon A. Lambert:]

[I've left email until quite late, so I could get some work done. So, if
I'm even less coherent than normal, forgive me!]

 &gt;Rare, unless modules can be instanced or otherwise replicated.  I 
 &gt;mentioned that in another post tonight...  I think we can support 
 &gt;both procedural languages and object-oriented languages as mud 
 &gt;languages.  I'd prefer to support an object-oriented mud language, 
 &gt;which might require support multiple instances of modules (at least 
 &gt;any state they contain, not necessarily code)

Why does support for an OO language require multiple instances of the
module for it? Wouldn't all the language state for a given client be
bundled up as part of the client state?

 &gt;&gt;  &gt;Are function calls resolved at compile-time, registration, or run-time?
 &gt;&gt; 
 &gt;&gt; Depends on what you mean by 'resolved'! Calls to visible names within
 &gt;&gt; a module should be resolved at compile time. Calls from one module to
 &gt;&gt; another that are fixed calls (not dependent on run-time data) can be
 &gt;&gt; resolved at registration (module load) time. Calls via pointers that
 &gt;&gt; MUD-code or module code can modify need to be at run-time. The comparative
 &gt;&gt; cost increases in that same sequence.

 &gt;Would a successful compile automatically go ahead and register the 
 &gt;module?   Any concerns here.  I've always thought an automated mud 
 &gt;language source versioning system would be nice.

Not register, no. There is no need to register functions that are
fully resolved at compile time. You only need to register functions that
a module exports or imports when that module is loaded. I view a call
fully determined at compile time to be essentially invisible outside of
that hunk of code. Sort-of like C compilers just emit PC-relative
branches for calls to other routines in the same source file.

 &gt;&gt; Sure, that's fairly standard. The other thing you often want is for the
 &gt;&gt; return instruction to pop/deallocate any local variables as well.
 &gt;
 &gt;Aye.  How about support for static variables and recursion.  We 
 &gt;haven't discussed module level variables (outside of functions).

True. Recursion should fall out of any stack-based system. I solved
the problem of non-local variables by not having any. You can either
have persistent entities in the database (hence referenced by DB-Id),
or you can have local's. It's a very occasionally annoying restriction,
but it does work. That may not work properly with some OO styles,
however - I can't judge that.

--
Don't design inefficiency in - it'll happen in the implementation. - me

Chris Gray     cg#ami-cg,GraySage.Edmonton.AB.CA


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00538.html">[MUD-Dev] Re: DevMUD module configuration</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00540.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00656.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00540.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00539"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00539"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>[MUD-Dev] Re: PDMud thread summary</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00512" HREF="msg00512.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Mon 26 Oct 1998, 09:41 GMT
</LI>
</ul>
<LI><strong><A NAME="00511" HREF="msg00511.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Mon 26 Oct 1998, 06:18 GMT
</LI>
<LI><strong><A NAME="00537" HREF="msg00537.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Bruce Mitchener, Jr. <a href="mailto:bruce#puremagic,com">bruce#puremagic,com</a>, Tue 27 Oct 1998, 04:45 GMT
<UL>
<LI><strong><A NAME="00656" HREF="msg00656.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sun 01 Nov 1998, 04:02 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00539" HREF="msg00539.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 27 Oct 1998, 06:05 GMT
</LI>
<LI><strong><A NAME="00540" HREF="msg00540.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 27 Oct 1998, 06:13 GMT
<UL>
<LI><strong><A NAME="00548" HREF="msg00548.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Tue 27 Oct 1998, 09:50 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00559" HREF="msg00559.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 28 Oct 1998, 04:14 GMT
<UL>
<LI><strong><A NAME="00565" HREF="msg00565.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Wed 28 Oct 1998, 13:40 GMT
</LI>
</UL>
</LI>
</ul>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>