<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: PDMud thread summary --> <!--X-From-R13: "Xba O. Znzoreg" <wyflfvapNvk.argpbz.pbz> --> <!--X-Date: Sun, 25 Oct 1998 18:54:07 -0800 --> <!--X-Message-Id: 199810260250.UAA23442@dfw-ix2.ix.netcom.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199810252149.OAA02941@ami-cg.GraySage.Edmonton.AB.CA --> <!--X-Reference: Pine.SOL.3.96.981025233328.616A-100000#licia,dtek.chalmers.se --> <!--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:jlsysinc#ix,netcom.com"> </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> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00505.html">Previous</a> | <a href="msg00507.html">Next</a> ] Thread: [ <a href="msg00501.html">Previous</a> | <a href="msg00513.html">Next</a> ] Index: [ <A HREF="author.html#00506">Author</A> | <A HREF="#00506">Date</A> | <A HREF="thread.html#00506">Thread</A> ] <!--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>: "Jon A. Lambert" <<A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A>></LI> <LI><em>Date</em>: Sun, 25 Oct 1998 21:51:03 -5</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> On 26 Oct 98, Niklas Elmqvist wrote: Too many messages to grok. I thought I'd respond at random, even though it may break your chain of thought. :P > On Sun, 25 Oct 1998, Chris Gray wrote: > > > However, if I am understanding correctly, doesn't using this technique > > preclude using any implementation language other than C++, (and that > > everyone use the same C++ compiler) since external inheritance requires > > consistent object layout and virtual function table format? > > Yes, it does. It works since the compilers I've come across don't do > anything funky with the virtual function tables of subclasses. > An OO mud language needn't have any virtual tables. Virtual functions and the like are C++ specific. You do have to settle on an object format. Perhaps this might be a better place to start? What properties do we desire a generic object to have? > > How would modules written in the MUD-language match this layout? The > > MUD-language and virtual machine could force all entities manipulated by > > the MUD-language to inherit from whatever base class is the one chose > > for the external inheritance level. > > Hmm, not sure what you're getting at here, but yes, the base class in the > executable must be made adequate since it must be used for all accessing > of the objects (at least on the driver level). And are we sure we will > support MUD-language code modules on this level? IMHO, MUD-language is > better suited to in-world stuff. Are we talking about a language that just does simple scripting (i.e. DLG, Mobprogs) , or a complete mud language here, like LPC, MOO, Cool, ColdC. A simple glance at these drivers indicates an obsession and attention to server language as opposed to driver. That is to say, the former drives the latter. > > Isn't that kind of restrictive? The net result of this, is "just another > > C++ MUD" isn't it? > > Yes, but the alternative would be "just another C MUD", or what? Do you > refer to some specific phenomenon? See above... the driver's implementation language shouldn't be a limiting factor in the design. You should be able to implement the same glue in C, basic, pascal, C++, Java, Ada, etc. Much of the stuff I've been reading here (although very interesting and amazing) is very, very C++ and Linux platform dependent. > > If that base class is changed in any way, *everything* has to be > > rebuilt, possibly including all MUD-language code. Wouldn't that > > completely invalidate any existing database? > > Well, my thinking is that external inheritance (sorry) would only be used > for modules and events -- I've been concerned mainly with the driver level > here. The database module(s) would build and use their own data > structures, and would not be affected by any change in the base classes. > Actually, trying to tie in database structures into the core would > needlessly narrow our options. > The core/kernel should not need any state to be maintained for itself. BUT.... it should "broker" state change requests between the VM and DB. BTW, any DB from file-system to rdms to dbm to oodbms could be supported from the same API. If there's any interest and I have the time, I could ramble on for hours on ACID and TP requirements and possible interfaces. ;) > > What are the benefits that balance these downsides? > > I think I've gone over some before, but the main reason I see is that this > is a neat way of using O-O concepts over shared lib boundaries with all > that entails. AFAIK, there does not exist a good mechanism for exporting > classes in shared libs. With this technique, we can have encapsulation, > polymorphism and inheritance all working the way we want them even though > our main functionality may be imported in dynamically loaded modules. But we've been talking modules here with very little attention paid to objects/classes/instances. Is a module a class? Can it be instanced? Or is a module the one and only instance? Where is state maintained? > > I'd like to see databases portable from system to system. E.g. one > > created on say, a SPARC UNIX box is directly usable on an X86 WIN32 box. > > Since MUD-language code is likely stored in that database, it should be > > similarly portable. > > Again, nothing in the core should affect anything in the databases. Sure, > the modules are themselves dependant on the base class in the core and > they all use inherited versions of the event class, but this does not have > an impact on the database. > Agreed. Keep in mind ANY DB can be have the same interface wrapper. If somebody wants to write an Oracle wrapper, great, a home-made DB design, that's fine too. Also as someone else mentioned, I don't think there should be any unecessary distinction between memory and database, it's all storage. -- --/*\ Jon A. Lambert - TychoMUD Internet:jlsysinc#ix,netcom.com /*\-- --/*\ Mud Server Developer's Page <<A HREF="http://www.netcom.com/~jlsysinc">http://www.netcom.com/~jlsysinc</A>> /*\-- --/*\ "Everything that deceives may be said to enchant" - Plato /*\-- </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="00513" HREF="msg00513.html">[MUD-Dev] Re: PDMud thread summary</A></strong> <ul compact><li><em>From:</em> alexo#bigfoot,com (Alex Oren)</li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00499" HREF="msg00499.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG> <UL><LI><EM>From:</EM> Chris Gray <cg#ami-cg,GraySage.Edmonton.AB.CA></LI></UL></LI> <LI><STRONG><A NAME="00501" HREF="msg00501.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG> <UL><LI><EM>From:</EM> Niklas Elmqvist <d97elm#dtek,chalmers.se></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00505.html">[MUD-Dev] Re: openmud or pdmud or devmud</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00507.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00501.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00513.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00506"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00506"><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> <ul compact> <LI><strong><A NAME="00498" HREF="msg00498.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, James Wilson <a href="mailto:jwilson#rochester,rr.com">jwilson#rochester,rr.com</a>, Sun 25 Oct 1998, 21:10 GMT <UL> <LI><strong><A NAME="00502" HREF="msg00502.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Mon 26 Oct 1998, 00:09 GMT </LI> </UL> </LI> </ul> </ul> <LI><strong><A NAME="00499" HREF="msg00499.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>, Sun 25 Oct 1998, 21:51 GMT <UL> <LI><strong><A NAME="00501" HREF="msg00501.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Sun 25 Oct 1998, 23:08 GMT <UL> <LI><strong><A NAME="00506" HREF="msg00506.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, 02:54 GMT <UL> <LI><strong><A NAME="00513" HREF="msg00513.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, 10:05 GMT <UL> <LI><strong><A NAME="00535" HREF="msg00535.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Tue 27 Oct 1998, 03:44 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="00503" HREF="msg00503.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, ApplePiMan <a href="mailto:ApplePiMan#aol,com">ApplePiMan#aol,com</a>, Mon 26 Oct 1998, 00:20 GMT </LI> <LI><strong><A NAME="00507" HREF="msg00507.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>, Mon 26 Oct 1998, 04:20 GMT </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>