lp:~per.j/shr/fluffos

Created by Per Johansson and last modified

Import of fluffos releases.
I chose releases over CVS import because
1. Import the CVS repo wasn't successful
2. CVS is not stable and thus an import might break later.

Get this branch:
bzr branch lp:~per.j/shr/fluffos
Only Per Johansson can upload to this branch. If you are Per Johansson please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Per Johansson
Project:
Shattered Realms
Status:
Development

Recent revisions

56. By Per Johansson

Import fluffos 2.20
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:35 +0000
+++ ChangeLog.fluffos-2.x 2010-04-22 18:54:07 +0000
@@ -2,6 +2,25 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.20
+more error check in malloc64
+bigger arrays (up to 2^31 elements)
+bigger mappings (see arrays)
+more efficient clean_up()
+setting sockets to close on exec done in a more compatible way (only worked on rather new linux kernels)
+no longer sends mccp messages when already compressed (fixes older cmud vversions)
+some cleanups for compiler warnings
+new roulette_wheel() efun in the dwlib package (Woom)
+new replace_objects() efun int the dwlib package (replaces all object references in the argument with filenames recursively)
+check_valid_path apply now also used for compile paths (source files)
+32BIT fix (Kalinash)
+use less chars for string hashes (faster)
+correctly do tables in (s)printf with utf-8 strings
+use the already existing precalculated string hashes more often
+save string length for bigger strings as well instead of using strlen on strings > 64k all the time
+NetBSD IPV6 fix (Tiz)
+fixed crasher in reference_allowed() (in dwlib.c)
+
 FluffOS 2.19
 attempt to fix string block alignments. hopefuly helps sparc64
 open sockets as close on exec if available (so they don't end up in external programs started from the driver)
@@ -9,8 +28,8 @@
 fix bug with freeing an object table in backend.c
 some fixes for sparc64 (Kalinash)
 added missing Mysql data types so they don't always get returned as 0 anymore
-changed some optional efun args to default to 0 instead for slightly cleaner code (woom)
-new addition to pluralize() (diff from cratylus)
+changed some optional efun args to default to 0 instead for slightly cleaner code (Woom)
+new addition to pluralize() (diff from Cratylus)

 FluffOS 2.18
 compiles for netbsd (tiz)

55. By Per Johansson

Import fluffos 2.19
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:29 +0000
+++ ChangeLog.fluffos-2.x 2010-01-17 19:38:50 +0000
@@ -2,6 +2,16 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.19
+attempt to fix string block alignments. hopefuly helps sparc64
+open sockets as close on exec if available (so they don't end up in external programs started from the driver)
+fix conflict between ed and solaris (both used the same define!)
+fix bug with freeing an object table in backend.c
+some fixes for sparc64 (Kalinash)
+added missing Mysql data types so they don't always get returned as 0 anymore
+changed some optional efun args to default to 0 instead for slightly cleaner code (woom)
+new addition to pluralize() (diff from cratylus)
+
 FluffOS 2.18
 compiles for netbsd (tiz)
 make more empty arrays point to the_null_array, saves memory and allows
@@ -18,6 +28,7 @@
 parser changed to be less strict (Cratylus)
 stop wasting memory if repeat_string would exceed max string size (reported by woom)
 fixed crasher in pragma optimize
+
 FluffOS 2.17
 math package updates: Added vector norm, dotprod, distance, angle.
      Also added log2() and round() which works on floats (surprisingly useful).

54. By Per Johansson

Import fluffos 2.18
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:25 +0000
+++ ChangeLog.fluffos-2.x 2009-10-19 19:02:22 +0000
@@ -2,6 +2,22 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.18
+compiles for netbsd (tiz)
+make more empty arrays point to the_null_array, saves memory and allows
+ comparing with ({}) to see if arrays are empty (reported by Woom)
+clear this_user etc when runtimes get us all the way back to backend()
+fix the inherits() return value if the inherit was indirectly inherited
+ (reported by Woom)
+member_array now return -1 for failure if you search beyond the end of the array
+ (reported by Woom)
+no longer loops forever when adding a reference whole destructing things with
+ too many references
+fixed crasher in async db_exec
+fixed crasher in filedescriptor leak fix
+parser changed to be less strict (Cratylus)
+stop wasting memory if repeat_string would exceed max string size (reported by woom)
+fixed crasher in pragma optimize
 FluffOS 2.17
 math package updates: Added vector norm, dotprod, distance, angle.
      Also added log2() and round() which works on floats (surprisingly useful).

53. By Per Johansson

Import fluffos 2.17
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:22 +0000
+++ ChangeLog.fluffos-2.x 2009-09-14 22:20:59 +0000
@@ -2,6 +2,46 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.17
+math package updates: Added vector norm, dotprod, distance, angle.
+ Also added log2() and round() which works on floats (surprisingly useful).
+ Added int args to the efuns as apppropriate (Hamlet)
+fixed above so the int args actually work without needing casts for the result
+fixed 64bit malloc for large allocations (never happened on dw, so I doubt it was a problem!)
+added 32bit malloc (malloc32) which is sysmalloc with realloc replaced by
+ malloc->memcpy->free, saves lots of memory
+telnet environment support (Cratylus)
+windows compile fix for add_action (Cratylus)
+added dtrace support! just define DTRACE in local_options if you have it
+zmp support
+ zmp calls from the client result in an apply on the player object
+ zmp_command(string command, string *args);
+ sending zmp is done with
+ send_zmp(string command, string *args);
+ check if a player supports zmp, returns 1 if they do, 0 otherwise.
+ has_zmp(object player)
+ note: zmp protocol is just a way to transfer information for zmp packages,
+ You'll still need to implement those in LPC
+fixed the use of select()
+compiles with C++ again (with dw's local_options anyway)
+even more places to look for mysql libs
+fixed profiling recursive functions
+fixed profiling when a runtime error happens
+fixed filedescriptor leak with compressed save files
+fixed crasher in unloading object programs (this should have happened constantly
+ , so there's probably a bug preventing this from actually happening most
+ of the time).
+the driver now finishes all async IO before finishing shutdown()
+blocked socket fix for lpc network sockets (Hamlet)
+package async now does sql!
+ async_db_exec(int db, string request, function callback);
+ don't use the same database handle with this call if you also use it
+ with db_exec(), just make an extra connection for your async sql.
+new efun restore_from_string(string savedata), does what it says on the tin,
+ the string format is the same as a save file.
+added optional int argument to request_term_size(). If 0, the client is asked
+ _not_ to offer any further term size updates (Hamlet, suggested by Detah)
+
 FluffOS 2.16
 improved single char mode support (Cratylus)
   this includes some new efuns:
@@ -27,6 +67,7 @@
       function doesn't exist, if it does but didn't include one of those fields
       the driver will add the field as those are required.
 new malloc option malloc64 which tries to avoid needing big copies on realloc by spreading all allocations a few MB apart in virtual memory.
+
 FluffOS 2.15:
 IPV6 support
 class stats (Skullslayer@Realms of the Dragon)

52. By Per Johansson

Import fluffos 2.16
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:17 +0000
+++ ChangeLog.fluffos-2.x 2009-04-20 20:06:50 +0000
@@ -2,6 +2,31 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.16
+improved single char mode support (Cratylus)
+ this includes some new efuns:
+ int query_charmode(object);
+ int remove_charmode(object);
+ int remove_get_char(object);
+efun to send nullbytes (Raudhrskal)
+ int send_nullbyte(object);
+improved ed failure mess (Cratylus)
+new no arguments version of save_object, which returns the save string
+fix to stop iconv looping forever
+faster hashing for big strings (now stops after 1000 chars)
+some new predefines (Cratylus)
+async io fixes, sadly now requires pthreads
+parser update (Cratylus)
+sqlite support (Ajandurah@Demonslair)
+compile warning fixes (Ajandurah@Demonslair)
+crypto and sha1 package (Ajandurah@Demonslair)
+added MSSP support, the driver will call get_mud_stats() on the master ob,
+ which should return a mapping with the keys/values, if a value is an
+ array of strings they'll all be sent as values for that key. The driver
+ send the NAME (from config file) PLAYERS and UPTIME values if the
+ function doesn't exist, if it does but didn't include one of those fields
+ the driver will add the field as those are required.
+new malloc option malloc64 which tries to avoid needing big copies on realloc by spreading all allocations a few MB apart in virtual memory.
 FluffOS 2.15:
 IPV6 support
 class stats (Skullslayer@Realms of the Dragon)

51. By Per Johansson

Import fluffos 2.15
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:14 +0000
+++ ChangeLog.fluffos-2.x 2009-01-23 20:21:23 +0000
@@ -2,6 +2,17 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.15:
+IPV6 support
+class stats (Skullslayer@Realms of the Dragon)
+some console additions see 'help' in the console (Hamlet)
+some 64 bit fixes (Woom)
+compiles with C90 compilers (that's 19!!! years ago now) (<email address hidden>)
+added string_difference(string, string) which returns the difference between strings as a number (Woom)
+updated MySQL support (<email address hidden>)
+fixed crasher when the master apply doesn't allow an object to be created
+
+
 FluffOS 2.14:
 fixed crasher in async writes.
 fixed bug in switch/case when using more than 2GB memory

50. By Per Johansson

Import fluffos 2.14
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:11 +0000
+++ ChangeLog.fluffos-2.x 2008-10-26 18:02:39 +0000
@@ -2,6 +2,16 @@
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.

+FluffOS 2.14:
+fixed crasher in async writes.
+fixed bug in switch/case when using more than 2GB memory
+check 64 bit lib before 32 bit version for mysql
+support classes in member_array
+fixed copyright statement in regex file
+fixed memory leak in large shared strings
+fixed some memory leaks in async io
+use clone_object sefun (if present) when cloning objects with new() (Kalinash)
+
 FluffOS 2.13:
 oh no! unlucky number
 removed binaries support

49. By Per Johansson

Import fluffos 2.13
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:09 +0000
+++ ChangeLog.fluffos-2.x 2008-08-15 22:15:53 +0000
@@ -1,6 +1,23 @@
 As MudOS is moving too slow to keep our driver hacks apart, we now call our own
 FluffOS :), note: where it says Cratylus, I got it from his version, usually
 someone else did the work, but I don't know how to find who did what there.
+
+FluffOS 2.13:
+oh no! unlucky number
+removed binaries support
+fixed crasher in restore_string
+fixed some new compiler warnings (gcc 4.3)
+some cleanups in comm.c (Cratylus@Dead souls)
+cygwin and other changes in build.FluffOS (Cratylus@Dead souls)
+set program_t to {0} for silly OSes that don't clear BBS memory (Cratylus@Dead souls)
+ (I think there may be more places that could go wrong!)
+changed locale to "C" (Cratylus@Dead souls)
+Added a console, mostly for debugging use. If driver is started directly
+ rather than through a script, add argument -C and it has a
+ command-line. try 'help'. HAS_CONSOLE must be defined in
+ local_options. (hamlet)
+fixed crasher where we did remove_interactive when people go netdead, bad idea!
+
 FluffOS 2.12:
 Crasher fixes in using a mudlib error handler (Cratylus@Dead souls)
 some mingw fixes (Cratylus@Dead souls)
@@ -17,15 +34,12 @@
         will indent each level. (hamlet)
 fixed several crashers (comm.c and simulate.c) related to using vsprintf
  instead of vsnprintf. (hamlet)
-time() now takes an optional arg of 1. time() remains the same: "when did
- this execution begin" time(1) return real current time (via possibly
- costly system call). (hamlet)
 added CFG_MAX_GLOBAL_VARIABLES to options.h. Old setting was an arbitrary 256.
         (hamlet)
 async writes with compression
 fixed some memory leaks
 stuff I forgot, it's been too long!
-slightly usuful sfuns if you use async:
+slightly useful sfuns if you use async:

 void decode(object ob, int flag, function cb, string saved){
   string *lines = explode(saved, "\n");

48. By Per Johansson

Import fluffos 2.12
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:06 +0000
+++ ChangeLog.fluffos-2.x 2008-07-09 20:20:10 +0000
@@ -1,16 +1,82 @@
 As MudOS is moving too slow to keep our driver hacks apart, we now call our own
-FluffOS :)
+FluffOS :), note: where it says Cratylus, I got it from his version, usually
+someone else did the work, but I don't know how to find who did what there.
+FluffOS 2.12:
+Crasher fixes in using a mudlib error handler (Cratylus@Dead souls)
+some mingw fixes (Cratylus@Dead souls)
+new localoptions.ds (Cratylus@Dead souls)
+rework of ed to do larger output chunks, more configurability, and bugfixes:
+ mixed receive_ed(string msg, string fname) apply in playerob to
+ doctor the text (return 0 to have ed output to screen, 1 to have ed
+ output nothing, or return a new string for ed to output). Need to
+ define RECEIVE_ED in options.h. ed_start() and ed() take optional
+ final arg specifying lines on user's screen. Indentant fixed for
+ 'foreach' and lines with only '//'. z++ and z-- now work. Optional
+ new compile-time defines: ED_INDENT_CASE (should we indent 'case'
+ after 'switch'?) and ED_INDENT_SPACES <num> for how far autoindent
+ will indent each level. (hamlet)
+fixed several crashers (comm.c and simulate.c) related to using vsprintf
+ instead of vsnprintf. (hamlet)
+time() now takes an optional arg of 1. time() remains the same: "when did
+ this execution begin" time(1) return real current time (via possibly
+ costly system call). (hamlet)
+added CFG_MAX_GLOBAL_VARIABLES to options.h. Old setting was an arbitrary 256.
+ (hamlet)
+async writes with compression
+fixed some memory leaks
+stuff I forgot, it's been too long!
+slightly usuful sfuns if you use async:
+
+void decode(object ob, int flag, function cb, string saved){
+ string *lines = explode(saved, "\n");
+ mixed vars = filter(variables(ob,1), (:strsrch($1[1], "nosave") == -1:));
+ vars = map(vars, (:$1[0]:));
+ if(!flag)
+ map(vars, bind((:store_variable($1, 0):), ob));
+ vars = allocate_mapping(vars, 1);
+
+ foreach(string line in lines){
+ if(line[0] == '#')
+ continue;
+ else {
+ int i = strsrch(line, ' ');
+ if(vars[line[0..i-1]])
+ evaluate(bind((:store_variable, line[0..i-1], restore_variable(line[i+1\..]):), ob));
+ }
+ }
+ evaluate(cb);
+}
+
+void restore_object_async(string name, int flag, function cb){
+ async_read(name, (: decode, previous_object(), flag, cb :));
+}
+
+void save_object_async(string name, int flag, function cb){
+ mixed vars = filter(variables(previous_object(),1), (:strsrch($1[1], "nosave"\) == -1:));
+ string *lines = allocate(sizeof(vars)+1);
+ vars = map(vars, (:$1[0]:));
+ lines[0] = "#"+base_name(previous_object())+".c";
+ for(int i = 0; i < sizeof(vars); i++){
+ string val = save_variable(evaluate(bind((:fetch_variable, vars[i]:), previ\ous_object())));
+ if(flag & 1 || val)
+ lines[i+1] = vars[i] + " " + val;
+ }
+ async_write(name, implode(lines, "\n"), flag | 1, cb);
+}
+
 FluffOS 2.11:
 stop eval_cost() adding to the time you're allowed to run. (libc return a time
      longer than the set time if you query the remaining time right after
      restarting the timer!
 reset_eval_cost() now stops working after 100*max eval cost.
 hopefully fixed readfile with lines beyond max readsize.
