ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: Separate Programs from Blueprints
Date: Thu, 2 Nov 2000 10:12:23 +0100 (MET)
From: Fini Jastrow <mud@hurrikap.rz.uni-leipzig.de>

--- A way to prevent this scenario would be to keep a list of all programs.
But that would mean that blueprints and programs are no longer identical.

Hallo Mateese!

Nein, ich bin noch nichtmal dazu gekommen auch nur in den Regexp-Code zu
schauen.

Zum Thema: Wenn eine nomask Funktion mehrfach virtuell ererbt wird, wirft
das ja (seit neuem) keinen Fehler mehr. Das klappt auch ganz wunderbar.
Ein Problem entsteht nur, wenn die Vererbung nicht ganz direkt ist, und
diese nomask Funktion 'in der Zwischenzeit' neu geladen wurde - also im
Driver auf eine andere Funktion zeigt, obwohl der 'vollspezifizierte' Name
derselbe ist.

Beispiel:

'Normalzustand'        'Fehlerzustand'

       A                       A
      / \                     / \
     /   \                   /   \
    B     C                 B     C
     \   /                  |     |
      \ /                   |     |
       D                    D1    D2


Den Fehlerzustand kann man zB erreichen durch: C laden (laed D implizit),
D zerstoeren, B laden (laed D implizit). Nun gibt es zwei eigentlich
gleiche Funktionen, die aber verschiedenen Funktionszeiger haben:

in C   nomask D::fun()  --- aber eigentlich  nomask D2:fun()
in B   nomask D::fun()  --- aber eigentlich  nomask D1:fun()


Auf jeden Fall wirft es dann 'ploetzlich' irgenwann im Betrieb einen
Fehler (nomask zweimal inheritet). Ich weiss nicht, ob man das so aendern
kann, dass es trotzdem geht, ansonsten sollte das in der Docu erwaehnt
werden denke ich - und eigentlich ist die Faehigkeit dann mehr oder
weniger sinnlos, weil nicht wirklich sicher benutzbar.


Hmm, was mir gerade einfaellt... ich weiss gar nicht, ob 'virtual'
ueberhaupt in diesem Zustand geht, also ob D1 und D2 nur einen
Variablenraum, haben. Ich werde das gleich mal nachsehen (wenn ich Zeit
finde), wenn du willst schicke ich dir die Ergebnisse, sonst will ich dich
nicht mit einer weiteren Mail stoeren.


*knuddels* und alles Gute aus Hamburg,


   Fiona @ Wunderland