LDMud 3.3 (development)
Version: 3.3.716
Release Date: 14. Oct 2007
|
|
|
Downloads:
|
Full Change History.
|
This is the bleeding edge development version of LDMud. It serves as an
environment to implement experimental features, thorough changes to the
code base and generally code dangerously. Obviously this is not the driver
you want to run a production mud on - for that you'd be better of
with the Stable version of the driver.
Everybody else, have fun!
Summary of Changes in 3.3.716
- Changed Efuns:
-
load_object():The object name must not be empty (Bug #500).
- Fixed Crashers:
- Size-changing mapping operations didn't fully check for destructed
objects as keys, sometimes derefencing invalid pointers in
the process (Bug #517).
- Removed a crasher when running with --check-refcounts: References
by snooping non-interactives weren't counted (Bug #492).
- Loading an object with an empty name twice could crash the
driver (Bug #500).
-
clone_object():When initializing a clone's variables
using #pragma share_variables, really use the variables from the
blueprint object being given. This allows the handling of
inherited blueprint objects with replaced programs. (Bug #483)
- An argument mismatch error during a lfun-closure call could
crash the driver. (Bug #495).
- The definition 'struct abc abc;' could crash the driver. (Bug #494)
- The use of local undefined structs as
struct abc abc = (<abc>)
could crash the driver. (Bug #493)
- Compiler:
- The lfuns backing the inline closures are again 'private nomask'.
- Runtime:
-
foreach(int i: num) recognizes if num is negative and throws
an error. (Bug #503)
- The handling of charmode with combine-charset could lead to
premature socket closing if present with longer data than the
input buffer could at one time. (Bug #442)
- The Apply-Cache statistics counters should overflow less often
(Bug #520).
- If a simul_efun object appears before being 'blessed', that
object is rejected to avoid variable/function inconsistency bugs.
(Bug #489).
- Other:
- The autoconfiguration of YACC was incompatible with gentoo Linux.
- Removed a few (partly fatal) 64-bit issues (Bug #490, #491).
- Removed a memory leak when catching errors inside
master::runtime_error() (Bug #513).
Summary of Changes in 3.3.715
- New efuns:
-
tls_refresh_certs(): Reload the certificates and
certificate revocation information.
- Other Changes:
- New commandline options to handle certification revocations:
--tls-crlfile and --tls-crldirectory.
14-Oct-2007 (Lars Duening) 3.3.716
14-Oct-2007 (Gnomi)
- (prolang.y, lex.c) UNKNOWN identifiers are kept around until the
end of the compilation, as some parser rules can look-ahead multiple
tokens pointing to the same UNKNOWN identifier, so an early free
will lead to references to invalid memory. Keeping them that
long is a bit of overkill, but more future-proof (Bug #494).
- (prolang.y) Struct names are searched only the global namespace
as that is where structs are defined. Searched in the local
namespace can get the driver confused with references to
undefined structs. (Bug #493)
- (simul_efun.c) If a simul_efun object appeared before being blessed
explicitely, it may be an old backup copy. This situation is
now rejected as the variable/function definitions may differ
subtly. (Bug #489)
13-Oct-2007 (Lars Duening)
- (interpret, simulate.c) Changed the apply cache counters to 'unsigned
long' to reduce the possibility of an overflow (Bug #520).
- (interpret.c) setup_new_frame() now updates the csp->funstart entry
by itself, instead of having the caller do it. This is not just
more convenient, but also avoids problems with possible errors
during its execution (as the error handling will try to create
a stack trace). (Bug #495)
07-Oct-2007 (Lars Duening)
- (comm.c) When in charmode, don't attempt to read in as much data
as the buffer has left space: otherwise the handling of such an
'overlong command' confuses the charmode engine and causes the socket
to close prematurely. Yes, this is more a workaround than a real fix
(Bug #442).
- (simulate, interpret) The value thrown in a catch is now held in
the catch context could be leaked if a second error happens and
is caught in the master::runtime_error() handler (Bug #513).
- (configure) When testing for libiconv, reference a real libiconv method.
This catches situations where libiconv exists, but is of the
wrong architecture.
06-Oct-2007 (Lars Duening)
- (configure) gentoo Linux requires the '-n' argument for 'tail +2' to
work correctly (thanks, Juanjo!).
- (comm.c) Removed a crasher when running with --check-refcounts: References
by snooping non-interactives weren't counted (Bug #492).
- (sprintf.c) Removed a 64-bit issue (comparison of two values with
differing value ranges) (Bug #490)
- (prolang.y) upd_long() and read_long() weren't 64-bit-safe (even though
ins_long() already was) (Bug 491).
- (prolang.y) With the corrections to the inheritance handling done some
time ago, the lfuns backing inline closure can be again made 'private
nomask' (Bug #511).
- (simulate.c) load_object(): The object filename to load must not be
empty (Bug #500).
- (mstrings, obtable.c) Made sure that otable uses the same hasher
as mstring (Bug #500).
- (object, simulate.c) clone_object(): When initializing a clone's variables
using #pragma share_variables, really use the variables from the
blueprint object being given, not relying on the program.
This allows the handling of inherited blueprint objects with replaced
programs. (Bug #483)
- (simulate.c) replace_program(): If the program of a blueprint is replaced,
the old program's blueprint pointer is NULLed out as it is no longer
accurate. (Bug #483)
- (mudlib/uni-crasher/crasher.c) 'New' version from Bug #91.
- (my-rusage.h, files.c) Removed obsolete macro PROT() (Bug #504).
- (interpret.c)
foreach(int i : negative number) now throws an error
(Bug #503).
03-Oct-2007 (Lars Duening)
- (mapping.c, object.c) Removed C-99 features.
01-Oct-2007 (Gnomi)
- (mapping.c) resize_mapping() didn't check for destructed objects as keys,
which made operations like
map-([0]) after an object destruction
potentially fatal (Bug #517).
30-Sep-2007 (Lars Duening) 3.3.715
04-Nov-2006 (Lars Duening, Philip Hancke)
- (pkg-tls, main.c) Added new options --tls-crlfile and --tls-crldirectory
to hold the Certificate Revocation information.
- (pkg-tls, func_spec) New efun tls_refresh_certs() to reload the
certificates and certificate revocations.
Last update: Sun, 14 Oct 2007 22:52:09 -0600