View Issue Details

IDProjectCategoryView StatusLast Update
0000201LDMud 3.5Runtimepublic2011-02-24 10:56
ReporterlarsAssigned To 
Status feedbackResolutionopen 
Summary0000201: Can catch_msg() be removed?
DescriptionShort: Unused apply catch_msg()
Date: 990319
From: Coogan
Type: Feature
State: Unclassified

Can the catch_msg() functionality be removed?
Nobody seems to use it.
TagsNo tags attached.


related to 0000172 new LDMud Inter-object communication (was: New efun: receive()) 



2011-02-20 00:30

administrator   ~0002009

I had a look in our mudlib and see about 15 objects from 5-6 wizards using it. While it is not nobody, it does not look like it is really needed, although tell_room() is faster than a corresponding foreach() over the inventory.


2011-02-20 16:21

updater   ~0002012

There are libs out there (e.g. one I worked a lot on some time back) that rely on catch_msg() for processing texts given to players (for those using UNIlib: it does essentially the same as the send_message-mechanism).
For that purpose, some time back (issue 354) even tell_object() was modified to conform to other functions like tell_room() calling catch_msg().

So I strongly vote against removing catch_msg().


2011-02-21 00:16

reporter   ~0002013

I've got the feeling that implementing the symmetry by Lars in 0000354 only consolidated the use of an apply from the early years of the driver.

Wasn't the development in 3.5 thought as a major release, cleaning up code? ;-)


2011-02-21 10:15

administrator   ~0002016

Oh, to prevent mis-understandings: my statement was only about the situation in MG, not the usage in general.
In general, I hope that people using catch_msg() in their mudlibs (or not) will speak up here. ;-)


2011-02-24 10:56

administrator   ~0002040

BTW: We might also do the other way round: remove catch_tell(), call catch_msg() also for strings and let the mudlib dispatch string messages to catch_tell() or do whatever it likes.

An even bigger change is to remove all the write, say, tell_* stuff and their applies, add an efun solely for interactive objects to send a message to their network socket and let the mudlib deal completely with everything else. Or reduce it to tell_object() and one apply (e.g. if you tell_object() to a room, that room could decide to tell it to its contained objects).
This is discussed in 0000172, maybe I should link it as related here. ;-)

Issue History

Date Modified Username Field Change
2004-11-26 22:43 lars New Issue
2011-02-20 00:30 zesstra Note Added: 0002009
2011-02-20 00:30 zesstra Status new => feedback
2011-02-20 02:00 zesstra Project LDMud => LDMud 3.5
2011-02-20 16:21 Sorcerer Note Added: 0002012
2011-02-21 00:16 Coogan Note Added: 0002013
2011-02-21 10:15 zesstra Note Added: 0002016
2011-02-24 10:56 zesstra Note Added: 0002040
2011-02-24 10:56 zesstra Relationship added related to 0000172