|
saquivor
|
 |
« Reply #15 on: April 24, 2007, 01:45:08 PM » |
|
Great news  Looking forward to tinkering with MXP in DS2 
|
|
|
|
|
Logged
|
|
|
|
|
wodan
|
 |
« Reply #16 on: May 02, 2007, 03:01:24 PM » |
|
Ok, I added Sojan's patches to FluffOS, made a few more changes as well and now with a 32 bit driver it runs an unchanged DS2.4.2 lib It still fails in a nasty way on 64 bit though.
Almost there!
|
|
|
|
|
Logged
|
|
|
|
|
saquivor
|
 |
« Reply #17 on: May 03, 2007, 07:33:47 AM » |
|
Is there a public version of the latest version and/or patches. As I am testing some Linux testing at work and will have an excuse to play a bit  Thanks, Saquivor
|
|
|
|
|
Logged
|
|
|
|
|
wodan
|
 |
« Reply #18 on: May 03, 2007, 05:12:35 PM » |
|
Unfinished fluffos work is not available anywhere! Making that available would just take even more time away to actually do stuff.
I might dump it in cvs somewhere if Fluffos gets popular.
|
|
|
|
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #19 on: May 03, 2007, 07:25:26 PM » |
|
What changes were made to DS for FluffOS to run?
Personally, I'm having a LOT of issues and i'm not too great of a C programmer.
|
|
|
|
|
Logged
|
|
|
|
sojan
Acquaintance
Offline
Posts: 32
|
 |
« Reply #20 on: May 03, 2007, 07:36:38 PM » |
|
Well to get DS to run first time around I basically had to change the position of a lot of include files as they were defining functions prior to inheritence lines, which fluffos doesn't like. wodan has, however, since changed some of the fluffos stuff so there is an option to allow that without hacking the DSlib. Also DS has a lot of places where variables of type string are assinged to variables of *string and so on - again fluffos gets shirty about that but wodan has been making some patches to allow that too [although frankly it's not an ideal situation to have variables doing that in the first place].
Those were the only changes to DS I made, however in compiling fluffos for DS I needed to fix quite a few things which Wodan has taken forward, cleaned up my rather messy code, and generally tidied. Mainly there are a bunch of K&R macros that need removing and some changes to the iconv support. Plus I needed to add #define DEBUG to the local_options file. I do believe wodans patches should fix all this but we're still a ways from public release of that.
J
|
|
|
|
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #21 on: May 03, 2007, 07:59:38 PM » |
|
I've already removed the K&R macros and tidied up a lot of dirty code. What changes were made the iconv support though?
For the most part, it's just spitting errors at me during preload ( I haven't tried disabling preload yet ) and what does #define DEBUG in local_options do?
|
|
|
|
|
Logged
|
|
|
|
sojan
Acquaintance
Offline
Posts: 32
|
 |
