Re: Circle Architechture - was Re: [CIRCLE] DG-Script's crashing..

From: George Greer (greerga@circlemud.org)
Date: 05/31/00


On Wed, 31 May 2000, Patrick Dughi wrote:

>        This last set of messages brings up an ongoing issue I have with
>the circle code base as a whole.  I'm not sure exactly how to label it
>though; perhaps I should fall back on my old line that 'circlemud is a
>tense system'.  That is, you cannot push it very far, or it breaks.

That's not very hard to do in C.  *nullptr = 5;  We can only be so
defensive in programming before becoming ludicrous.

>        I had for a while been afflicited with a crash involving
>spec_proc'ed mobs which either removed themselves or others.  It was
>sporadic, and not reproducable.  Turns out that the function that fires
>the spec_procs simply iterates down the character list; whether it saves
>the next mob in the list or not is irrelevant - that could be the pointer
>to be freed upon death/purge.

We've thought about character garbage collection.

>        Two people editing rooms at the same time - one edits room 2000 -
>a new room, and the other edits room 3000.  The 2000 finishes first, rnums
>are instantly updated, the other suddenly has his exit room references
>altered (though it still saves correctly). (may be an old ver of oasis)

That's really old OasisOLC.

>        I believe an object oriented approach to the problem would be the
>best bet - as much as I prefer C to C++, this is the direction I'm
>leaning.  As an interim solution, perhaps much of the direct access to
>structures/data should be replaced with a bit of abstraction, accessor
>functions, or data manager functions (for the many lists, for example).
>For now, until I can make..basically a mud API, I'm still fixing on a
>point of conflict solution for each problem.

We can't prevent crashes.  If someone doesn't know enough, it'll break.
It's sort of "you must be this tall to ride" sort of thing.
Unfortunately, that measure is often overestimated by people. Even if we
wrote it in Perl, Python, or Java, there'd still be ways to break the code.

--
George Greer
greerga@circlemud.org


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 04/10/01 PDT