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	Sun Jan 25 08:27:25 1998 +0000
+++ b/ChangeLog	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/Makeconf.in	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/NEWS	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/aclocal.m4	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/configure.in	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/arith.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/basics.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/expr.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/func.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/numbers.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/stmt.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/strings.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/doc/interpreter/var.texi	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/kpathsea/ChangeLog	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/kpathsea/Makefile.in	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/mkoctfile.in	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/readline/configure	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/scripts/ChangeLog	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/scripts/plot/contour.m	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/ChangeLog	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/DLD-FUNCTIONS/dassl.cc	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/DLD-FUNCTIONS/lsode.cc	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/DLD-FUNCTIONS/quad.cc	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/Makefile.in	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/load-save.cc	Thu Jan 29 04:46:36 1998 +0000
@@ -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	Sun Jan 25 08:27:25 1998 +0000
+++ b/src/ov-usr-fcn.cc	Thu Jan 29 04:46:36 1998 +0000
@@ -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");
--- a/test/octave.test/system/computer-1.m	Sun Jan 25 08:27:25 1998 +0000
+++ b/test/octave.test/system/computer-1.m	Thu Jan 29 04:46:36 1998 +0000
@@ -1,1 +1,2 @@
-isstr (computer ()) && computer () == octave_config_info ("target_host_type")
+(isstr (computer ())
+ && computer () == octave_config_info ("canonical_host_type"))