View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000664||LDMud 3.7||General||public||2009-06-18 05:09||2022-10-06 19:48|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Platform||i686||OS||Debian GNU/Linux||OS Version||4.0|
|Summary||0000664: RfC: Remove compat mode|
|Description||The efun transfer() might be emulated by a simul-efun. But the biggest problem is, that in compat mode all file and object names don't have a leading slash.|
|Tags||No tags attached.|
Additionally there are the differences in initialisation I think: create/reset vs. reset(0)/reset(1).
AFAIR all the stuff concerning (E)UID was controlled by strict-uids, right?
||Initialization is specified by the driver hooks (H_CREATE_*, H_RESET) and not dependent on the driver mode. And also - I think - uid handling is controlled by strict-uids, I haven't seen a dependency on the driver mode, but I might have overlooked something.|
||Ah, right. The table in the manpage 'native' only describes traditional behaviour. I thought, the driver still sticks to these and doesn't offer the hooks in compat mode (never used compat mode here... *g*).|
Maybe we should make a list of things, which would get a leading slash?
We may have to check restore_structs(), because the program name is encoded in the struct identifier. So we have to take care, that we can restore savefiles without leading / and savefiles with them.
||You should also take get_dir() into account. I glimpsed over the entries of /doc/efun, but found nothing else, yet.|
We switched over to native mode a couple of years ago and it was not THAT complex. The native mode works perfectly well even without using euid/strict uids (even though we take advantage of them now). The main problem for us was the missing SLASH, so be previously introduced a define COMPAT_SLASH that resolved to an empty string when running in Native mode.
However, I must say, we I do not need it anymore, so lets get rid of it *grins*
||traceprefix() could be another candidate: The manpage says, that internally objects are stored without the leading slash. But when called in !compat mode, one should not rely on the underlying internal storage but write the arguments like other arguments: with leading slash.|
For all the above mentioned eight efuns the OUTPUT has to be checked.
The following efuns possibly accept a filename in the arguments. Their INPUT arguments have to be checked, if they have a leading '/' or not:
The next list of efuns do already use a leading /, even in compat mode:
* tail() -- removed in 3.5 anyway
|2009-06-18 05:09||Gnomi||New Issue|
|2009-06-18 05:23||zesstra||Note Added: 0001223|
|2009-06-18 05:28||Gnomi||Note Added: 0001224|
|2009-06-18 05:32||zesstra||Note Added: 0001225|
|2009-09-30 16:12||zesstra||Relationship added||child of 0000146|
|2009-10-06 15:38||zesstra||Note Added: 0001500|
|2009-10-06 18:33||Coogan||Note Added: 0001503|
|2009-10-07 05:06||Bardioc||Note Added: 0001509|
|2009-10-15 17:58||Coogan||Note Added: 0001522|
|2010-03-27 06:22||zesstra||Target Version||=> 3.5.0|
|2010-09-24 19:08||Coogan||Note Added: 0001899|
|2017-10-04 21:36||zesstra||Target Version||3.5.0 =>|
|2022-10-06 19:48||Gnomi||Project||LDMud 3.5 => LDMud 3.7|
|2022-10-06 19:48||Gnomi||Category||Runtime => General|