diff options
author | nop <nop> | 1999-10-04 02:43:03 +0000 |
---|---|---|
committer | nop <nop> | 1999-10-04 02:43:03 +0000 |
commit | a72a1ae13e40a03eead06a912d1f92a013286266 (patch) | |
tree | 23be58c50ea389ee3162832750af3f20d6a75558 | |
parent | 3d7feda912a976a0ee8dafe9f21a0cfcf83c6f9b (diff) | |
download | moo-a72a1ae13e40a03eead06a912d1f92a013286266.tar.gz moo-a72a1ae13e40a03eead06a912d1f92a013286266.tar.xz moo-a72a1ae13e40a03eead06a912d1f92a013286266.zip |
ChangeLog and README munging in prep for 1.8.1.
-rw-r--r-- | ChangeLog.txt | 58 | ||||
-rw-r--r-- | README.r6 | 16 | ||||
-rw-r--r-- | README.r7 | 8 | ||||
-rw-r--r-- | README.r8 | 6 | ||||
-rw-r--r-- | README.rX (renamed from README.r5) | 108 |
5 files changed, 88 insertions, 108 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt index 1fa0fb0..50ae2d6 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -2312,3 +2312,61 @@ Version 1.8.0p6 (Report from Joe Shaw, fix from Pavel.) -- Fixed bug where toint() accepted arguments that were not syntactically correct (e.g., "-+5", "- 3"). Report from tijmen@dse.nl. + + Version 1.8.1 +-- New maintainers: Ben Jackson (ben@ben.com) and Jay Carlson (nop@nop.com) +-- No significant user-visible changes to server behavior. +-- Many internal memory usage bugs fixed. +-- Server is significantly (200-400%) faster. +-- Merged rX series of patches. +**** Changes significant to programmers, wizards, and people compiling + the server follow: +-- After modifying properties on $server_options, wizards must call + the new built-in function `load_server_options()'. Changes made + may not take effect until this function is called. This allows the + server to cache option values internally; this significantly speeds + up built-in function invocation. +-- The server now caches verbname-to-Program lookups. See README.rX + for details. Two new built-in functions, `log_cache_stats()' and + `verb_cache_stats()' allow wizards to peer into verb cache + statistics. +-- options.h now #defines IGNORE_PROP_PROTECTED by default. If it is + defined, the server ignores all attempts to protect built-in + properties (such as $server_options.protect_location). Protecting + properties is a significant performance hit, and most MOOs do not + use this functionality. +-- The default input and output buffer sizes in options.h are now 64k. +-- As the server loads the database, it "interns" all strings it + encounters, ensuring there initially will be one and only one + in-memory copy of each unique string. This saves significant + amounts of memory for many medium and large databases---20-30% on + JHM. The table used to uniquify strings is discarded after the + database is loaded, but depending on the OS memory allocation + strategy, the full savings may not be apparent through tools like + "ps" and "top". Unused process space simply will be swapped out by + the OS over time. +-- MOO code operations that manipulate lists now avoid copying the old + list value in some situations. For example, `l[a] = b' will be + significantly faster for long lists, if `l' is the only reference + to the underlying list. This optimization can only be done outside + of error-handling expressions and `try' statements. +-- The server now declares some C functions as "static inline". If + your C compiler doesn't understand this gcc-style declaration, add + "-Dinline=" to CFLAGS in the Makefile. (This gross requirement + will go away once we upgrade to modern autoconf scripts.) +-- There's primitive support for the 32-bit memory model for reducing + memory usage on the DEC Alpha using DEC cc. See + SHORT_ALPHA_VAR_POINTERS in structures.h. +**** Critical changes significant to server hackers follow: +-- All C source code was processed with GNU indent using the settings + in the file `.indent.pro'. This is an attempt to normalize coding + style. This also breaks patch files against 1.8.0p6. +-- The Memory_Type passed to mymalloc is now more significant. In + particular, use of M_STRING as the typing for `void *' will break + your code, due to poor interactions with the new reference counting + system and alignment restrictions. Only use M_STRING for strings. + To allocate a new kind of storage with mymalloc(), add a new type + name to the Memory_Type enum in storage.h. (You can currently get + away with reusing a type like M_VM, but this may break eventually.) +-- Server hackers should read README.rX for more information on + changes to server internals. diff --git a/README.r6 b/README.r6 deleted file mode 100644 index 81c8572..0000000 --- a/README.r6 +++ /dev/null @@ -1,16 +0,0 @@ -This is an interim release; no full Changelog available yet. Once we -get some feedback from sites running this and it looks like we're -stable, this will probably be renamed to something like 1.8.1. - -The two big changes in r6 over r5 are: - - o Bytecode optimizations to try to modify lists in-place whenever -possible. List manipulation and mutation should be orders of -magnitude faster in some cases. - - o String "interning" during load; initially, there will be one and -only one in-memory copy of each identical string. (In JHCore that -means we only allocate memory for "do" once...) - -Ben Jackson ben@ben.com -Jay Carlson nop@nop.com diff --git a/README.r7 b/README.r7 deleted file mode 100644 index f101aca..0000000 --- a/README.r7 +++ /dev/null @@ -1,8 +0,0 @@ -This is another interim release; no full Changelog available yet. - -r7 fixes BYTECODE_REDUCE_REF. It's now safe to turn on. - -The default input and output buffer sizes in options.h are now 64k. - -Ben Jackson ben@ben.com -Jay Carlson nop@nop.com diff --git a/README.r8 b/README.r8 deleted file mode 100644 index d8a0f0a..0000000 --- a/README.r8 +++ /dev/null @@ -1,6 +0,0 @@ -This is another interim release; no full Changelog available yet. - -r8 adds more fixes to BYTECODE_REDUCE_REF. It's now safe to turn on. - -Ben Jackson ben@ben.com -Jay Carlson nop@nop.com @@ -1,5 +1,8 @@ -Release notes on the 1.8.0r5 patches to the LambdaMOO server -============================================================ +This file merges information from the various README.r[5-8] notes +shipped with Ben Jackson and Jay Carlson's "rogue" server patches. +The information below didn't fit well into the changelog format. + +From README.r5: 1.8.0r5 is a collection of unofficial patches to Erik Ostrom's LambdaMOO 1.8.0p6 server release. They're primarily bug fixes and @@ -11,82 +14,7 @@ that some plausible synthetic benchmarks are now two to four times faster. Users have noted that production systems running this code feel much more responsive at computationally expensive tasks. -Our thanks go out to the administrators of LambdaMOO (and some other -servers) for beta testing previous releases of this patch. Most of -the changes have been tested there and on other large systems, so good -stability is anticipated. As always we solicit bug reports and bug -fixes. If no significant problems are noted within a reasonable -period of time we may post an "all clear" message for administrators -who are really skeptical. - -This is the first public release of these patches. We hope people -will help expand and extend the MOO server in general and these -patches in particular. However, the charter of the "r" series of -patches is primarily performance and bug fixes; significant extensions -to functionality or other major changes aren't the main goal. We're -happy to look at other people's patches for inclusion although we'd -prefer them to be sent to moo-cows and to have attached lucid -explanations of the bugs they fix or how they improve performance in -the real world---profiling results and benchmarks are far better than -intuition and aesthetics as far as this goes. - -Broader changes may still be appropriate for the MOO server in -general; we urge you to discuss them on moo-cows. The person you need -to convince there is Erik as he's still the final arbiter of what will -be in the next official MOO server release. - -We feel source availability is important for the MOO community in -general. We'd like people packaging binary distributions of this -modified server for specific platforms to make source available. -Since we're not claiming copyright on our changes, the original MOO -server license still applies; we can't do anything more than think bad -thoughts at you if you decide to go against our wishes here. - -As of the time of this writing, the distribution point for this patch -is ftp://ftp.place.org/pub/moo/unofficial/ . - -Have fun with your fast new server! - -Ben Jackson ben@ben.com -Jay Carlson nop@nop.com - -================ - -There are no user-visible changes in this release, aside from -performance. - -There are three new builtin functions available to wizards: - -load_server_options() must be called after modifying -$server_options. Although doing this is not always necessary in the -current release, it's now officially undefined whether your changes to -$server_options will have any effect until you call this. - -log_cache_stats() and verb_cache_stats() provide statistics on -the verb lookup cache. - -There are a few new changes to the compilation process: - -The suggested CFLAGS is now -O2 (it's a performance release, right?) -with or without -finline-functions for gcc---you may want to -experiment and find out whether adding that flag will help. On x86 -machines the gcc flag -fomit-frame-pointer will significantly speed -things up at the cost of some ability to debug. - -In options.h, #define IGNORE_PROP_PROTECTED will skip builtin property -protection. If you don't plan on protecting (for example) .name and -.location, this define is highly recommended for performance. - -If your C compiler doesn't support gcc-style inline function -declarations (static inline int foo(int bar)) you need to compile with -"-Dinline=" in CFLAGS. - -There is experimental support for reducing memory usage on the DEC -Alpha. See SHORT_ALPHA_VAR_POINTERS in structures.h. - -More detailed (yet sketchy) change information follows. - -================ +[...] All files were run through GNU indent with settings given in .indent.pro in an attempt to normalize coding style. @@ -304,3 +232,27 @@ memory. Fixed. utils.c: var_refcount(Var v) added. Returns the refcount of any Var. + +From README.r6: + +The two big changes in r6 over r5 are: + + o Bytecode optimizations to try to modify lists in-place whenever +possible. List manipulation and mutation should be orders of +magnitude faster in some cases. + + o String "interning" during load; initially, there will be one and +only one in-memory copy of each identical string. (In JHCore that +means we only allocate memory for "do" once...) + +From README.r7: + +r7 fixes BYTECODE_REDUCE_REF. It's now safe to turn on. +[This turned out to be false.] + +The default input and output buffer sizes in options.h are now 64k. + +From README.r8: + +r8 adds more fixes to BYTECODE_REDUCE_REF. It's now safe to turn on. +[This appears to be true.] |