Update doc/efun/ aus Driversourcen.
Manpages der efuns aktualisiert, neue Manpages hinzugefuegt.
Change-Id: I7cc91684269ff56d1aef47d5c5e7c87f7fd531dc
diff --git a/doc/efun/replace_program b/doc/efun/replace_program
index 98cc305..39f8e88 100644
--- a/doc/efun/replace_program
+++ b/doc/efun/replace_program
@@ -2,40 +2,35 @@
void replace_program()
void replace_program(string program)
-BESCHREIBUNG
- Ersetzt ein Programm mit dem geerbten Programm (inherit) <program>.
- Das Argument <program> kann weggelassen werden, wenn nur ein Programm
- geerbt wird. In diesem Fall waehlt der Treiber automatisch dieses eine
- geerbte Programm.
+DESCRIPTION
+ Substitutes a program with the inherited program <program>. If
+ the object inherits only one program, the argument may be omitted
+ and the efun will automatically select the one inherited program.
- Diese Efun ist nuetzlich, wenn es um Leistung und Speicherverbrauch
- des Treibers geht. Ein Programm, welches keine zusaetzlichen Variablen
- oder Funktionen braucht (ausser waehrend der Erstellung), kann
- replace_program() aufrufen, um die Trefferquote des Treibers auf den
- Funktionen-Caches zu erhoehen. Dies verringert die Anzahl Programme
- im System.
+ This efun is useful if you consider the performance and memory
+ consumption of the driver. A program which doesn't need any additional
+ variables and functions (except during creation) can call
+ replace_program() to increase the function-cache hit-rate of the
+ driver which decreases with the number of programs in the system.
- Raeume sind ein gutes Beispiel fuer die Anwendung dieser Funktion, da
- viele Raeume nur aus einem Inherit und einer Konfigurationsfunktion
- bestehen. Jedes Objekt kann replace_program() aufrufen, verliert dabei
- jedoch alle Variablen und Funktionen, die nicht im geerbten Programm
- definiert sind.
+ Rooms are a good example for the application of this function, as many
+ rooms just consist of an inherit statement and the configure function.
+ Any object can call replace_program() but looses all extra variables
+ and functions which are not defined by the inherited program.
- Wenn replace_program() angewendet wird, werden Shadows vom Objekt
- entfernt, in dem replace_program() stattfindet. Dies ist so seit
- 3.2@166.
+ When replace_program() takes effect, shadowing is stopped on
+ the object since 3.2@166.
- Es ist nicht moeglich, replace_program() aufzurufen, wenn es an das
- Objekt gebundene (Lambda-) Closures gibt. Hingegen ist es moeglich,
- zuerst das Programm des Objekts zu ersetzen und dann Lambdaclosures
- daran zu binden.
+ It is not possible to replace the program of an object after (lambda)
+ closures have been bound to it. It is of course possible to first
+ replace the program and then bind lambda closures to it.
- Das Ersetzen des Programms findet erst statt, wenn das Objekt
- vollstaendig abgearbeitet wurde, nicht schon beim Aufruf der Funktion
- replace_program(). Das kann dazu fuehren, dass Closures auf inzwischen
- verschwundene Lfuns des Objekts referenzieren. Das stellt allerdings
- kein Problem dar, solange diese Referenzen nicht ausgefuehrt werden.
+ The program replacement does not take place with the call to the efun,
+ but is merely scheduled to be carried out at the end of the backend
+ cycle. This may cause closures to have references to then vanished
+ lfuns of the object. This poses no problem as long as these references
+ are never executed after they became invalid.
-GESCHICHTE
- LDMud 3.2.9 liess zu, dass das Argument <program> weggelassen wird,
- wenn nur ein Inherit existiert.
+HISTORY
+ LDMud 3.2.9 allowed to omit the argument if only one inherit
+ exists.