[306] in Coldmud discussion meeting

root meeting help first previous next next in chain last in chain last

logging, fact and fiction

daemon@ATHENA.MIT.EDU (Mon May 23 21:27:51 1994 )

From: deforest@netcom.com (Robert de Forest)
To: coldstuff@MIT.EDU
Date: Mon, 23 May 1994 18:18:46 -0700 (PDT)

Due to recent posts I feel it's necessary to state how things currently
 work (?). This will be a review for most of you.

The server is aware of only two objects. They are #0 and #1. #0 is the
 'system' object and #1 is the 'root' object. The only permission checks
 the server ever does is to prohibit execution of certain builtins by objects
 which are not one of these. For example, the create() function will throw
 ~perm if run by a method defined on any object other than $sys.

log() is a system function. This makes sense, since it means people can't
 'spoof' a log entry. This means, however, that all logging must go through
 a method defined on $sys.

This information is prompted by a comment somewher that the ability to turn
 off logging scared a poster. This should not scare em any more than the
 ability to turn off object creation.

I hope this clears things up without being overly condesending in tone. :)

I also hopes this explains why I wasn't worried about moving time in-db. If
 someone gets far enough along to screw up $sys.log then having log() only
 log strings will not make a bit of difference. I also applaud Lynx on his
 initiative. Thanks for making the 10.3 patch available.

Crag

P.S. I too have been having odd server problems, such as a blank startup
 and crashing on textdump. I am even using 11.4, which has been modified
 extensively. However, since the next release is already underway and will
 be what amounts to an overhaul, I am not going to fuss over these problems.

P.P.S. Note to individuals wanting to make their dbs compatible with future
 releases: The following have changed for version 11.x

traceback() returns a list of values instead of strings. It is of the form
[[~error, "msg (formerly returned by error_str()", arg (formerly returned by
 error_arg())],
 ['thrower ('opcode | 'method), opcode or method ('GET_OBJ_VAR, etc)],
 (and the rest are the stack frames, as in [~error, 'method, #definer, #this, line])
]

I believe the CD core parsed the old traceback() into this form. This will no
 longer be necessary.

error_arg() and error_str() are contained in traceback() and have been removed.

dict_add_elem() and dict_del_elem(0 have been removed. They may be coded in-db
 with dict_add() and dict_del(), as well as a setadd() or setremove() and some
 other logic.

These are all the language changes that were made. To make a textdump 11.x
 compatible, remove all references to error_*() and dict_*_elem().