|
From: Peep P. <so...@us...> - 2004-07-24 18:05:23
|
Update of /cvsroot/agd/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv905 Modified Files: TODO NEWS ExitValues ChangeLog Log Message: More changes! Index: ExitValues =================================================================== RCS file: /cvsroot/agd/server/ExitValues,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ExitValues 21 Mar 2004 13:43:50 -0000 1.2 +++ ExitValues 24 Jul 2004 18:05:13 -0000 1.3 @@ -1,7 +1,8 @@ -0: Normal program termination +-1: Don't bother starting the driver again because it won't bootstrap - + for use by scripts that automatically run the driver +0: Normal termination 1: Out of memory 2: Network error -3: Script problems (for example, master doesn't load) +3: LPC-related error (for example, master doesn't load) 4: Exit due to a signal (this indicates a crash) -5: Configuration error (syntax error in the configuration file, - incorrect arguments, running AGD as root, etc.) +5: Configuration error (syntax error in the configuration file, incorrect arguments, running AGD as root, etc.) Index: NEWS =================================================================== RCS file: /cvsroot/agd/server/NEWS,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- NEWS 23 Jul 2004 17:23:20 -0000 1.14 +++ NEWS 24 Jul 2004 18:05:13 -0000 1.15 @@ -1,11 +1,15 @@ Changes in 0.0.3: * Arrays! * Renamed interactivep() to interactive() + * query_ip() renamed to query_ip_number(), query_hostname() renamed to query_ip_name() * Locals can now be defined in the middle of code. * dfun platform() changed to a preprocessor macro __ARCH__, version() to __VERSION__. - * New dfuns: throw(), users(), sizeof() + * New dfuns: throw(), users(), sizeof(), add_command(), query_verb(), + do_command(), write_file(), master(), shutdown(), get_dir(), this_player(), + find_player(), explode(), implode() * Bitwise operators + * Array slices! Features in 0.0.2-3: * Real string ranges like string[0..4] Index: TODO =================================================================== RCS file: /cvsroot/agd/server/TODO,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- TODO 23 Jul 2004 17:21:18 -0000 1.25 +++ TODO 24 Jul 2004 18:05:13 -0000 1.26 @@ -1,69 +1,22 @@ Not necessarily in order of importance. -'!' means first-priority, -'?' means trivial and/or not really important. -'<' means low priority +'!' - first-priority, +'?' - trivial and/or not really important. - - Runtime token positions (aka line number information). - How to do it. Just like in LPMUD. program_t->line_numbers is - an array with the same length as there are lines. Each - element contains the index into the code array at which - the line begins. To find a line number using cp: - get offset into code (cp - code), loop through line_numbers - while our offset is bigger than the element in line_numbers. - If offset is smaller or equal, it means that it must be on - the current index. - - profiling memory usage - find out if variables are really freed and if they're - being overduplicated or something. - - everything to do with arrays, notably: - - operators: - & &= + - lang.y: + - allow 'int *a, int *b' - call_other on an array - foreach() - - dfuns: - delete - member_array - explode, implode - save_object, restore_object - crypt - - allow 'string foo; foo[0]="a";' - - sprintf and printf - - Interpreter. - ? F_PUSH_NUM_INT <constant> <number> - - runtime() for dfuns (doesn't display line numbers) - - lang.y: - ! break, continue - ! fix L_SLICE_LVALUE - - compile.c::compile_prog() should show global vars - - debug.c::print_code() should show functions' arguments - - Do something about compile.c::pop_scope() - it's slow (well, algorithmically speaking, at least). - - In config, for lib: option - if it doesn't end in /, add it. - - Build system. - * make maintainer-clean - should also remove src/dfparse.output and src/lang.output - shouldn't delete src/dfparse.h and src/lang.h - - documentation: - * Small textbook about AGD's dialect of LPC - * Short text describing main differences between LPC and C - * Short text describing AGD and it's purposes, mainly for people coming - from the AGI community. - - syntax highlighting scripts for AGD's LPC (vim, emacs) - - the famous host lookup daemon, so gethostbyaddr() won't block. - Or maybe a separate thread with libpthread? - - keep interactive objects in a separate linked list, and make shout act on that list - - switch() - - all of the operators (/doc/lpc/operators) - - ',' - this takes some serious grammar-hacking, because - comma as a function call argument is a separator for expressions. - - mixed type - - string slices - ! assigning to slices (F_SLICE_LVALUE etc.) - - Check if assigning too long a string. - - m.. - - ..n - - m..n,o..p - - !n - - m..<n - - inheritance + - break, continue + - goto + - string slices + - assigning to slices (F_SLICE_LVALUE etc.) + - Check if assigning too long a string. + - m.. + - ..n + - m..n,o..p + - !n + - m..<n + - switch() - lexer: - preprocessor (read flex(1)) an {IDENTIFIER} rule first up in the rule list which goes through all of the macro @@ -91,12 +44,47 @@ blah FOO"; Or however it's done elsewhere. - ? Better function lookup table (prog->nametable)? O(1) would be nice. - - warn about unused variables - initialization of global variables + - check for lib root with access() and exit gracefully if it fails. + - comma operator (',') + - the famous host lookup daemon, so gethostbyaddr() won't block. + Or maybe a separate thread with libpthread? + + - Runtime token positions (aka line number information). + How to do it. Just like in LPMUD. program_t->line_numbers is + an array with the same length as there are lines. Each + element contains the index into the code array at which + the line begins. To find a line number using cp: + get offset into code (cp - code), loop through line_numbers + while our offset is bigger than the element in line_numbers. + If offset is smaller or equal, it means that it must be on + the current index. + - profiling memory usage - find out if variables are really freed and if they're + being overduplicated or something. + - dfuns: + delete, member_array, save_object, restore_object, crypt, sprintf, printf + - keep interactive objects in a separate linked list, and make shout, find_player etc act on that list + - allow 'string foo; foo[0]="a";' + - Interpreter. + ? F_PUSH_NUM_INT <constant> <number> + - Do something about compile.c::pop_scope() - it's slow (well, algorithmically speaking, at least). + - Build system. + * make maintainer-clean + should also remove src/dfparse.output and src/lang.output + shouldn't delete src/dfparse.h and src/lang.h + - documentation: + * Small textbook about AGD's dialect of LPC + * Short text describing main differences between LPC and C + * Short text describing AGD and its purposes, mainly for people coming + from the AGI community. + - syntax highlighting scripts for AGD's LPC (vim, emacs) + - mixed type + - inheritance - dfun overrides, :: operator - - check for lib root and folder of debug log with access() and exit gracefully if it fails. - - if we crash while running apply(master::crash), then we should rerun with debugging on + - mapping type + - environments, inventories and related dfuns + ? Better function lookup table (prog->nametable)? O(1) would be nice. + - warn about unused variables ? IPv6 support? ? Some work could be done on i18n. For example, allow for multilingual yyerror-messages. Index: ChangeLog =================================================================== RCS file: /cvsroot/agd/server/ChangeLog,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- ChangeLog 23 Jul 2004 17:21:18 -0000 1.24 +++ ChangeLog 24 Jul 2004 18:05:13 -0000 1.25 @@ -1,5 +1,8 @@ 0.0.3: ---------------------------------------------------------------------------- +2004-07-24 + * array.c: working intersect_arrays + * dfdecl.in,dfuns.c: get_dir() dfun 2004-07-23 * dflex.l,lex.l,compile.c: added manual 'extern YYLTYPE yylloc' declarations, which seem to be necessary with older version of bison. @@ -210,7 +213,7 @@ * A bit more efficient eval_instruction (read: a couple of microseconds faster) - not checking if jumped too far at every loop cycle, only when doing F_JMP or F_JMPF. - * F_{POST,PRE}{DEC,INC} now call free_value() on it's argument. + * F_{POST,PRE}{DEC,INC} now call free_value() on its argument. * Disabled redefining of dfuns * Fixed crash: unref_prog checks for NULL. * Fixed compilation of do..while. :) @@ -232,7 +235,7 @@ * fixed small bug on array_remove() * fun_table is built during compilation, not after it - neatly sorted and more efficient - * F_CALL_*FUN doesn't need an empty variable on the stack for it's + * F_CALL_*FUN doesn't need an empty variable on the stack for its return value anymore * all locals are now automatically popped off the stack when the function completes (so code like while(1) { int i; } won't overflow |