+
 FluffOS 2.10:
 can be compiled with g++
 fix bugs in using arrays as sets
     int *a=({1<<31,0}); return a-a
 fixed crash in the children efun (hamlet)
+
 FluffOS 2.9:
 removed amiga support.
 included most DS changes, should work on windows now (except for over

47. By Per Johansson

Import fluffos 2.11
=== modified file 'ChangeLog.fluffos-2.x'
--- ChangeLog.fluffos-2.x 2010-09-14 11:54:03 +0000
+++ ChangeLog.fluffos-2.x 2008-03-15 17:57:49 +0000
@@ -1,11 +1,16 @@
 As MudOS is moving too slow to keep our driver hacks apart, we now call our own
 FluffOS :)
+FluffOS 2.11:
+stop eval_cost() adding to the time you're allowed to run. (libc return a time
+ longer than the set time if you query the remaining time right after
+ restarting the timer!
+reset_eval_cost() now stops working after 100*max eval cost.
+hopefully fixed readfile with lines beyond max readsize.
 FluffOS 2.10:
 can be compiled with g++
 fix bugs in using arrays as sets
     int *a=({1<<31,0}); return a-a
 fixed crash in the children efun (hamlet)
-
 FluffOS 2.9:
 removed amiga support.
 included most DS changes, should work on windows now (except for over

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers