Mercurial > hg > octave-lojdl
changeset 3131:9c5160c83bd2
[project @ 1998-01-29 04:46:33 by jwe]
author | jwe |
---|---|
date | Thu, 29 Jan 1998 04:46:36 +0000 |
parents | 02766207b74c |
children | 338335dd1033 |
files | ChangeLog Makeconf.in NEWS aclocal.m4 configure.in doc/interpreter/arith.texi doc/interpreter/basics.texi doc/interpreter/expr.texi doc/interpreter/func.texi doc/interpreter/numbers.texi doc/interpreter/stmt.texi doc/interpreter/strings.texi doc/interpreter/var.texi kpathsea/ChangeLog kpathsea/Makefile.in mkoctfile.in readline/configure scripts/ChangeLog scripts/plot/contour.m src/ChangeLog src/DLD-FUNCTIONS/dassl.cc src/DLD-FUNCTIONS/lsode.cc src/DLD-FUNCTIONS/quad.cc src/Makefile.in src/load-save.cc src/ov-usr-fcn.cc test/octave.test/system/computer-1.m |
diffstat | 27 files changed, 381 insertions(+), 170 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ +Mon Jan 26 13:26:09 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + + * Makeconf.in (do-subst-config-vals): Substitute XTRA_CFLAGS and + XTRA_CXXFLAGS. + * mkoctfile.in: Substitute XTRA_CFLAGS and XTRA_CXXFLAGS, not + GCC_IEEE_FP_FLAG, HOST_CXXFLAGS, and NO_IMPLICIT_TEMPLATES. + (ALL_CFLAGS): Use XTRA_CFLAGS, not GCC_IEEE_FP_FLAG here. + (ALL_CXXFLAGS): Use XTRA_CXXFLAGS, not GCC_IEEE_FP_FLAG, + HOST_CXXFLAGS, and NO_IMPLICIT_TEMPLATES here. + Sun Jan 25 01:59:47 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + * configure.in: (GXX_PICKY_FLAGS): Add -Weffc++. + Use OCTAVE_CC_FLAG and OCTAVE_CXX_FLAG to add -Wall and for adding + picky flags in AC_ARG_ENABLE(picky-flags ...) macro. + * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Require OCTAVE_PROG_G77. Handle cross compiling with g77. (OCTAVE_REINSTALL_SIGHANDLERS): Provide defaults for cross compiling.
--- a/Makeconf.in +++ b/Makeconf.in @@ -335,6 +335,8 @@ -e "s;%TARGET_HOST_TYPE%;\"${target_host_type}\";" \ -e "s;%TERMLIBS%;\"${TERMLIBS}\";" \ -e "s;%VERSION%;\"${version}\";" \ + -e "s;%XTRA_CFLAGS%;\"${XTRA_CFLAGS}\";" \ + -e "s;%XTRA_CXXFLAGS%;\"${XTRA_CXXFLAGS}\";" \ -e "s;%config_opts%;\"${config_opts}\";" | \ sed -e "s;%DEFS%;\"${UGLY_DEFS}\";" > $@.tmp $(top_srcdir)/move-if-change $@.tmp $@
--- a/NEWS +++ b/NEWS @@ -170,6 +170,10 @@ * The function sumsq now computes sum (x .* conj (x)) for complex values. + * The new built-in variable max_recursion_depth allows you to + prevent Octave from attempting infinite recursion. The default + value is 256. + * Octave now uses readline version 2.1 and kpathsea 3.0. * New configure option, --enable-readline.
--- a/aclocal.m4 +++ b/aclocal.m4 @@ -682,7 +682,9 @@ ]) if eval "test \"`echo '$octave_cv_cc_flag_'$ac_safe`\" = yes"; then AC_MSG_RESULT(yes) - ifelse([$2], , [CFLAGS="$CFLAGS $1"], [$2]) + ifelse([$2], , [ + CFLAGS="$CFLAGS $1" + AC_MSG_RESULT([adding $1 to CFLAGS])], [$2]) else AC_MSG_RESULT(no) ifelse([$3], , , [$3]) @@ -709,7 +711,9 @@ ]) if eval "test \"`echo '$octave_cv_cxx_flag_'$ac_safe`\" = yes"; then AC_MSG_RESULT(yes) - ifelse([$2], , [CXXFLAGS="$CXXFLAGS $1"], [$2]) + ifelse([$2], , [ + CXXFLAGS="$CXXFLAGS $1" + AC_MSG_RESULT([adding $1 to CXXFLAGS])], [$2]) else AC_MSG_RESULT(no) ifelse([$3], , , [$3])
--- a/configure.in +++ b/configure.in @@ -21,7 +21,7 @@ ### Software Foundation, 59 Temple Place - Suite 330, Boston, MA ### 02111-1307, USA. -AC_REVISION($Revision: 1.294 $) +AC_REVISION($Revision: 1.295 $) AC_PREREQ(2.9) AC_INIT(src/octave.cc) AC_CONFIG_HEADER(config.h) @@ -181,8 +181,6 @@ ### Do special things for g++. -ADD_CXX_WALL=false - gxx_version=`$CXX -v 2>&1 | grep "^.*g.. version" | \ sed -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//'` @@ -192,24 +190,6 @@ changequote([,])dnl AC_MSG_ERROR([g++ version $gxx_version will not work to compile Octave]) ;; -changequote(,)dnl - 2.7.[23456789]* | 2.7.[123456789][0123456789]*) -changequote([,])dnl - if test -z "$EXTERN_CXXFLAGS"; then - ADD_CXX_WALL=true - fi - ;; -changequote(,)dnl - 2.[89].* | 2.[123456789][0123456789].*) -changequote([,])dnl - if test -z "$EXTERN_CXXFLAGS"; then - ADD_CXX_WALL=true - fi - ;; - *) - warn_gxx_only="Octave has only been tested with g++, and I can't find it" - AC_MSG_WARN($warn_gxx_only) - ;; esac CXX_VERSION= @@ -230,14 +210,10 @@ ### Do special things for gcc. -ADD_CC_WALL=false gcc_version=`$CC -v 2>&1 | grep "^.*gcc version" | \ sed -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//'` case "$gcc_version" in 2.*) - if test -z "$EXTERN_CFLAGS"; then - ADD_CC_WALL=true - fi if test -z "$LDFLAGS"; then LDFLAGS="-g" AC_MSG_RESULT([defining LDFLAGS to be $LDFLAGS]) @@ -247,10 +223,6 @@ warn_gcc_version="gcc version $gcc_version is likely to cause problems" AC_MSG_WARN($warn_gcc_version) ;; - *) - warn_gcc_only="Octave has only been tested with gcc, and I can't find it" - AC_MSG_WARN($warn_gcc_only) - ;; esac CC_VERSION= @@ -271,35 +243,43 @@ changequote([,])dnl OCTAVE_CC_FLAG(-mieee-fp, [ ieee_fp_flag=-mieee-fp - XTRA_CFLAGS="$XTRA_CFLAGS -mieee-fp"]) + XTRA_CFLAGS="$XTRA_CFLAGS -mieee-fp" + AC_MSG_RESULT([adding -mieee-fp to XTRA_CFLAGS])]) OCTAVE_CXX_FLAG(-mieee-fp, [ ieee_fp_flag=-mieee-fp - XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp"]) + XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp" + AC_MSG_RESULT([adding -mieee-fp to XTRA_CXXFLAGS])]) ;; alpha*-*-*) OCTAVE_CC_FLAG(-mieee, [ ieee_fp_flag=-mieee - XTRA_CFLAGS="$XTRA_CFLAGS -mieee"]) + XTRA_CFLAGS="$XTRA_CFLAGS -mieee" + AC_MSG_RESULT([adding -mieee to XTRA_CFLAGS])]) + OCTAVE_CXX_FLAG(-mieee, [ ieee_fp_flag=-mieee - XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee"]) + XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee" + AC_MSG_RESULT([adding -mieee to XTRA_CXXFLAGS])]) ;; esac ### Octave doesn't use run-time type identification or exceptions yet, ### so disable them for somewhat faster and smaller code. -OCTAVE_CXX_FLAG(-fno-rtti, - [XTRA_CXXFLAGS="$XTRA_CXXFLAGS -fno-rtti"]) +OCTAVE_CXX_FLAG(-fno-rtti, [ + XTRA_CXXFLAGS="$XTRA_CXXFLAGS -fno-rtti" + AC_MSG_RESULT([adding -fno-rtti to XTRA_CXXFLAGS])]) -OCTAVE_CXX_FLAG(-fno-exceptions, - [XTRA_CXXFLAGS="$XTRA_CXXFLAGS -fno-exceptions"]) +OCTAVE_CXX_FLAG(-fno-exceptions, [ + XTRA_CXXFLAGS="$XTRA_CXXFLAGS -fno-exceptions" + AC_MSG_RESULT([adding -fno-exceptions to XTRA_CXXFLAGS])]) ### We do our own template instantiation. -OCTAVE_CXX_FLAG(-fno-implicit-templates, - [XTRA_CXXFLAGS="$XTRA_CXXFLAGS -fno-implicit-templates"]) +OCTAVE_CXX_FLAG(-fno-implicit-templates, [ + XTRA_CXXFLAGS="$XTRA_CXXFLAGS -fno-implicit-templates" + AC_MSG_RESULT([adding -fno-implicit-templates to XTRA_CXXFLAGS])]) AC_SUBST(XTRA_CFLAGS) AC_SUBST(XTRA_CXXFLAGS) @@ -1066,13 +1046,12 @@ ### Maybe add -Wall to compiler flags now that we're done feature ### testing. -if $ADD_CXX_WALL; then - CXXFLAGS="$CXXFLAGS -Wall" - AC_MSG_RESULT([adding -Wall to CXXFLAGS]) +if test -z "$EXTERN_CFLAGS"; then + OCTAVE_CC_FLAG(-Wall) fi -if $ADD_CC_WALL; then - CFLAGS="$CFLAGS -Wall" - AC_MSG_RESULT([adding -Wall to CFLAGS]) + +if test -z "$EXTERN_CXXFLAGS"; then + OCTAVE_CXX_FLAG(-Wall) fi ### Someday, maybe include -ansi and even -pedantic in this list... @@ -1081,36 +1060,22 @@ -Winline -Wmissing-prototypes -Wnested-externs -Wpointer-arith \ -Wstrict-prototypes -Wwrite-strings" -GXX_PICKY_FLAGS="$GCC_PICKY_FLAGS -fno-nonnull-objects" +GXX_PICKY_FLAGS="$GCC_PICKY_FLAGS -Weffc++ -Wenum-clash -fno-nonnull-objects" AC_ARG_ENABLE(picky-flags, [ --enable-picky-flags add picky options to CFLAGS, CXXFLAGS, FFLAGS], - [if test "$enableval" = no; then true; + [if test "$enableval" = no; then + true elif test "$enableval" = yes; then - if $ADD_CXX_WALL; then - CXXFLAGS="$GXX_PICKY_FLAGS $CXXFLAGS" - AC_MSG_RESULT([adding picky options to CXXFLAGS]) - else - AC_MSG_WARN([CXX doesn't look like g++ -- not adding picky options]) + if test -z "$EXTERN_CFLAGS"; then + for flag in $GCC_PICKY_FLAGS; do + OCTAVE_CC_FLAG($flag) + done fi - if $ADD_CC_WALL; then - CFLAGS="$GCC_PICKY_FLAGS $CFLAGS" - AC_MSG_RESULT([adding picky options to CFLAGS]) - else - AC_MSG_WARN([CC doesn't look like gcc -- not adding picky options]) - fi - else - if $ADD_CXX_WALL; then - CXXFLAGS="$enableval $CXXFLAGS" - AC_MSG_RESULT([adding picky options to CXXFLAGS]) - else - AC_MSG_WARN([CXX doesn't look like g++ -- not adding picky options]) - fi - if $ADD_CC_WALL; then - CFLAGS="$enableval $CFLAGS" - AC_MSG_RESULT([adding picky options to CFLAGS]) - else - AC_MSG_WARN([CC doesn't look like gcc -- not adding picky options]) + if test -z "$EXTERN_CXXFLAGS"; then + for flag in $GXX_PICKY_FLAGS; do + OCTAVE_CXX_FLAG($flag) + done fi fi], [])
--- a/doc/interpreter/arith.texi +++ b/doc/interpreter/arith.texi @@ -412,6 +412,38 @@ @node Special Functions, Mathematical Constants, Sums and Products, Arithmetic @section Special Functions +@deftypefn {Mapping Function} {} besseli (@var{alpha}, @var{x}) +@deftypefnx {Mapping Function} {} besselj (@var{alpha}, @var{x}) +@deftypefnx {Mapping Function} {} besselk (@var{alpha}, @var{x}) +@deftypefnx {Mapping Function} {} bessely (@var{alpha}, @var{x}) +Compute Bessel functions of the following types: + +@table @code +@item besselj +Bessel functions of the first kind. + +@item bessely +Bessel functions of the second kind. + +@item besseli +Modified Bessel functions of the first kind. + +@item besselk +Modified Bessel functions of the second kind. +@end table + +The second argument, @var{x}, must be a real matrix, vector, or scalar. + +The first argument, @var{alpha}, must be greater than or equal to zero. +If @var{alpha} is a range, it must have an increment equal to one. + +If @var{alpha} is a scalar, the result is the same size as @var{x}. + +If @var{alpha} is a range, @var{x} must be a vector or scalar, and the +result is a matrix with @code{length(@var{x})} rows and +@code{length(@var{alpha})} columns. +@end deftypefn + @deftypefn {Mapping Function} {} beta (@var{a}, @var{b}) Return the Beta function, @iftex
--- a/doc/interpreter/basics.texi +++ b/doc/interpreter/basics.texi @@ -204,11 +204,6 @@ list of arguments passed to the script. @pxref{Executable Octave Programs}. @end defvr -@defvr {Built-in Variable} nargin -At the top level, this variable is defined as the number of command line -arguments that were passed to Octave. -@end defvr - @defvr {Built-in Variable} program_invocation_name @defvrx {Built-in Variable} program_name When Octave starts, the value of the built-in variable @@ -240,7 +235,8 @@ @noindent @xref{Index Expressions} for an explanation of how to properly index -arrays of strings and substrings in Octave. +arrays of strings and substrings in Octave, and @xref{Defining Functions} +for information about the variable @code{nargin}. @node Startup Files, , Command Line Options, Invoking Octave @subsection Startup Files
--- a/doc/interpreter/expr.texi +++ b/doc/interpreter/expr.texi @@ -414,13 +414,16 @@ argument is no longer greater than zero, it does not call itself, and the recursion ends. -There is currently no limit on the recursion depth, so infinite -recursion is possible. If this happens, Octave will consume more and -more memory attempting to store intermediate values for each function -call context until there are no more resources available. This is -obviously undesirable, and will probably be fixed in some future version -of Octave by allowing users to specify a maximum allowable recursion -depth. +The built-in variable @code{max_recursion_depth} specifies a limit to +the recursion depth and prevents Octave from recursing infinitely. + +@defvr max_recursion_depth +Limit the number of times a function may be called recursively. +If the limit is exceeded, an error message is printed and control +returns to the top level. + +The default value is 256. +@end defvr @node Arithmetic Ops, Comparison Ops, Calling Functions, Expressions @section Arithmetic Operators
--- a/doc/interpreter/func.texi +++ b/doc/interpreter/func.texi @@ -955,9 +955,28 @@ functions, particularly those that rely on functions like @code{lsode} that require user-supplied functions. -Additional examples are available in the files in the @file{src} -directory of the Octave distribution. Currently, this includes the -files +Just as for M-files, Octave will automatically reload dynamically linked +functions when the files that define them are more recent than the last +time that the function was loaded. Two variables are available to +control how Octave behaves when dynamically linked functions are cleared +or reloaded. + +@defvr {Built-in Variable} auto_unload_dot_oct_files +If the value of @code{auto_unload_dot_oct_files} is nonzero, Octave will +automatically unload any @file{.oct} files when there are no longer any +functions in the symbol table that reference them. +@end defvr + +@defvr {Built-in Variable} warn_reload_forces_clear +If several functions have been loaded from the same file, Octave must +clear all the functions before any one of them can be reloaded. If +@code{warn_reload_forces_clear}, Octave will warn you when this happens, +and print a list of the additional functions that it is forced to clear. +@end defvr + +Additional examples for writing dynamically linked functions are +available in the files in the @file{src} directory of the Octave +distribution. Currently, this includes the files @example @group
--- a/doc/interpreter/numbers.texi +++ b/doc/interpreter/numbers.texi @@ -304,10 +304,8 @@ matrix, Octave responds by printing the matrix in with neatly aligned rows and columns. If the rows of the matrix are too large to fit on the screen, Octave splits the matrix and displays a header before each -section to indicate which columns are being displayed. - -@noindent -You can use the following variables to control the format of the output. +section to indicate which columns are being displayed. You can use the +following variables to control the format of the output. @defvr {Built-in Variable} output_max_field_width This variable specifies the maximum width of a numeric output field. @@ -357,6 +355,42 @@ The default value of @code{split_long_rows} is nonzero. @end defvr +Octave automatically switches to scientific notation when values become +very large or very small. This guarantees that you will see several +significant figures for every value in a matrix. If you would prefer to +see all values in a matrix printed in a fixed point format, you can set +the built-in variable @code{fixed_point_format} to a nonzero value. But +doing so is not recommended, because it can produce output that can +easily be misinterpreted. + +@defvr {Built-in Variable} fixed_point_format +If the value of this variable is nonzero, Octave will scale all values +in a matrix so that the largest may be written with one leading digit. +The scaling factor is printed on the first line of output. For example, + +@example +@group +octave:1> logspace (1, 7, 5)' +ans = + + 1.0e+07 * + + 0.00000 + 0.00003 + 0.00100 + 0.03162 + 1.00000 +@end group +@end example + +@noindent +Notice that first value appears to be zero when it is actually 1. For +this reason, you should be careful when setting +@code{fixed_point_format} to a nonzero value. + +The default value of @code{fixed_point_format} is 0. +@end defvr + @menu * Empty Matrices:: @end menu
--- a/doc/interpreter/stmt.texi +++ b/doc/interpreter/stmt.texi @@ -351,6 +351,11 @@ using a jump table. @end itemize +@defvr {Built-in Variable} warn_variable_switch_label +If the value of this variable is nonzero, Octave will print a warning if +a switch label is not a constant or constant expression +@end defvr + @node The while Statement, The for Statement, The switch Statement, Statements @section The @code{while} Statement @cindex @code{while} statement
--- a/doc/interpreter/strings.texi +++ b/doc/interpreter/strings.texi @@ -393,6 +393,22 @@ representation. @end deftypefn +@defvr {Built-in Variable} implicit_num_to_str_ok +If the value of @code{implicit_num_to_str_ok} is nonzero, implicit +conversions of numbers to their ASCII character equivalents are +allowed when strings are constructed using a mixture of strings and +numbers in matrix notation. Otherwise, an error message is printed and +control is returned to the top level. The default value is 0. For +example, + +@example +@group +[ "f", 111, 111 ] + @result{} "foo" +@end group +@end example +@end defvr + @defvr {Built-in Variable} implicit_str_to_num_ok If the value of @code{implicit_str_to_num_ok} is nonzero, implicit conversions of strings to their numeric ASCII equivalents are allowed.
--- a/doc/interpreter/var.texi +++ b/doc/interpreter/var.texi @@ -338,6 +338,11 @@ Default value: @code{"+ "}. +@item auto_unload_dot_oct_files +@xref{Dynamically Linked Functions}. + +Default value: 0. + @item automatic_replot @xref{Two-Dimensional Plotting}. @@ -383,6 +388,11 @@ Default value: @code{"warn"}. +@item fixed_point_format +@xref{Matrices}. + +Default value: 0. + @item gnuplot_binary @xref{Three-Dimensional Plotting}. @@ -403,11 +413,21 @@ Default value: @code{"system"}. +@item implicit_num_to_str_ok +@xref{String Conversions}. + +Default value: 0. + @item implicit_str_to_num_ok @xref{String Conversions}. Default value: 0. +@item max_recursion_depth +@xref{Recursion}. + +Default value: 256. + @item ok_to_lose_imaginary_part @xref{Special Utility Matrices}. @@ -508,6 +528,16 @@ Default value: 1. +@item warn_reload_forces_clear +@xref{Dynamically Linked Functions}. + +Default value: 1. + +@item warn_variable_switch_label +@xref{The switch Statement}. + +Default value: 0. + @item whitespace_in_literal_matrix @xref{Matrices}.
--- a/kpathsea/ChangeLog +++ b/kpathsea/ChangeLog @@ -1,3 +1,7 @@ +Sun Jan 25 02:28:04 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + + * Makefile.in (install, uninstall): For use with Octave, do nothing. + Thu Jun 5 12:38:35 1997 John W. Eaton <jwe@bevo.che.wisc.edu> * acklibtool.m4: For use with Octave, ignore --enable-static and
--- a/kpathsea/Makefile.in +++ b/kpathsea/Makefile.in @@ -316,8 +316,10 @@ check: kpsewhich ./kpsewhich -expand-var '$$TEXMF' -install: install-exec install-data -uninstall: uninstall-exec uninstall-data +install uninstall: + +#install: install-exec install-data +#uninstall: uninstall-exec uninstall-data install-exec: kpsewhich $(SHELL) $(top_srcdir)/../mkdirchain $(bindir) $(scriptdir) \
--- a/mkoctfile.in +++ b/mkoctfile.in @@ -21,18 +21,17 @@ : ${CXX=%CXX%} : ${CXXFLAGS=%CXXFLAGS%} : ${CXXPICFLAG=%CXXPICFLAG%} -: ${HOST_CXXFLAGS=%HOST_CXXFLAGS%} -: ${NO_IMPLICIT_TEMPLATES=%NO_IMPLICIT_TEMPLATES%} -: ${GCC_IEEE_FP_FLAG=%GCC_IEEE_FP_FLAG%} +: ${XTRA_CFLAGS=%XTRA_CFLAGS%} +: ${XTRA_CXXFLAGS=%XTRA_CXXFLAGS%} : ${SH_LD=%SH_LD%} : ${SH_LDFLAGS=%SH_LDFLAGS%} : ${ALL_FFLAGS="$FFLAGS"} -: ${ALL_CFLAGS="$INCFLAGS $GCC_IEEE_FP_FLAG $CFLAGS"} +: ${ALL_CFLAGS="$INCFLAGS $XTRA_CFLAGS $CFLAGS"} -: ${ALL_CXXFLAGS="$INCFLAGS $HOST_CXXFLAGS $NO_IMPLICIT_TEMPLATES $GCC_IEEE_FP_FLAG $CXXFLAGS"} +: ${ALL_CXXFLAGS="$INCFLAGS $XTRA_CXXFLAGS $CXXFLAGS"} # Local variables.
--- a/readline/configure +++ b/readline/configure @@ -1494,10 +1494,14 @@ echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then - { echo "configure: error: cannot check signal handling if cross compiling" 1>&2; exit 1; } + if test "$bash_cv_signal_vintage" = svr3; then + bash_cv_must_reinstall_sighandlers=yes +else + bash_cv_must_reinstall_sighandlers=no +fi else cat > conftest.$ac_ext <<EOF -#line 1501 "configure" +#line 1505 "configure" #include "confdefs.h" #include <signal.h> @@ -1544,7 +1548,7 @@ } EOF -if { (eval echo configure:1548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_must_reinstall_sighandlers=no else @@ -1558,7 +1562,11 @@ fi -echo "$ac_t""$bash_cv_must_reinstall_sighandlers" 1>&6 +if test "$cross_compiling" = yes; then + echo "$ac_t""$bash_cv_must_reinstall_sighandlers assumed for cross compilation" 1>&6 +else + echo "$ac_t""$bash_cv_must_reinstall_sighandlers" 1>&6 +fi if test $bash_cv_must_reinstall_sighandlers = yes; then cat >> confdefs.h <<\EOF #define MUST_REINSTALL_SIGHANDLERS 1 @@ -1569,15 +1577,15 @@ echo $ac_n "checking for presence of POSIX-style sigsetjmp/siglongjmp""... $ac_c" 1>&6 -echo "configure:1573: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 +echo "configure:1581: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 if eval "test \"`echo '$''{'bash_cv_func_sigsetjmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then - { echo "configure: error: cannot check for sigsetjmp/siglongjmp if cross-compiling" 1>&2; exit 1; } + bash_cv_func_sigsetjmp=present else cat > conftest.$ac_ext <<EOF -#line 1581 "configure" +#line 1589 "configure" #include "confdefs.h" #ifdef HAVE_UNISTD_H @@ -1618,7 +1626,7 @@ #endif } EOF -if { (eval echo configure:1622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_func_sigsetjmp=present else @@ -1633,7 +1641,11 @@ fi -echo "$ac_t""$bash_cv_func_sigsetjmp" 1>&6 +if test "$cross_compiling" = yes; then + echo "$ac_t""$bash_cv_func_sigsetjmp=present assumed for cross compiling" 1>&6 +else + echo "$ac_t""$bash_cv_func_sigsetjmp" 1>&6 +fi if test $bash_cv_func_sigsetjmp = present; then cat >> confdefs.h <<\EOF #define HAVE_POSIX_SIGSETJMP 1 @@ -1642,12 +1654,12 @@ fi echo $ac_n "checking for lstat""... $ac_c" 1>&6 -echo "configure:1646: checking for lstat" >&5 +echo "configure:1658: checking for lstat" >&5 if eval "test \"`echo '$''{'bash_cv_func_lstat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1651 "configure" +#line 1663 "configure" #include "confdefs.h" #include <sys/types.h> @@ -1657,7 +1669,7 @@ lstat("",(struct stat *)0); ; return 0; } EOF -if { (eval echo configure:1661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_func_lstat=yes else @@ -1678,12 +1690,12 @@ fi echo $ac_n "checking whether programs are able to redeclare getpw functions""... $ac_c" 1>&6 -echo "configure:1682: checking whether programs are able to redeclare getpw functions" >&5 +echo "configure:1694: checking whether programs are able to redeclare getpw functions" >&5 if eval "test \"`echo '$''{'bash_cv_can_redecl_getpw'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1687 "configure" +#line 1699 "configure" #include "confdefs.h" #include <sys/types.h> #include <pwd.h> @@ -1692,7 +1704,7 @@ struct passwd *z; z = getpwent(); ; return 0; } EOF -if { (eval echo configure:1696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1708: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_can_redecl_getpw=yes else @@ -1714,15 +1726,15 @@ echo $ac_n "checking whether or not strcoll and strcmp differ""... $ac_c" 1>&6 -echo "configure:1718: checking whether or not strcoll and strcmp differ" >&5 +echo "configure:1730: checking whether or not strcoll and strcmp differ" >&5 if eval "test \"`echo '$''{'bash_cv_func_strcoll_broken'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then - { echo "configure: error: cannot check strcoll if cross compiling" 1>&2; exit 1; } + bash_cv_func_strcoll_broken=no else cat > conftest.$ac_ext <<EOF -#line 1726 "configure" +#line 1738 "configure" #include "confdefs.h" #include <stdio.h> @@ -1761,7 +1773,7 @@ } EOF -if { (eval echo configure:1765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_func_strcoll_broken=yes else @@ -1776,7 +1788,11 @@ fi -echo "$ac_t""$bash_cv_func_strcoll_broken" 1>&6 +if test "$cross_compiling" = yes; then + echo "$ac_t""$bash_cv_func_strcoll_broken assumed for cross compiling" 1>&6 +else + echo "$ac_t""$bash_cv_func_strcoll_broken" 1>&6 +fi if test $bash_cv_func_strcoll_broken = yes; then cat >> confdefs.h <<\EOF #define STRCOLL_BROKEN 1 @@ -1786,12 +1802,12 @@ echo $ac_n "checking whether signal handlers are of type void""... $ac_c" 1>&6 -echo "configure:1790: checking whether signal handlers are of type void" >&5 +echo "configure:1806: checking whether signal handlers are of type void" >&5 if eval "test \"`echo '$''{'bash_cv_void_sighandler'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1795 "configure" +#line 1811 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -1806,7 +1822,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:1810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_void_sighandler=yes else @@ -1826,12 +1842,12 @@ fi echo $ac_n "checking for TIOCGWINSZ in sys/ioctl.h""... $ac_c" 1>&6 -echo "configure:1830: checking for TIOCGWINSZ in sys/ioctl.h" >&5 +echo "configure:1846: checking for TIOCGWINSZ in sys/ioctl.h" >&5 if eval "test \"`echo '$''{'bash_cv_tiocgwinsz_in_ioctl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1835 "configure" +#line 1851 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/ioctl.h> @@ -1839,7 +1855,7 @@ int x = TIOCGWINSZ; ; return 0; } EOF -if { (eval echo configure:1843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_tiocgwinsz_in_ioctl=yes else @@ -1860,12 +1876,12 @@ fi echo $ac_n "checking for TIOCSTAT in sys/ioctl.h""... $ac_c" 1>&6 -echo "configure:1864: checking for TIOCSTAT in sys/ioctl.h" >&5 +echo "configure:1880: checking for TIOCSTAT in sys/ioctl.h" >&5 if eval "test \"`echo '$''{'bash_cv_tiocstat_in_ioctl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1869 "configure" +#line 1885 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/ioctl.h> @@ -1873,7 +1889,7 @@ int x = TIOCSTAT; ; return 0; } EOF -if { (eval echo configure:1877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_tiocstat_in_ioctl=yes else @@ -1894,12 +1910,12 @@ fi echo $ac_n "checking for FIONREAD in sys/ioctl.h""... $ac_c" 1>&6 -echo "configure:1898: checking for FIONREAD in sys/ioctl.h" >&5 +echo "configure:1914: checking for FIONREAD in sys/ioctl.h" >&5 if eval "test \"`echo '$''{'bash_cv_fionread_in_ioctl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1903 "configure" +#line 1919 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/ioctl.h> @@ -1907,7 +1923,7 @@ int x = FIONREAD; ; return 0; } EOF -if { (eval echo configure:1911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_fionread_in_ioctl=yes else @@ -1928,19 +1944,19 @@ fi echo $ac_n "checking for speed_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:1932: checking for speed_t in sys/types.h" >&5 +echo "configure:1948: checking for speed_t in sys/types.h" >&5 if eval "test \"`echo '$''{'bash_cv_speed_t_in_sys_types'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1937 "configure" +#line 1953 "configure" #include "confdefs.h" #include <sys/types.h> int main() { speed_t x; ; return 0; } EOF -if { (eval echo configure:1944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_speed_t_in_sys_types=yes else @@ -1962,12 +1978,12 @@ echo $ac_n "checking if struct dirent has a d_ino member""... $ac_c" 1>&6 -echo "configure:1966: checking if struct dirent has a d_ino member" >&5 +echo "configure:1982: checking if struct dirent has a d_ino member" >&5 if eval "test \"`echo '$''{'bash_cv_dirent_has_dino'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1971 "configure" +#line 1987 "configure" #include "confdefs.h" #include <stdio.h> @@ -1996,7 +2012,7 @@ ; return 0; } EOF -if { (eval echo configure:2000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_dirent_has_dino=yes else @@ -2018,12 +2034,12 @@ echo $ac_n "checking if struct dirent has a d_fileno member""... $ac_c" 1>&6 -echo "configure:2022: checking if struct dirent has a d_fileno member" >&5 +echo "configure:2038: checking if struct dirent has a d_fileno member" >&5 if eval "test \"`echo '$''{'bash_cv_dirent_has_d_fileno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2027 "configure" +#line 2043 "configure" #include "confdefs.h" #include <stdio.h> @@ -2052,7 +2068,7 @@ ; return 0; } EOF -if { (eval echo configure:2056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_dirent_has_d_fileno=yes else
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,12 @@ +Wed Jan 28 22:44:59 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + + * plot/contour.m: Handle discrete contour levels. + +Tue Jan 27 04:31:22 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + + * control/lyap.m: For compatibility with Matlab, solve + A*X + X*A' + C = 0 instead of A'*X + X*A + C = 0. + Wed Dec 10 00:14:29 1997 John W. Eaton <jwe@bevo.che.wisc.edu> * specfun/bessel.m: New file.
--- a/scripts/plot/contour.m +++ b/scripts/plot/contour.m @@ -39,7 +39,15 @@ gset nosurface; gset contour; gset cntrparam bspline; - command = sprintf ("gset cntrparam levels %d", n); + if (is_scalar (n)) + command = sprintf ("gset cntrparam levels %d", n); + elseif (is_vector (n)) + tmp = sprintf ("%f", n(1)); + for i = 2:length (n) + tmp = sprintf ("%s, %f", tmp, n(i)); + endfor + command = sprintf ("gset cntrparam levels discrete %s", tmp); + endif eval (command); gset noparametric; gset view 0, 0, 1, 1; @@ -67,7 +75,15 @@ gset nosurface; gset contour; gset cntrparam bspline; - command = sprintf ("gset cntrparam levels %d", n); + if (is_scalar (n)) + command = sprintf ("gset cntrparam levels %d", n); + elseif (is_vector (n)) + tmp = sprintf ("%f", n(1)); + for i = 2:length (n) + tmp = sprintf ("%s, %f", tmp, n(i)); + endfor + command = sprintf ("gset cntrparam levels discrete %s", tmp); + endif eval (command); gset parametric; gset view 0, 0, 1, 1;
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,22 @@ +Wed Jan 28 00:18:17 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + + * DLD-FUNCTIONS/dassl.cc (lsode_option_table): + Add missing & to function names. + * DLD-FUNCTIONS/lsode.cc (lsode_option_table): Likewise. + * DLD-FUNCTIONS/quad.cc (quad_option_table): Likewise. + + * Makefile.in (oct-gperf.h): Add -G option to gperf. + + * load-save.cc (get_save_type): Add `UL' and `L' suffixes to large + constant values. For LS_INT, use <= and >= for comparison. + +Mon Jan 26 13:17:59 1998 John W. Eaton <jwe@bevo.che.wisc.edu> + + * ov-usr-fcn.cc (Vmax_recursion_depth): New static variable. + (max_recursion_depth): New fucnction + (symbols_of_ov_usr_fcn): DEFVAR max_recursion_depth. + (octave_user_function::do_index_op): Check Vmax_recursion_depth. + Thu Jan 22 13:45:26 1998 John W. Eaton <jwe@bevo.che.wisc.edu> * dynamic-ld.cc (make_dynamic_loader): Fix typo.
--- a/src/DLD-FUNCTIONS/dassl.cc +++ b/src/DLD-FUNCTIONS/dassl.cc @@ -223,26 +223,26 @@ { "absolute tolerance", { "absolute", "tolerance", 0, 0, }, { 1, 0, 0, 0, }, 1, - DASSL_options::set_absolute_tolerance, - DASSL_options::absolute_tolerance, }, + &DASSL_options::set_absolute_tolerance, + &DASSL_options::absolute_tolerance, }, { "initial step size", { "initial", "step", "size", 0, }, { 1, 0, 0, 0, }, 1, - DASSL_options::set_initial_step_size, - DASSL_options::initial_step_size, }, + &DASSL_options::set_initial_step_size, + &DASSL_options::initial_step_size, }, { "maximum step size", { "maximum", "step", "size", 0, }, { 2, 0, 0, 0, }, 1, - DASSL_options::set_maximum_step_size, - DASSL_options::maximum_step_size, }, + &DASSL_options::set_maximum_step_size, + &DASSL_options::maximum_step_size, }, { "relative tolerance", { "relative", "tolerance", 0, 0, }, { 1, 0, 0, 0, }, 1, - DASSL_options::set_relative_tolerance, - DASSL_options::relative_tolerance, }, + &DASSL_options::set_relative_tolerance, + &DASSL_options::relative_tolerance, }, { 0, { 0, 0, 0, 0, },
--- a/src/DLD-FUNCTIONS/lsode.cc +++ b/src/DLD-FUNCTIONS/lsode.cc @@ -276,38 +276,38 @@ { "absolute tolerance", { "absolute", "tolerance", 0, 0, }, { 1, 0, 0, 0, }, 1, - LSODE_options::set_absolute_tolerance, 0, - LSODE_options::absolute_tolerance, 0, }, + &LSODE_options::set_absolute_tolerance, 0, + &LSODE_options::absolute_tolerance, 0, }, { "initial step size", { "initial", "step", "size", 0, }, { 1, 0, 0, 0, }, 1, - LSODE_options::set_initial_step_size, 0, - LSODE_options::initial_step_size, 0, }, + &LSODE_options::set_initial_step_size, 0, + &LSODE_options::initial_step_size, 0, }, { "maximum step size", { "maximum", "step", "size", 0, }, { 2, 0, 0, 0, }, 1, - LSODE_options::set_maximum_step_size, 0, - LSODE_options::maximum_step_size, 0, }, + &LSODE_options::set_maximum_step_size, 0, + &LSODE_options::maximum_step_size, 0, }, { "minimum step size", { "minimum", "step", "size", 0, }, { 2, 0, 0, 0, }, 1, - LSODE_options::set_minimum_step_size, 0, - LSODE_options::minimum_step_size, 0, }, + &LSODE_options::set_minimum_step_size, 0, + &LSODE_options::minimum_step_size, 0, }, { "relative tolerance", { "relative", "tolerance", 0, 0, }, { 1, 0, 0, 0, }, 1, - LSODE_options::set_relative_tolerance, 0, - LSODE_options::relative_tolerance, 0, }, + &LSODE_options::set_relative_tolerance, 0, + &LSODE_options::relative_tolerance, 0, }, { "step limit", { "step", "limit", 0, 0, }, { 1, 0, 0, 0, }, 1, - 0, LSODE_options::set_step_limit, - 0, LSODE_options::step_limit, }, + 0, &LSODE_options::set_step_limit, + 0, &LSODE_options::step_limit, }, { 0, { 0, 0, 0, 0, },
--- a/src/DLD-FUNCTIONS/quad.cc +++ b/src/DLD-FUNCTIONS/quad.cc @@ -270,14 +270,14 @@ { "absolute tolerance", { "absolute", "tolerance", 0, }, { 1, 0, 0, }, 1, - Quad_options::set_absolute_tolerance, - Quad_options::absolute_tolerance, }, + &Quad_options::set_absolute_tolerance, + &Quad_options::absolute_tolerance, }, { "relative tolerance", { "relative", "tolerance", 0, }, { 1, 0, 0, }, 1, - Quad_options::set_relative_tolerance, - Quad_options::relative_tolerance, }, + &Quad_options::set_relative_tolerance, + &Quad_options::relative_tolerance, }, { 0, { 0, 0, 0, },
--- a/src/Makefile.in +++ b/src/Makefile.in @@ -414,7 +414,7 @@ oct-gperf.h: octave.gperf @echo "making $@ from $<" - @gperf -a -C -E -H octave_kw_hash -g -N octave_kw_lookup -p -t \ + @gperf -a -C -E -G -H octave_kw_hash -g -N octave_kw_lookup -p -t \ $< > $@.t @$(top_srcdir)/move-if-change $@.t $@
--- a/src/load-save.cc +++ b/src/load-save.cc @@ -1786,13 +1786,13 @@ st = LS_U_CHAR; else if (max_val < 65536 && min_val > -1) st = LS_U_SHORT; - else if (max_val < 4294967295 && min_val > -1) + else if (max_val < 4294967295UL && min_val > -1) st = LS_U_INT; else if (max_val < 128 && min_val >= -128) st = LS_CHAR; else if (max_val < 32768 && min_val >= -32768) st = LS_SHORT; - else if (max_val < 2147483648 && min_val > -2147483648) + else if (max_val <= 2147483647L && min_val >= -2147483647L) st = LS_INT; return st;
--- a/src/ov-usr-fcn.cc +++ b/src/ov-usr-fcn.cc @@ -53,6 +53,9 @@ // if they are not explicitly initialized. static bool Vdefine_all_return_values; +// Maximum nesting level for functions called recursively. +static int Vmax_recursion_depth; + // If TRUE, the last computed value is returned from functions that // don't actually define any return variables. static bool Vreturn_last_computed_value; @@ -246,6 +249,12 @@ unwind_protect_int (call_depth); call_depth++; + if (call_depth > Vmax_recursion_depth) + { + ::error ("max_recursion_limit exceeded"); + return retval; + } + if (symtab_entry && ! symtab_entry->is_read_only ()) { symtab_entry->protect (); @@ -525,6 +534,14 @@ } static int +max_recursion_depth (void) +{ + Vmax_recursion_depth = check_preference ("max_recursion_depth"); + + return 0; +} + +static int return_last_computed_value (void) { Vreturn_last_computed_value @@ -546,6 +563,10 @@ value even if one has not been explicitly assigned. See also\n\ default_return_value"); + DEFVAR (max_recursion_depth, 256.0, 0, max_recursion_depth, + "maximum nesting level for functions called recursively.\n\ +The default value is 256."); + DEFVAR (return_last_computed_value, 0.0, 0, return_last_computed_value, "if a function does not return any values explicitly, return the\n\ last computed value");