From: Peep P. <so...@us...> - 2004-06-07 15:50:28
|
Update of /cvsroot/agd/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10172 Modified Files: ChangeLog NEWS TODO Log Message: Updates for 0.0.3. Index: NEWS =================================================================== RCS file: /cvsroot/agd/server/NEWS,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- NEWS 1 Apr 2004 19:17:12 -0000 1.11 +++ NEWS 7 Jun 2004 15:50:19 -0000 1.12 @@ -1,5 +1,9 @@ Changes in 0.0.3: * Renamed interactivep() to interactive() + * Locals can now be defined in the middle of code. + * dfun platform() changed to a preprocessor macro __ARCH__, + version() to __VERSION__. + * New dfuns: throw() 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.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- TODO 1 Apr 2004 19:17:12 -0000 1.18 +++ TODO 7 Jun 2004 15:50:19 -0000 1.19 @@ -2,23 +2,31 @@ '!' means first-priority, '?' means trivial and not really important. + - dfparse.y: remove argument variants. Use combinations of mixed type and function overloading + - dfparse.y and dfdecl.in: remove all the c-name stuff, it's always "df_" + name + ? remove all the typedefs for the structs etc? Currently it's bad style. + - compile.c::compile_prog() should show global vars + - debug.c::print_code() should show functions' arguments + + ! new interpreter! + ? optimize string tables - remove repetitions + ! lang.y: while, for, break, continue + fix lvalues + test operators: + && || ?: + - 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 - * for vim; Me (solicit) will give it a try - * for emacs; I'm counting on you, elver! + - syntax highlighting scripts for AGD's LPC (vim, emacs) - - the famous host lookup daemon, so gethostbyaddr() won't block - - define_id system: - - if a variable is shadowed inside a block, then it needs to be - assigned a new index (?) - - argument variants (both d- and lfuns) + - the famous host lookup daemon, so gethostbyaddr() won't block. + Or maybe a separate thread with libpthread? - New configuration parser. - - Change 'errorlog' to 'debuglog', or change debug() to be an error + - Change 'errorlog' to just 'log', or change debug() to be an error logging facility, or remove the option completely. - Default error level option. - For lib: option - if it doesn't end in /, add it. @@ -28,36 +36,18 @@ - allow both .c and .lpc for file extensions (/usr/bin/file could recognize LPC, and editors can turn on syntax highlighting automatically) - Runtime token positions (with the F_NEWLINE operator). - - Some work could be done on i18n. For example, allow for multilingual yyerror-messages. - One way would be a master::error_msg() apply that takes a numeric code of the error - message and should return the string. Mudlib coders can code in their own language. - Interpreter. - three versions of runtime() - for dfuns (doesn't display line numbers) - for dynamically allocated strings (automatically frees the string after runtiming) - normal runtime - display stack trace (with line numbers and functions) when getting a runtime error -- keep interactive objects in a separate linked list, and make shout act on that list - Then change shout to take one argument, a string, and send to everyone except - this_player. - - destruct() - take object from all_objects and move to list_t *dested_objects; - then destruct_all() in net.c has less objects to traverse - - string table for each program, and F_PUSH_STRING takes index into the table - Repeated strings can be joined into one, and free_fun can free the strings. - - clean up includes, not everything needs everything in std.h and lpc_incl.h, etc. - Files that need it: - debug.c object.c vars.c lex.l lang.y + - keep interactive objects in a separate linked list, and make shout act on that list - 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 - * make install should touch $prefix/agd/debug.log - * configure.ac: set YFLAGS to "--debug" or "-t" with ./configure --enable-bison-debug - - Compiler (lang.y): - - compile-time eval for < > <= >= == != ! (i.e. if(direct_type)) - - repeated code for functions with and without explicit return type + should also remove src/dfparse.output and src/lang.output + shouldn't delete src/dfparse.h and src/lang.h - LPC: - ? Error recovery for lpc.y ! arrays (T_ARRAY) - foreach(), switch() - all of the operators (/doc/lpc/operators) @@ -69,12 +59,9 @@ - Check if assigning too long a string. * m.. * ..n - * m..n,m..n + * m..n,o..p * !n - inheritance - ? allow to define locals inside statements - like: create() { write("\n"); int i; i = 1; int j; j = 2; } - And maybe disable this with #pragma traditional-lpc ? - lexer: - preprocessor (read flex(1)) a {IDENTIFIER} rule first up in the rule list which goes through all of the macro @@ -111,19 +98,22 @@ - hexadecimal: \0xnn - binary: \0bnnnnnnnn - multiline strings - ? better logging system + +? better logging system - print time using strftime() - log using lib's facilities (master::log()?) - different prefixes have different debuglevels - save to different files - ? only report undeclared identifiers once + ? only report undeclared identifiers once (this is generally a Bad Thing) + ? warn about unused variables ? initialization of global variables ? dfun overrides, :: operator -? check for lib root and folder of debug log with access() and exit gracefully if it fails. + ? 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 - ? realloc wrapper to check for out of memory errors - ! on 64-bit, increase cp properly (points to between two instructions) ? IPv6 support? ? Supply a malloc implementation with statistics (a la MudOS)? ? Statistics and profiling + ? Some work could be done on i18n. For example, allow for multilingual yyerror-messages. + One way would be a master::error_msg() apply that takes a numeric code of the error + message and should return the string. Mudlib coders can code in their own language. Index: ChangeLog =================================================================== RCS file: /cvsroot/agd/server/ChangeLog,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- ChangeLog 1 Apr 2004 19:17:12 -0000 1.17 +++ ChangeLog 7 Jun 2004 15:50:19 -0000 1.18 @@ -1,5 +1,55 @@ 0.0.3: ---------------------------------------------------------------------------- +2004-06-04 + * dfdecl.in,dfuns.c: throw() dfun + * various: removed references to type_xmalloc, was a silly thing + * lang.y,interpret.c,debug.c: basic string tables + * sys.c: xrealloc() + * lex.l: one-liner comments (C++-style) can now span several lines + if they are ended with a slash. Like this: + // this comment \ + spans several \ + lines + * lex.l: added fake __VERSION__ and __ARCH__ macros + * net.c,object.c: destructed objects go to a list 'to_be_dested', which + destruct_all() will then traverse - less objects to go through +2004-05-30 + * dfuns.c: write() doesn't return anything anymore. + shout() now only takes one parameter - text to send, and + sends this to all interactive objects, excluding this_player. + These two changes imitate MudOS behaviour. + Trying to work more on AGD from now on. +2004-04-23 + * arch.h: OpenBSD +2004-04-17 + * compile.c: curr_f_check() now set curr_fun->code to NULL, fixes crasher. + * configure.ac: removed a lot of checks for things I don't see as + necessary. This probably hurts portability, but at least it's faster. + * configure.ac: Renamed --enable-bison-debug to --enable-yacc-debug. + And it now works. +2004-04-08 + * lang.y: More hacking, now compiles. + * Cleaned headers on some files. +2004-04-07 + * lang.y: More ugly, twisted grammar hacking. +2004-04-06 + * net.c: Didn't change to use HAVE_WINSOCK_H instead of WINSOCK. Ow. +2004-04-05 + * lang.y: Continued work. + Some highlights: + Reduced CPU and memory usage, and quite a lot. + Variables can be defined inside code. + lvalue statement, so expr_t uses less memory. +2004-04-04 + * sys.c,sys.h: removed memory statistics + * array.c,array.h: arrays are now only an LPC datatype, and not + in internal data structures. + * lang.y: MAJOR changes and improvements: + array_t's (as they are in array.h) are not used for compilation + anymore. No array_concats, no array_pushes, no array_removes + are called. Compilation should be many times faster now. + Also, code was kept in memory doubled - once in the actual + code, once in the expressions. This isn't so anymore. 2004-03-30 * dflex.l,lex.l,dfparse.y,lang.y: Removed lex.h and location_t, all of these now use Bison's YYLTYPE. |