> > 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. PjD +------------------------------------------------------------+ | 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