Fri Mar 30 17:14:07 2001 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b11
* #143: Fixed crashes when destructing various objects involved
in APPLY_INIT calls. Based on patches from Mark G. Adams
* Removed the definition of FP_THIS_OBJECT from
include/function.h since it is not used anywhere and conflicts
with FP_HAS_ARGUMENTS [reported by Arren@AnarresII]
* #148: Disallow load_object() with a filename containing a #
(indicative of a clone). [reported by Pickett@Sumu]
* #149: Crash when removing a function from the simul_efun when
that function is also defined by another object that is then
inherited and recompiled the second time after the function is
removed from the simul_efun object (whew!) [reported by
Avenger@AtP]
* #141: __FILE__ cannot be included multiple times [reported by
Arren@Anarres]
* #140: Fixed a crasher in kill_ref(). Problem occured using a
ref in foreach on a string [reported by Uranus, test case that
finally exposed the problem reported by Pickett@Sumu]
* Fixed foreach() in LPC2C generated code. Updated it to add
the "new" support for the ref keyword in foreach.
* #48: sprintf() from master::error_handler() dumps int instead
of string in 'locals'. Should be fixed up now [reported by
Javelin@Vincent's Hollow]
Mon Feb 12 16:09:42 2001 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b10
* #129: Added SLC_NAMELIST to the telnet.h included with MudOS
for broken systems that are missing <arpa/telnet.h>
[reported by Andrew@Nanvaent]
* #120: Fixed compilation problems when NO_RESETS is defined.
[reported by Arren@Anarres II]
* #139: Fixed a crasher when using a foreach ref within another
foreach loop [reported by Pickett@Sumu]
* #136: Fixed a problem with compiling a program after the
previous program had a compile error inside of a function
pointer [reported by Avenger@AtP]
* #131: Fixed some oddness with to_int(), in particular, a
single digit followed by a whitespace character would return
undefined which is incorrect [reported by
kriton@gameworkshop.com]
* #135: Macro names must begin with either an underscore or a
letter. Successive characters may be digits [reported by
Arren@Anarres II]
Mon Nov 6 18:48:25 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b9
* #104: Corrected the spelling of "ninth" which is used by
the parse_sentence() efun. [reported by lundberg@vr.net]
* #97: More fixes for get_char() when GET_CHAR_IS_BUFFERED is
enabled [fixes from Pelle Johansson]
* #111: Plural of "lotus" is "lotuses" [reported by
Turrican@Discworld]
* #109: Fixed inline program reference increments to use the
reference_prog() function. [Reported by Andrew@Nanvaent]
* #110: Fix a bad call to free_string_svalue() in
f_write_buffer(). The call should be free_svalue() instead.
[reported by Beyond]
* #103: Runtime errors in heart_beat will no longer stop the
entire process. The next heart_beat will run, call_outs
will run, and the time will continue to advance. This is a
bug that is older than old [reported by Scatter]
Wed Sep 27 08:20:05 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b8
* #83: Fixed get_char() when GET_CHAR_IS_BUFFERED is enabled.
Make sure that the string returned is null terminated and
TELOPT_SGA is handled properly [patch from Pelle Johansson]
* #84: Fixed a ref count problem with the connect() master
apply when 0 is returned.
* #86: Using default access modifiers, do not issue an error
if a conflicting modifier is used [reported by Mystic]
* #77: Fixed a crasher when calling map_delete() from filter()
on the mapping being filtered. [reported by Andrew@Nanvaent]
* #79: In certain cases generating a loop, a flag indicating
the code that follows is not reached was being erroneously
set, causing the code to not generate/compile properly
[reported by Uranus]
* #80: If a function is declared but not defined, don't enter
it in the function table when generating C source for LPC.
[reported by Uranus]
* #90: Fixed a problem with inheriting multiple objects that
each define classes and have functions with arguments using
those classes. Properly adjust the types for validating
arguments [reported by Randor@Aurora]
* #81: Filled in missing definitions for reference support for
LPC_TO_C [reported by Uranus]
Thu Sep 21 14:16:49 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b7
* #75: Fixed a typo in C_TRANSFER_LOCAL macro added in v22.2b6
[reported by Uranus]
* #63: Fixed heart_beat errors for optimized builds.
[reported by scatter@thevortex.com]
* #71: For MySQL support, all string/char/text/blob field types
will now be returned as strings by default unless the field
has the BINARY modifier applied to it, in which case a buffer
will be returned.
* #76: Filenames containing '//' are now allowed -- multiple
slashes are stripped down to a single slash [patch from
Skullslayer@RoD]
* Loading a binary now checks the simul_efun date to see if it
has been modified (in addition to driver, includes, config,
etc.) [from Bugs]
Mon Sep 18 20:19:20 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b6
* #57: Fixed a problem with single quotes inside of a macro
expansion [reported by Mystic]
* #64: Fixed unresolved symbol c_transfer_local for LPC_TO_C.
Only used when LPC optimization is on [reported by Uranus]
* #63: Fixed an error in heart_beat causing heart_beat() to
get called repeatedly [reported by scatter@thevortex.com]
* #65: Added some intelligence to build.MudOS on FreeBSD to
try and determine if -export-dynamic or -rdynamic will work
for compiling. Old versions of FreeBSD do not support
them [reported by darren@nighttide.net]
* Enabled #pragma optimize
* #73: Fixed memory_summary() efun to handle recursive data
structures [reported by Avenger@AtP]
* If NO_BUFFER_TYPE is defined, MySQL BLOB fields will be
treated as TEXT fields.
* #50: Fixed a crasher with recursive inherits deeper than the
maximum call depth [reported by Beyond]
Sat Sep 9 16:16:54 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b5
* #16: 'ref' works in foreach again [originally reported by
Uranus]
* #54: Added a new search location for mysql.h to satisfy RPM
installs on Linux from MySQL.com. Also fixed edit_source to
search for libmysqlclient.so properly [reported by jytong]
* #49: Fixed oldcrypt() to actually be oldcrypt() when
CUSTOM_CRYPT is defined [reported by Beyond]
* Fixed a crasher when heart beats and the command_giver is
shadowed [reported by Andrew@Nanvaent]
* Removed Beek's expand_all_defines hack introduced in v22.2a3.
This caused an undesirable compat buster from older versions
of MudOS. Instead, fixed macro expansion to work according
to the ANSI C standard -- almost. The only major difference
now is that comments are not considered whitespace everywhere
that they should be.
Sat Sep 2 09:40:38 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b4
* updated with respect to v22.1pre4
* #40: Fixed compilation error in add_action.c [reported by
Loriel@LimaBean]
* Don't call the first heart_beat until after saving the
initial error context, otherwise an error in heart_beats
or call_outs (set by preloads) will cause a crash.
* #47: When using OLD_ED with a broken client that does not
send CRLF for end of line, don't inadvertantly strip off the
first character of the next command if there are multiple
commands in the input buffer [reportd by fchen@uno.edu]
* #45: Added 'an' as a special word equivilent to 'a' and 'any'
Also, change ordinal for 'a', 'an' and 'any' to 1 from -1.
I'm not sure of the original intent in supporting -1, but the
end result is the same -- at least it's supposed to be. 1
works, -1 doesn't. [reported by Zifnab@Red Dragon]
Mon Aug 28 08:16:50 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b3
* updated with respect to v22.1pre3
* #15: Picked up the fix from v22.1pre2 that was missed in the
last revision for some reason
* #17, #26: Removed a chunk of old dead code for binaries
support that has been obsoleted since function tables are
always sorted and compressed now. Other new code had since
been written assuming this and not handling the (unnecessary)
binaries cases, causing the driver to crash in certain
instances [reported by ackers@coolnet.net, Beyond@Lima]
* #30: If an object has had its program replace, mark the
string that holds its name. Also make sure that it gets
freed properly when the object is deallocated [reported by
Uranus]
Wed Aug 23 05:08:05 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b2
* updated with respect to v22.1pre2
* #4: fixed a problem with using the third defined class in an
object as an argument to a function getting treated
incorrectly as void [reported by Loriel@LimaBean]
* #8: Fix compile problem when both DEBUGMALLOC_EXTENSIONS and
PACKAGE_UIDS are defined [reported by Skullslayer@RoD]
* #16: With COMPAT_32 defined, '&' is now a synonym for 'ref'
everywhere that is appropriate [reported by Uranus]
* #19: Made fixes so that RUNTIME_LOADING will work on FreeBSD
[problem reported by Uranus]
* #23: Corrected arguments passed to compile_object() master
apply when cloning a virtual object [reported by Uranus]
Sun Aug 13 22:25:28 CDT 2000 (mmessier@prilnari.com (Marius))
* raised patchlevel to v22.2b1
* updated with respect to v22.1pre1
* fixed a memory leak with MUD port external ports leaking
ref counted objects received (arrays, mappings, etc.)
* fixed up check_memory() code to do proper checks:
. mark_apply_low_cache now bumps extra_ref for each
cache entry's oprogp and progp as appropriate
. dangling object list is checked for missing objects,
and if found, a more appropriate error is reported.
. TAG_SIMULS is used for master applies, so changed the
test in md.c to 3 rather than 2 uses for this tag.
. added marks to objects on the command_giver stack
* PACKAGE_DB compiles again
* properly free an added reference when establishing a new
user connection after APPLY_CONNECT is called.
* fixed a memory leak when updating the master object. The
master apply table reallocated memory without freeing the
previous table.
* 'void' is now acceptable as an argument list for a function
that takes no arguments. If used, it must be the first and
only argument, and it must not be named. Also updated the
testsuite to handle this.
* COMPAT BUSTER: SERVER_IP is no longer supported. Use the
runtime config option 'mud ip' to bind to a specific address.
addr_server and portbind have both been updated to accept a
parameter to specify a dotted decimal ip address to bind to.
Examples:
. portbind -i 192.168.1.1 -p 4000
. addr_server 7334 192.168.1.1
* COMPAT BUSTER: FD6_KIND and FD6_PORT are no longer supported
as compile time options. Set 'fd6 kind' and 'fd6 port' in
your config file to use them. You may use 'telnet', 'mud',
'binary' or 'ascii' as the kind. Additionally, you must now
always specify -p to portbind to specify the port to bind to.
* fixed various crashers in handling eof conditions while
compiling, particularly in unexpected locations (comment,
array block, text block, etc.)
* when DEBUGMALLOC_EXTENSIONS is enabled, free up some compiler
scribble space that is normally reused (cleans up errors that
check_memory() reports)
* fixed a crasher involving BINARIES being defined, functions
being inherited and prototypes, and all sorts of other weird
assorted nonsense [reported by Mystic]
* new options:
. GET_CHAR_IS_BUFFERED
. USE_32BIT_ADDRESSING
. NUM_EXTERNAL_CMDS
* features:
. new efun: socket_status()
. classes can be inherited multiple times so long as the definitions
are consistent
. implemented MUD mode external ports
. improved warnings for code with no side effects
. resolve() can now take a function pointer as the second arg
. filter() can now iterate over each character of a string
. LPC programs can now exceed 64k in size with USE_32BIT_ADDRESSING
. deep_inventory() and living() now default to this_object()
. cp() now errors like mv() when source and dest are the same
. -> syntax now uses call_other() simul_efun if one exists
. function tables are now always compressed
. '&' is now a synonym for 'ref' when COMPAT_32 is defined
. added #warn and #error preprocess directives
. when no address server connection exists, an attempt will be made
once every fifteen minutes to establish one.
. (s)printf() is now re-entrant, so it can be used from the
object_name() master apply.
. on most platforms, localtime() efun adds a new element to the array
it returns indicating daylight savings time
. the 3rd argument to tell_room() can now be an object
. when COMPAT_32 is defined, closeurep becomes an alias for functionp
. added extensive socket statistics and network_stats() as a new
contrib efun to retrieve these stats.
. socket_bind() now takes an optional 3rd argument that is the address
to bind to rather than INADDR_ANY or the 'mud ip' config address.
. socket_address() now takes an optional 2nd argument to get the local
address for a socket
. all objects now 'inherit' the class definitions from the simul_efun
object if there are any.
. restructured PACKAGE_DB to make it easier to add more database
support
. added support for MySQL in addition to MSQL to PACKAGE_DB
. compile_object() master apply now gets a second argument indicating
whether or not a clone is being done
. compile_object() master apply now gets arguments passed to new()
when cloning a virtual object as they'd be passed to create() in a
real object.
. implemented rfc 1184 (telnet linemode option) to be support running
on port 23.
* parser enhancements:
. new error ERR_MANY_PATHS
. new modifier ':c' that means just choose the first one found
. two object rules are examined more thoroughly. This changes the
semantics for direct_ and indirect_ applies. They can now be called
with 0s as the object-type arguments, but it is now guaranteed that
they will be called with filled object arguments at least once
during the processing of a rule.
. added optional 3rd and 4th arguments to parse_sentence(). The 3rd
is an array of objects to use in the parse instead of the inventory
of the user's environment. Nested arrays indicate containment. The
4th is mapping of string -> object which can be used to supply
nicknames and similar things.
* COMPAT BUSTERs:
. dump_socket_status() efun is gone, see socket_status()
. SERVER_IP is no longer a compile-time option. it is now a runtime
configuration option called "mud ip"
. when COMPAT_32 is defined with PACKAGE_UIDS, the uid assigned to a
new object is the euid of the current object rather than the uid of
the current object.
. when loading/cloning a virtual object, mudlib stats, uid/euid and
privs are now properly reset with the newly assigned object name.