« Reply #22 on: May 03, 2007, 08:04:24 PM » |
|
the preload errors are more than likely the result of include files that define functions prior to the inherit line.
The #define DEBUG just made sure all the debug code [which was turned on in the DS local options files I had in the distlib] compiled in properly - I'm not even sure it's critical to actually running the lib as I'm no DS expert, as far as the iconv stuff went it's mainly a case of some of the messaging functions referencing iconvised functions without the iconv support compiled in and thus they crash.
J
|
|
|
|
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #23 on: May 03, 2007, 08:29:37 PM » |
|
Here's a copy of what happens when I run the driver via ./driver config.lima2 I tried to connect to the MUD and I receive: Trying 172.16.10.1... Connected to 172.16.10.1. Escape character is '^]'.
Where there any changes to sockets for connections? Or anything? Hmm. using config file: config.lima2 Initializing internal tables.... ---------------------------------------------------------------------------- Distortions II (FluffOS v2.6) starting up on Linux - Thu May 3 20:24:23 2007
Connected to address server on localhost port 8006
Loading preloaded files ... object /std/adversary/target: eval_cost too big 500000 object /std/body/guilds: eval_cost too big 500000 /daemons/channel_d.c line 73: Warning: <TAB> before saved_listeners; /daemons/channel_d.c line 74: Warning: <TAB> before saved_hooks; /daemons/channel_d.c line 97: Warning: <TAB> before ci; /daemons/channel_d.c line 100: Warning: <TAB> before error("channel alrea /daemons/channel_d.c line 103: Warning: <TAB> before = extract_channel_n /daemons/channel_d.c line 103: Warning: <TAB> before = extract_channel_na /daemons/channel_d.c line 104: Warning: <TAB> before = ({ }); /daemons/channel_d.c line 105: Warning: <TAB> before = ({ }); /daemons/channel_d.c line 105: Warning: <TAB> before = ({ }); /daemons/channel_d.c line 106: Warning: <TAB> before = ({ }); /daemons/channel_d.c line 106: Warning: <TAB> before = ({ }); /daemons/channel_d.c line 113: Warning: <TAB> before ci = info[channel_na /daemons/channel_d.c line 117: Warning: <TAB> before /* /daemons/channel_d.c line 123: Warning: <TAB> before create_channel(chann /daemons/channel_d.c line 124: Warning: <TAB> before ci = info[channel_na /daemons/channel_d.c line 131: Warning: <TAB> before /* ### don't error.. /daemons/channel_d.c line 132: Warning: <TAB> before return; /daemons/channel_d.c line 136: Warning: <TAB> before /* ### don't error.. /daemons/channel_d.c line 137: Warning: <TAB> before return; /daemons/channel_d.c line 142: Warning: <TAB> before if ( member_array(li /daemons/channel_d.c line 143: Warning: <TAB> before ci->hooked += ({ /daemons/channel_d.c line 147: Warning: <TAB> before if ( member_array(li /daemons/channel_d.c line 148: Warning: <TAB> before ci->listeners += /daemons/channel_d.c line 157: Warning: <TAB> before map_delete(info, cha /daemons/channel_d.c line 166: Warning: <TAB> before ci->listeners -= ({ /daemons/channel_d.c line 168: Warning: <TAB> before /* purge the channel /daemons/channel_d.c line 169: Warning: <TAB> before if ( undefinedp(perm /daemons/channel_d.c line 170: Warning: <TAB> before test_for_purge(c /daemons/channel_d.c line 179: Warning: <TAB> before return; /daemons/channel_d.c line 190: Warning: <TAB> before class channel_info c /daemons/channel_d.c line 192: Warning: <TAB> before permanent_channels[c /daemons/channel_d.c line 193: Warning: <TAB> before save_me(); /daemons/channel_d.c line 197: Warning: <TAB> before map_delete(permanent /daemons/channel_d.c line 198: Warning: <TAB> before save_me(); /daemons/channel_d.c line 210: Warning: <TAB> before permanent_channels[c /daemons/channel_d.c line 211: Warning: <TAB> before save_me(); /daemons/channel_d.c line 223: Warning: <TAB> before ci = info[channel_na /daemons/channel_d.c line 226: Warning: <TAB> before return ci->name; /daemons/channel_d.c line 254: Warning: <TAB> before names = keys(info); /daemons/channel_d.c line 267: Warning: <TAB> before return sender_name; /daemons/channel_d.c line 270: Warning: <TAB> before if ( sender_name = t /daemons/channel_d.c line 271: Warning: <TAB> before return sender_na /daemons/channel_d.c line 274: Warning: <TAB> before sender_name = "<unkn /daemons/channel_d.c line 287: Warning: <TAB> before sizeof(ci->listeners /daemons/channel_d.c line 288: Warning: <TAB> before return; /daemons/channel_d.c line 292: Warning: <TAB> before ci->history[0..0] = /daemons/channel_d.c line 304: Warning: <TAB> before sprintf(CHANNEL_ /daemons/channel_d.c line 304: Warning: <TAB> before sprintf(CHANNEL_F /daemons/channel_d.c line 305: Warning: <TAB> before user_channel_na /daemons/channel_d.c line 305: Warning: <TAB> before user_channel_nam /daemons/channel_d.c line 305: Warning: <TAB> before user_channel_name /daemons/channel_d.c line 306: Warning: <TAB> before str)); /daemons/channel_d.c line 306: Warning: <TAB> before str)); /daemons/channel_d.c line 306: Warning: <TAB> before str)); /daemons/channel_d.c line 318: Warning: <TAB> before sizeof(ci->listeners /daemons/channel_d.c line 319: Warning: <TAB> before return; /daemons/channel_d.c line 323: Warning: <TAB> before ci->history[0..0] = /daemons/channel_d.c line 334: Warning: <TAB> before string sender_na /daemons/channel_d.c line 334: Warning: <TAB> before string sender_nam /daemons/channel_d.c line 334: Warning: <TAB> before string sender_name /daemons/channel_d.c line 334: Warning: <TAB> before string sender_name, /daemons/channel_d.c line 335: Warning: <TAB> before string type, /daemons/channel_d.c line 335: Warning: <TAB> before string type, /daemons/channel_d.c line 335: Warning: <TAB> before string type, /daemons/channel_d.c line 335: Warning: <TAB> before string type, /daemons/channel_d.c line 336: Warning: <TAB> before mixed data) /daemons/channel_d.c line 336: Warning: <TAB> before mixed data) /daemons/channel_d.c line 336: Warning: <TAB> before mixed data) /daemons/channel_d.c line 336: Warning: <TAB> before mixed data) /daemons/channel_d.c line 340: Warning: <TAB> before sizeof(ci->listeners /daemons/channel_d.c line 341: Warning: <TAB> before return; /daemons/channel_d.c line 352: Warning: <TAB> before string sender_nam /daemons/channel_d.c line 352: Warning: <TAB> before string sender_name /daemons/channel_d.c line 352: Warning: <TAB> before string sender_name, /daemons/channel_d.c line 353: Warning: <TAB> before string message) /daemons/channel_d.c line 353: Warning: <TAB> before string message) /daemons/channel_d.c line 353: Warning: <TAB> before string message) /daemons/channel_d.c line 359: Warning: <TAB> before sprintf(CHANNEL_ /daemons/channel_d.c line 359: Warning: <TAB> before sprintf(CHANNEL_F /daemons/channel_d.c line 360: Warning: <TAB> before user_channel_na /daemons/channel_d.c line 360: Warning: <TAB> before user_channel_nam /daemons/channel_d.c line 360: Warning: <TAB> before user_channel_name /daemons/channel_d.c line 361: Warning: <TAB> before sender_name + " /daemons/channel_d.c line 361: Warning: <TAB> before sender_name + ": /daemons/channel_d.c line 361: Warning: <TAB> before sender_name + ": /daemons/channel_d.c line 370: Warning: <TAB> before string sender_na /daemons/channel_d.c line 370: Warning: <TAB> before string sender_nam /daemons/channel_d.c line 370: Warning: <TAB> before string sender_name /daemons/channel_d.c line 371: Warning: <TAB> before string message) /daemons/channel_d.c line 371: Warning: <TAB> before string message) /daemons/channel_d.c line 371: Warning: <TAB> before string message) /daemons/channel_d.c line 382: Warning: <TAB> before sprintf(CHANNEL_ /daemons/channel_d.c line 382: Warning: <TAB> before sprintf(CHANNEL_F /daemons/channel_d.c line 383: Warning: <TAB> before user_channel_na /daemons/channel_d.c line 383: Warning: <TAB> before user_channel_nam /daemons/channel_d.c line 383: Warning: <TAB> before user_channel_name /daemons/channel_d.c line 384: Warning: <TAB> before sender_name + " /daemons/channel_d.c line 384: Warning: <TAB> before sender_name + " /daemons/channel_d.c line 384: Warning: <TAB> before sender_name + " " /daemons/channel_d.c line 400: Warning: <TAB> before ({ map_array(soul[1] /daemons/channel_d.c line 401: Warning: <TAB> before (: sprintf(CHA /daemons/channel_d.c line 401: Warning: <TAB> before (: sprintf(CHAN /daemons/channel_d.c line 413: Warning: <TAB> before string message) /daemons/channel_d.c line 413: Warning: <TAB> before string message) /daemons/channel_d.c line 413: Warning: <TAB> before string message) /daemons/channel_d.c line 416: Warning: <TAB> before sprintf(CHANNEL_ /daemons/channel_d.c line 416: Warning: <TAB> before sprintf(CHANNEL_F /daemons/channel_d.c line 417: Warning: <TAB> before user_channel_na /daemons/channel_d.c line 417: Warning: <TAB> before user_channel_nam /daemons/channel_d.c line 417: Warning: <TAB> before user_channel_name /daemons/channel_d.c line 418: Warning: <TAB> before "(" + message + /daemons/channel_d.c line 418: Warning: <TAB> before "(" + message + /daemons/channel_d.c line 418: Warning: <TAB> before "(" + message + " /daemons/channel_d.c line 431: Warning: <TAB> before { /daemons/channel_d.c line 432: Warning: <TAB> before object ob = find_o /daemons/channel_d.c line 433: Warning: <TAB> before /daemons/channel_d.c line 434: Warning: <TAB> before if ( ob ) /daemons/channel_d.c line 435: Warning: <TAB> before register_one(0, /daemons/channel_d.c line 436: Warning: <TAB> before } /daemons/channel_d.c line 443: Warning: <TAB> before { /daemons/channel_d.c line 444: Warning: <TAB> before object ob = find_o /daemons/channel_d.c line 445: Warning: <TAB> before /daemons/channel_d.c line 446: Warning: <TAB> before if ( ob ) /daemons/channel_d.c line 447: Warning: <TAB> before register_one(1, /daemons/channel_d.c line 448: Warning: <TAB> before } /daemons/channel_d.c line 458: Warning: <TAB> before create_channel(chann /daemons/channel_d.c line 485: Warning: <TAB> before class listener_pair /daemons/channel_d.c line 486: Warning: <TAB> before the end of line /daemons/channel_d.c line 487: Warning: <TAB> before pair->channel_name = /daemons/channel_d.c line 488: Warning: <TAB> before pair->filename = fna /daemons/channel_d.c line 489: Warning: <TAB> before saved_listeners += ( /daemons/channel_d.c line 497: Warning: <TAB> before class listener_pair /daemons/channel_d.c line 498: Warning: <TAB> before the end of line /daemons/channel_d.c line 499: Warning: <TAB> before pair->channel_name = /daemons/channel_d.c line 500: Warning: <TAB> before pair->filename = fna /daemons/channel_d.c line 501: Warning: <TAB> before saved_hooks += ({ pa /daemons/channel_d.c line 528: Warning: <TAB> before previous_object() = /daemons/channel_d.c line 530: Warning: <TAB> before class channel_info c /daemons/channel_d.c line 532: Warning: <TAB> before if ( ci ) /daemons/channel_d.c line 533: Warning: <TAB> before return ci->liste /daemons/channel_d.c line 551: Warning: <TAB> before return 0; /daemons/channel_d.c line 555: Warning: <TAB> before flags |= CHANNEL_PER /daemons/channel_d.c line 589: Warning: <TAB> before if ( info[name] && ( /daemons/channel_d.c line 590: Warning: <TAB> before return name; /daemons/channel_d.c line 592: Warning: <TAB> before if ( info[name] && ( /daemons/channel_d.c line 593: Warning: <TAB> before return name; object /cmds/verbs/whisper: eval_cost too big 500000 ]ERROR: The I3 daemon will not load until you set a proper ADMIN_EMAIL value in /include/config.h /secure/daemons/ftp_d.c line 48: Illegal to inherit after defining functions. before the end of line Initializations complete.
Accepting connections on port 8002. ******** FATAL ERROR: Process interrupted FluffOS driver attempting to exit gracefully. crash() in master called successfully. Aborting. Aborted
|
|
|
|
|
Logged
|
|
|
|
sojan
Acquaintance
Offline
Posts: 32
|
 |
« Reply #24 on: May 03, 2007, 08:54:13 PM » |
|
Wodan will know better than I but my guess would be that you're crashing in add_message in comm.c as that happened to me and thats where I had to fiddle with iconv stuff. you could try compiling with iconv support turned on although I have no idea what that will do to DS.
Best thing to do is compile the driver with -g and attach gdb to it so you can see what line it crashes at.
J
|
|
|
|
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #25 on: May 03, 2007, 09:22:13 PM » |
|
So far, I've disabled iconv support. Modified comm.c in the function add_message back to it's original form (bypassing the translation in general) and i'm still unable to connect via telnet to the MUD.
Unable to use gdb.
|
|
|
|
« Last Edit: May 03, 2007, 10:12:50 PM by boobay »
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #26 on: May 03, 2007, 10:13:43 PM » |
|
Modified my last repsonse, heh.
|
|
|
|
|
Logged
|
|
|
|
|
wodan
|
 |
« Reply #27 on: May 03, 2007, 11:45:29 PM » |
|
hmm, was going to post my patch so far, but it seems to be over the max message size!  you can get it at http://wodan.servebeer.com/patch instead.
|
|
|
|
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #28 on: May 04, 2007, 12:02:00 AM » |
|
Thanks! Compiling now! 
|
|
|
|
|
Logged
|
|
|
|
boobay
Acquaintance
Offline
Posts: 41
|
 |
« Reply #29 on: May 04, 2007, 12:39:51 AM » |
|
Here's a patch for my minor updates (Picky compiler)  diff -ur fluffos-2.7a/packages/contrib.c fluffos-2.7a-B/packages/contrib.c --- fluffos-2.7a/packages/contrib.c Fri Apr 20 21:33:52 2007 +++ fluffos-2.7a-B/packages/contrib.c Fri May 4 00:32:34 2007 @@ -2088,6 +2088,7 @@ object_t *ob, *origin; char *name; int i; + int count=0;
origin = current_object;
@@ -2128,7 +2129,7 @@ apply (name, event_ob->u.ob, numparam + 1, ORIGIN_EFUN);
/* And then call it on it's inventory... */ - int count = 0; + //int count = 0; for (ob = event_ob->u.ob->contains; ob; ob = ob->next_inv){ if (ob == origin) continue; diff -ur fluffos-2.7a/packages/parser.c fluffos-2.7a-B//packages/parser.c --- fluffos-2.7a/packages/parser.c Fri May 4 00:32:58 2007 +++ fluffos-2.7a-B//packages/parser.c Fri May 4 00:32:34 2007 @@ -203,18 +203,22 @@
#if defined(DEBUG) || defined(PARSE_DEBUG) /* Usage: DEBUG_P(("foo: %s:%i", str, i)); */ -static void debug_parse(char *fmt, ...) { +static void debug_parse (char *fmt, ...) +{ va_list args; char buf[2048]; char *p = buf; int n = debug_parse_depth - 1; + //V_DCL(char *fmt);
while (n--) { *p++ = ' '; *p++ = ' '; }
+ //V_START(args, fmt); va_start(args, fmt); + //V_VAR(char * fmt, args); vsprintf(p, fmt, args); va_end(args); diff -ur fluffos-2.7a/lex.c fluffos-2.7a-B//lex.c --- fluffos-2.7a/lex.c Sat Apr 21 11:17:42 2007 +++ fluffos-2.7a-B//lex.c Fri May 4 00:32:34 2007 @@ -2105,6 +2105,7 @@ char save_buf[80]; int i; lpc_predef_t *tmpf; + long tmp;
add_predefine("MUDOS", -1, ""); get_version(save_buf); @@ -2148,7 +2149,8 @@ } sprintf(save_buf, "%d", sizeof(long)); add_predefine("SIZEOFINT", -1, save_buf); - long tmp = (long)1<<31; + //long tmp = (long)1<<31; + //tmp = (long)1<<31; if(tmp > 0) tmp = (long)1<<63; sprintf(save_buf, "%ld", tmp-1); diff -ur fluffos-2.7a/sprintf.c fluffos-2.7a-B//sprintf.c --- fluffos-2.7a/sprintf.c Wed Aug 30 13:25:08 2006 +++ fluffos-2.7a-B//sprintf.c Fri May 4 00:32:34 2007 @@ -1124,8 +1124,8 @@ } else { /* not column or table */ if (pres && pres < slen) slen = pres; - const char *tmp = carg->u.string; //work around tcc bug; - add_justified(tmp, slen, &pad, fs, finfo, + //const char *tmp = carg->u.string; //work around tcc bug; + add_justified(carg->u.string, slen, &pad, fs, finfo, (((format_str[fpos] != '\n') && (format_str[fpos] != '\0')) || ((finfo & INFO_ARRAY) && (nelemno < (argv + sprintf_state->cur_arg)->u.arr->size))) || carg->u.string[slen - 1] != '\n');
|
|
|
|
|
Logged
|
|
|
|
|