summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornop <nop>1999-10-04 02:43:03 (GMT)
committernop <nop>1999-10-04 02:43:03 (GMT)
commita72a1ae13e40a03eead06a912d1f92a013286266 (patch)
tree23be58c50ea389ee3162832750af3f20d6a75558
parent3d7feda912a976a0ee8dafe9f21a0cfcf83c6f9b (diff)
downloadmoo-cvs-a72a1ae13e40a03eead06a912d1f92a013286266.zip
moo-cvs-a72a1ae13e40a03eead06a912d1f92a013286266.tar.gz
moo-cvs-a72a1ae13e40a03eead06a912d1f92a013286266.tar.bz2
moo-cvs-a72a1ae13e40a03eead06a912d1f92a013286266.tar.xz
ChangeLog and README munging in prep for 1.8.1.
-rw-r--r--ChangeLog.txt58
-rw-r--r--README.r616
-rw-r--r--README.r78
-rw-r--r--README.r86
-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
diff --git a/README.r5 b/README.rX
index 0cb1d80..7bd7804 100644
--- a/README.r5
+++ b/README.rX
@@ -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.]