From: Peep P. <so...@us...> - 2004-04-01 19:29:16
|
Update of /cvsroot/agd/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19724 Modified Files: BUGS ChangeLog Ideas NEWS README TODO configure configure.ac Log Message: Major cleanups. Index: configure =================================================================== RCS file: /cvsroot/agd/server/configure,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- configure 28 Mar 2004 18:01:14 -0000 1.6 +++ configure 1 Apr 2004 19:17:12 -0000 1.7 @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac revision 0.08. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for AGD 0.0.2-3. +# Generated by GNU Autoconf 2.59 for AGD 0.0.3. # # Report bugs to <so...@es...>. # @@ -270,8 +270,8 @@ # Identity of this package. PACKAGE_NAME='AGD' PACKAGE_TARNAME='agd' -PACKAGE_VERSION='0.0.2-3' -PACKAGE_STRING='AGD 0.0.2-3' +PACKAGE_VERSION='0.0.3' +PACKAGE_STRING='AGD 0.0.3' PACKAGE_BUGREPORT='so...@es...' ac_unique_file="src/dfparse.y" @@ -782,7 +782,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures AGD 0.0.2-3 to adapt to many kinds of systems. +\`configure' configures AGD 0.0.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -844,7 +844,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of AGD 0.0.2-3:";; + short | recursive ) echo "Configuration of AGD 0.0.3:";; esac cat <<\_ACEOF @@ -968,7 +968,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -AGD configure 0.0.2-3 +AGD configure 0.0.3 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -982,7 +982,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by AGD $as_me 0.0.2-3, which was +It was created by AGD $as_me 0.0.3, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1593,7 +1593,7 @@ # Define the identity of the package. PACKAGE='agd' - VERSION='0.0.2-3' + VERSION='0.0.3' cat >>confdefs.h <<_ACEOF @@ -3344,8 +3344,8 @@ echo "${ECHO_T}no" >&6 fi -echo "$as_me:$LINENO: checking whether to enable Bison debuggigngigng" >&5 -echo $ECHO_N "checking whether to enable Bison debuggigngigng... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking whether to enable Bison debugging" >&5 +echo $ECHO_N "checking whether to enable Bison debugging... $ECHO_C" >&6 # Check whether --enable-bison-debug or --disable-bison-debug was given. if test "${enable_bison_debug+set}" = set; then enableval="$enable_bison_debug" @@ -4427,7 +4427,8 @@ -for ac_header in arpa/inet.h fcntl.h netinet/in.h stddef.h sys/socket.h sys/time.h unistd.h + +for ac_header in arpa/inet.h fcntl.h netinet/in.h stddef.h sys/socket.h sys/time.h unistd.h winsock.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -5088,867 +5089,18 @@ # Checks for library functions. - -for ac_header in stdlib.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## --------------------------------- ## -## Report this to so...@es... ## -## --------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 -echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6 -if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_malloc_0_nonnull=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#if STDC_HEADERS || HAVE_STDLIB_H -# include <stdlib.h> -#else -char *malloc (); -#endif - -int -main () -{ -exit (malloc (0) ? 0 : 1); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_malloc_0_nonnull=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_malloc_0_nonnull=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6 -if test $ac_cv_func_malloc_0_nonnull = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 1 -_ACEOF - -else - cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 0 -_ACEOF - - case $LIBOBJS in - "malloc.$ac_objext" | \ - *" malloc.$ac_objext" | \ - "malloc.$ac_objext "* | \ - *" malloc.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; -esac - - -cat >>confdefs.h <<\_ACEOF -#define malloc rpl_malloc -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for function prototypes" >&5 -echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 -if test "$ac_cv_prog_cc_stdc" != no; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -#define PROTOTYPES 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define __PROTOTYPES 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:$LINENO: checking whether setvbuf arguments are reversed" >&5 -echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6 -if test "${ac_cv_func_setvbuf_reversed+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_func_setvbuf_reversed=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdio.h> -# if PROTOTYPES - int (setvbuf) (FILE *, int, char *, size_t); -# endif -int -main () -{ -char buf; return setvbuf (stdout, _IOLBF, &buf, 1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdio.h> -# if PROTOTYPES - int (setvbuf) (FILE *, int, char *, size_t); -# endif -int -main () -{ -char buf; return setvbuf (stdout, &buf, _IOLBF, 1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # It compiles and links either way, so it must not be declared - # with a prototype and most likely this is a K&R C compiler. - # Try running it. - if test "$cross_compiling" = yes; then - : # Assume setvbuf is not reversed when cross-compiling. -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdio.h> -int -main () -{ -/* This call has the arguments reversed. - A reversed system may check and see that the address of buf - is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ - char buf; - if (setvbuf (stdout, _IOLBF, &buf, 1) != 0) - exit (1); - putchar ('\r'); - exit (0); /* Non-reversed systems SEGV here. */ - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -rm -f core *.core -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setvbuf_reversed" >&5 -echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6 -if test $ac_cv_func_setvbuf_reversed = yes; then - -cat >>confdefs.h <<\_ACEOF -#define SETVBUF_REVERSED 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <sys/types.h> -#include <signal.h> -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_signal=int -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -for ac_func in strftime -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - # strftime is in -lintl on SCO UNIX. -echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 -echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6 -if test "${ac_cv_lib_intl_strftime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strftime (); -int -main () -{ -strftime (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_intl_strftime=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_intl_strftime=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6 -if test $ac_cv_lib_intl_strftime = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_STRFTIME 1 -_ACEOF - -LIBS="-lintl $LIBS" -fi - -fi -done - - -for ac_func in vprintf -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -echo "$as_me:$LINENO: checking for _doprnt" >&5 -echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 -if test "${ac_cv_func__doprnt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define _doprnt innocuous__doprnt - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char _doprnt (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef _doprnt - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _doprnt (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub__doprnt) || defined (__stub____doprnt) -choke me -#else -char (*f) () = _doprnt; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != _doprnt; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func__doprnt=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func__doprnt=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 -echo "${ECHO_T}$ac_cv_func__doprnt" >&6 -if test $ac_cv_func__doprnt = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DOPRNT 1 -_ACEOF - -fi - -fi -done - - - - - - +#AC_FUNC_MALLOC +#AC_FUNC_SETVBUF_REVERSED +#AC_TYPE_SIGNAL +#AC_FUNC_STRFTIME +#AC_FUNC_VPRINTF +#AC_CHECK_FUNCS([atexit floor getcwd memset select socket strchr strerror strstr]) -for ac_func in atexit floor getcwd memset select socket strchr strerror strstr +for ac_func in getcwd memset select socket strerror do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -6432,7 +5584,7 @@ } >&5 cat >&5 <<_CSEOF -This file was extended by AGD $as_me 0.0.2-3, which was +This file was extended by AGD $as_me 0.0.3, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6495,7 +5647,7 @@ cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -AGD config.status 0.0.2-3 +AGD config.status 0.0.3 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Index: ChangeLog =================================================================== RCS file: /cvsroot/agd/server/ChangeLog,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- ChangeLog 28 Mar 2004 18:08:51 -0000 1.16 +++ ChangeLog 1 Apr 2004 19:17:12 -0000 1.17 @@ -1,7 +1,29 @@ +0.0.3: +---------------------------------------------------------------------------- +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. + * Renamed dfun interactivep to interactive + * interpret.c: one more time.. runtime() now really, really + clears the stack. + * compile.c: the logic in check_operand() was a bit twisted. Fixed, + now checks for correct type of both sides. + * Fixed crash: call_other checks if function + was found. + * runtimes now show line number and current function + + * Cleaned up TODO a little. + * net.c: removed find_player_nr(), was repeating code in array.c + already + * configure.ac, arch.h: configure checks for winsock.h, not arch.h. + This suits the GNU idea that portability should be done by specific + feature checks rather than checking for the platform. + * net.c,net.h: removed connection states + * sys.c,sys.h: Cleanups. 0.0.2-3: ---------------------------------------------------------------------------- 2004-03-28 - * some fixed for string ranges + * some fixes for string ranges * renamed F_SUBSCR to F_INDEX, F_RANGE to F_SLICE * fix crasher in df_strlen(): check for fp->u.s. 2004-03-23 Index: Ideas =================================================================== RCS file: /cvsroot/agd/server/Ideas,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Ideas 28 Mar 2004 18:08:51 -0000 1.6 +++ Ideas 1 Apr 2004 19:17:12 -0000 1.7 @@ -1,6 +1,8 @@ This file contains features that will be or will be not in AGD in the future. lpc: * if(x == 1 || == 2 && != 3) + * default values for arguments + int foo(int i, int j = 1); * Argument type grouping int foo(int i, j, k, string s1, s2, s3, object ob1, ob2); * null constants: Index: BUGS =================================================================== RCS file: /cvsroot/agd/server/BUGS,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- BUGS 28 Mar 2004 18:08:51 -0000 1.10 +++ BUGS 1 Apr 2004 19:17:12 -0000 1.11 @@ -1,37 +1,8 @@ Currently known bugs: - - the future_pos system in lex.l is acting up. - src/options and src/compile_options.h don't honor $prefix. Could use a shell script and sed to do substitutions. - - the define_id system is more or less not operational. + - the define_id system is known to have bugs, not sure what they are, though. * int i; void foo(int i); should be valid with a warning - - - - [lpc] apply "write_prompt" done in 410 microseconds - - Program received signal SIGINT, Interrupt. - 0x40119758 in select () from /lib/tls/libc.so.6 - (gdb) handle SIGINT pass - SIGINT is used by the debugger. - Are you sure you want to change it? (y or n) y - Signal Stop Print Pass to program Description - SIGINT Yes Yes Yes Interrupt - (gdb) c - Continuing. - Crashing: Interrupted - [lpc] apply "crash" on "/sys/master.c" - [interpret] call_function 0 on /sys/master.c - - Program received signal SIGSEGV, Segmentation fault. - 0x08055fe7 in net_send (buf=0x808d878 "Crashing on signal 2!\r\n", siz=24, p=0x80728c8) at net.c:164 - 164 send(this_player->conn.socket, buf, siz, 0); - (gdb) print this_player - $1 = (player_t *) 0xa0d3000 - (gdb) print *this_player - Cannot access memory at address 0xa0d3000 - - - string s; - s = s + "abc"; - will result in "0abc" - crashes on Solaris/SPARC with a SIGSEGV somewhere between lines 190 and 199 in net.c (don't have gdb on that host). Index: configure.ac =================================================================== RCS file: /cvsroot/agd/server/configure.ac,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- configure.ac 28 Mar 2004 18:00:43 -0000 1.7 +++ configure.ac 1 Apr 2004 19:17:13 -0000 1.8 @@ -1,5 +1,5 @@ ## Process this file with autoconf to produce a configure script. -AC_INIT(AGD, 0.0.2-3, [so...@es...]) +AC_INIT(AGD, 0.0.3, [so...@es...]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR(src/dfparse.y) AM_CONFIG_HEADER(src/config.h) @@ -40,7 +40,7 @@ AC_MSG_RESULT([no]) fi -AC_MSG_CHECKING(whether to enable Bison debuggigngigng) +AC_MSG_CHECKING(whether to enable Bison debugging) AC_ARG_ENABLE(bison-debug, AC_HELP_STRING([--enable-bison-debug], [enable Bison debugging]), , enable_bison_debug="no") if test "x${enable_bison_debug}" != "xno"; then @@ -74,7 +74,7 @@ # Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT -AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stddef.h sys/socket.h sys/time.h unistd.h]) +AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stddef.h sys/socket.h sys/time.h unistd.h winsock.h]) # This is where u_int32_t is on MacOSX - needs to be included before dirent.h. AC_CHECK_HEADERS([machine/types.h]) @@ -85,11 +85,12 @@ AC_STRUCT_TM # Checks for library functions. -AC_FUNC_MALLOC -AC_FUNC_SETVBUF_REVERSED -AC_TYPE_SIGNAL -AC_FUNC_STRFTIME -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([atexit floor getcwd memset select socket strchr strerror strstr]) +#AC_FUNC_MALLOC +#AC_FUNC_SETVBUF_REVERSED +#AC_TYPE_SIGNAL +#AC_FUNC_STRFTIME +#AC_FUNC_VPRINTF +#AC_CHECK_FUNCS([atexit floor getcwd memset select socket strchr strerror strstr]) +AC_CHECK_FUNCS([getcwd memset select socket strerror]) AC_OUTPUT Index: README =================================================================== RCS file: /cvsroot/agd/server/README,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- README 28 Mar 2004 18:08:51 -0000 1.6 +++ README 1 Apr 2004 19:17:12 -0000 1.7 @@ -1,48 +1,22 @@ -------------------------------------- Adventure Game Driver - 0.0.2-3, March 23, 2004 + 0.0.3, March 30, 2004 http://agd.sf.net Peep Pullerits <so...@es...> -------------------------------------- This is a small LPMUD driver, intended to run graphical MUDs -with Sierra AGI-like graphics. +with Sierra AGI-like graphics. Currently no graphics are implemented, as even the LPC compiler/interpreter is a work-in-progress. It can act as a basic chat server with the default lib. If you write anything in LPC, I would be glad if you send it to me. -1. Installing. +* Installing. Follow the instructions in the INSTALL file that came with this package. -2. Running. -AGD comes with a default configuration in /usr/share/agd/options, -and it will use this file if it isn't given a parameter. -This, however, expects you to have done 'make install', but -probably not everyone who wants to run this driver will have -root access to their machine. -So, you can copy the binary, options file and library to your -home directory and provide a configuration file path as an argument -each time you run the driver (using a shell script, for example). - -So, in short: -If you have root access, do 'make install' and run agd -with 'agd'. AGD will use /usr/share/agd/options for the configuration. -If you don't have root access, run agd with './agd options', -assuming the 'agd' binary and the 'options' file are in the -same directory. - -There might be a 'make userinstall' target in the future that -will do this automatically. - -You might also want to separate stderr and stdout, by redirecting -one or both of them to a file, because some lines don't have -newlines, so stdout and stderr could get mixed up. Like this: - './agd >agd.out 2>agd.err' -Or write a shell script to do it. - -3. Bugs. +* Bugs. This is an alpha release. As such, it most probably is full of bugs. Please do try to break it, and report everything you find. Index: NEWS =================================================================== RCS file: /cvsroot/agd/server/NEWS,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- NEWS 28 Mar 2004 18:08:51 -0000 1.10 +++ NEWS 1 Apr 2004 19:17:12 -0000 1.11 @@ -1,4 +1,7 @@ -New things in this version (0.0.2-3) that you might find useful: +Changes in 0.0.3: + * Renamed interactivep() to interactive() + +Features in 0.0.2-3: * Real string ranges like string[0..4] * for() * break; and continue; statements Index: TODO =================================================================== RCS file: /cvsroot/agd/server/TODO,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- TODO 28 Mar 2004 18:08:51 -0000 1.17 +++ TODO 1 Apr 2004 19:17:12 -0000 1.18 @@ -1,31 +1,78 @@ Not necessarily in order of importance. -Stuff with '!' is first-priority. +'!' means first-priority, +'?' means trivial and not really important. + + - 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! + - the famous host lookup daemon, so gethostbyaddr() won't block - - new define_name system, again. - - if a variable is shadowed inside a block, then it needs to be assigned a new index + - 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) - - a real malloc wrapper - - Statistics and profiling - ! better conf file handling (see src/log.c) - - change 'errorlog' to 'debuglog'? - - lpc: - - inheritance - - better error recovery for lpc.y + - New configuration parser. + - Change 'errorlog' to 'debuglog', 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. + - Hash tables (mappings) for define_id in compile.c and the function lookup + table (prog->nametable), for O(1) instead of O(n) lookup. + + - 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 + - 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 +- LPC: + ? Error recovery for lpc.y ! arrays (T_ARRAY) - ! foreach(), switch() - ! all of the operators (/doc/lpc/operators) - - ',' - this takes some serious grammar-hacking - - mixed type - ! string slices (ranges) - !! assigning to slices (F_SLICE_LVALUE etc.) + - foreach(), 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 (ranges) + ! assigning to slices (F_SLICE_LVALUE etc.) + - Check if assigning too long a string. * m.. * ..n - * m..< - * < * m..n,m..n * !n - - allow to define locals inside statements + - 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: @@ -63,47 +110,20 @@ - octal: \0onnn - hexadecimal: \0xnn - binary: \0bnnnnnnnn - - better logging system + - multiline strings + ? 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 - - initialization of global variables - - dfun overrides, :: operator - - qsort&bsearch for define_id in compile.c (or maybe use a hashtable with O(1) lookup and insert) - - qsort&bsearch for nametable, _again_ - - allow both .c and .lpc for file extensions (?) - - runtime token positions. - - if filename doesn't have a leading /, add one. (i.e. don't load /libfile.c, but /lib/file.c) - - more user-friendly error messages (yyerrors) - - check for lib root and folder of debug log with access() and exit gracefully if it fails. - - set string_type of all new string variables - - default values for arguments - int foo(int i, int j = 1); - - string table for each program, and F_PUSH_STRING takes index into the table - - clean up includes, not everything needs everything in std.h and lpc_incl.h, etc. - - make maintainer-clean: - should also remove src/dfparse.output and src/lang.output - shouldn't delete src/dfparse.h and src/lang.h - - compile-time eval for < > <= >= == != ! - - lang.y: - compare_args(): 0 should be any valid type (shout("a", 0) should be ok) - - or maybe use NULL or nil - - if we crash while running apply(master::crash), then we should rerun with debugging on - - IPv6 support? - - realloc wrapper - - some terminals don't support \t, find out if it is possible to check for it, and then - print out 8 spaces instead. - - on 64-bit, increase cp as a void* type. - - destruct() - take object from all_objects and move to list_t *dested_objects; - then destruct_all() in net.c has less objects to traverse - - rename interactivep() to either - 1) isinteractive() - 2) isia() - 3) interactive() - - in the variable_t struct, - char inited should be or'ed to the type (T_INITED | T_INT) - remove string_type and add types T_STRINGD, T_STRINGST (dynamic and static, later T_STRINGSH, shared.) - - configure.ac: set YFLAGS to "--debug" or "-t" with ./configure --enable-bison-debug - - display stack trace (with line numbers and functions) when getting a runtime error + ? only report undeclared identifiers once + ? initialization of global variables + ? 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 + ? 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 |