In short: Global buffers should be axed. In long: Because of the widespread use of CircleMUD by the less-than-C-literate, I find it beneficial that we get rid of more and more 'magic' anything. Too many people have historically found 'buf' to be some omnipresent thing that can be used and abused in various ways. We also run into various problems, for example, passing spell arguments (a la the old locate object spell). For those of you who don't recall, when you do a locate object, the following occurs: 1. > cast 'locate object' keyword 2. The spell parser looks for an object (prototype?) with said keyword. 3. Finding the object, it passes this to the manual spell. 4. The manual spell uses the object's keyword list to search the world for that object. The result can be finding different objects than you were looking for, and in game hackish tricks have to be done to get what you want. This situation may have been remedied, but it's only a specific case. It ties into global buffers in that, using them everywhere, we mangle and munge them in various ways, and then pass them on to other functions which expect certain criteria to be satisfied by the data. We can have extra checking to take care of it, which is good (but more [local] overhead), or we can be allocating and using this data in a natural manner and have it behave as expected. The problems appear because of the attempted generic nature of CircleMUD's functions. [sigh] Company arrives. I hope I conveyed my 'why'. -k. -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST