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

From: Patrick Dughi (
Date: 05/31/00

> >        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.
        The above is certainly plainly put, and it's something I try not
to say too often, regardless of how obviously true it is.  The problems
that I'm looking at though are the more complicated type.  I consider
myself a reasonably seasoned programmer, and i've worked in that capacity
for Intel, Motorola, and now IBM.  My code may not be the most graceful,
and the patches I put out are not always of the highest order, but when
something stumps me for more than 15 minutes on a codebase i've been using
for how-ever-many-years, it registers in my head as a non-trivial problem.

        For the most part, i've converted the active mud code into a safer
version using a discard list for many datastructures that needs to be
freed/released, and a marker to show that any accesses to those are
invalid.  Of course this has end-of-cycle release functions triggered at
the end of each specific types call (like the mobile_Activity roll, event
queue, perform violence, etc).  This has allowed me to allow jr.
programmers to help out - people who may be exceptional programmers in
their own right, but are unfamiliar with circlemud, or perhaps people who
have trouble programming at all.

        I think that the character garbage collection is an incredibly
good step in that direction, and I'd be willing to hero the cause.  As a
matter of fact, once I'm done pushing my room/obj/mob structs into an AVL
tree to avoid direct references but keeping a high access time, I'll go
ahead and write up a patch.


     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

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