changeset 25100:b8ffceb06354

maint: Merge stable to default.
author John W. Eaton <jwe@octave.org>
date Tue, 03 Apr 2018 08:15:40 -0400
parents 7e04ddd963a9 (current diff) daff5efe062f (diff)
children 1fdd1b211ed4
files configure.ac
diffstat 5 files changed, 53 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Mon Apr 02 17:29:19 2018 -0700
+++ b/configure.ac	Tue Apr 03 08:15:40 2018 -0400
@@ -2574,6 +2574,7 @@
   [], [don't use SUNDIALS IDA library, solvers ode15i and ode15s will be disabled],
   [warn_sundials_ida=
    OCTAVE_CHECK_SUNDIALS_SIZEOF_REALTYPE
+   OCTAVE_CHECK_SUNDIALS_IDA_DENSE
    OCTAVE_CHECK_SUNDIALS_IDAKLU])
 LIBS="$save_LIBS"
 
@@ -2581,6 +2582,7 @@
 dnl the build features script will get the correct value.
 if test -n "$SUNDIALS_IDA_LIBS" \
     && test -n "$SUNDIALS_NVECSERIAL_LIBS" \
+    && test $octave_cv_sundials_ida_dense = yes \
     && test $octave_cv_sundials_realtype_is_double = yes; then
   AC_DEFINE(HAVE_SUNDIALS, 1, [Define to 1 if SUNDIALS is available.])
 fi
@@ -3409,7 +3411,7 @@
   Default pager:                 $DEFAULT_PAGER
   gnuplot:                       $GNUPLOT
 
-  Build Octave Qt GUI:                  $build_qt_gui
+  Build Octave Qt GUI:                  $BUILD_QT_SUMMARY_MSG
   JIT compiler for loops:               $ENABLE_JIT
   Build Java interface:                 $build_java
   Build static libraries:               $STATIC_LIBS
--- a/libinterp/dldfcn/__ode15__.cc	Mon Apr 02 17:29:19 2018 -0700
+++ b/libinterp/dldfcn/__ode15__.cc	Tue Apr 03 08:15:40 2018 -0400
@@ -41,6 +41,9 @@
 
 #  if defined (HAVE_IDA_IDA_H)
 #    include <ida/ida.h>
+#  endif
+
+#  if defined (HAVE_IDA_IDA_DENSE_H)
 #    include <ida/ida_dense.h>
 #  endif
 
--- a/libinterp/octave-value/ov-fcn-handle.cc	Mon Apr 02 17:29:19 2018 -0700
+++ b/libinterp/octave-value/ov-fcn-handle.cc	Tue Apr 03 08:15:40 2018 -0400
@@ -92,9 +92,6 @@
       if (uf_scope)
         uf_scope.cache_name (nm);
     }
-
-  if (uf && uf->is_nested_function () && ! uf->is_subfunction ())
-    error ("handles to nested functions are not yet supported");
 }
 
 octave_value_list
--- a/m4/acinclude.m4	Mon Apr 02 17:29:19 2018 -0700
+++ b/m4/acinclude.m4	Tue Apr 03 08:15:40 2018 -0400
@@ -1715,6 +1715,7 @@
   done
 
   if test $build_qt_gui = yes; then
+    BUILD_QT_SUMMARY_MSG="yes (version: $have_qt_version)"
     if test x"$have_qt_version" = x4; then
       AC_DEFINE(HAVE_QT4, 1, [Define to 1 if using Qt version 4.])
     fi
@@ -1722,6 +1723,11 @@
       AC_DEFINE(HAVE_QT5, 1, [Define to 1 if using Qt version 5.])
     fi
   else
+    if test -n "$QT_MODULES_MISSING"; then
+      BUILD_QT_SUMMARY_MSG="no (missing:$QT_MODULES_MISSING)"
+    else
+      BUILD_QT_SUMMARY_MSG="no"
+    fi
     if test -n "$warn_qt_libraries"; then
       OCTAVE_CONFIGURE_WARNING([warn_qt_libraries])
     fi
@@ -1916,6 +1922,16 @@
     [build_qt_gui=no
      warn_qt_libraries="Qt libraries not found; disabling Qt GUI"])
 
+  QT_MODULES_MISSING=
+  if test $build_qt_gui = no; then
+    ## Get list of modules that are missing
+    for pkg in $QT_MODULES; do
+      if ! $PKG_CONFIG --exists $pkg; then
+        QT_MODULES_MISSING="$QT_MODULES_MISSING $pkg"
+      fi
+    done
+  fi
+
   if test $build_qt_gui = yes; then
     ## Retrieve Qt compilation and linker flags
     QT_CPPFLAGS="$($PKG_CONFIG --cflags-only-I $QT_MODULES | $SED -e 's/^ *$//')"
@@ -2219,6 +2235,36 @@
   fi
 ])
 dnl
+dnl Check whether SUNDIALS IDA library has the IDADENSE linear solver.
+dnl The IDADENSE API was removed in SUNDIALS version 3.0.0.
+dnl
+AC_DEFUN([OCTAVE_CHECK_SUNDIALS_IDA_DENSE], [
+  AC_CHECK_HEADERS([ida/ida_dense.h ida_dense.h])
+  AC_CACHE_CHECK([whether SUNDIALS IDA includes the IDADENSE linear solver],
+    [octave_cv_sundials_ida_dense],
+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+         #if defined (HAVE_IDA_IDA_DENSE_H)
+         #include <ida/ida_dense.h>
+         #else
+         #include <ida_dense.h>
+         #endif
+         ]], [[
+         void *mem = 0;
+         long int num = 0;
+         IDADense (mem, num);
+      ]])],
+      octave_cv_sundials_ida_dense=yes,
+      octave_cv_sundials_ida_dense=no)
+    ])
+  if test $octave_cv_sundials_ida_dense = yes; then
+    AC_DEFINE(HAVE_SUNDIALS_IDADENSE, 1,
+      [Define to 1 if SUNDIALS IDA includes the IDADENSE linear solver.])
+  else
+    warn_sundials_ida_dense="SUNDIALS IDA library does not include the IDADENSE linear solver, ode15i and ode15s will be disabled"
+    OCTAVE_CONFIGURE_WARNING([warn_sundials_ida_dense])
+  fi
+])
+dnl
 dnl Add warning to final summary.
 dnl
 AC_DEFUN([OCTAVE_CONFIGURE_WARNING], [
--- a/test/nest/nest.tst	Mon Apr 02 17:29:19 2018 -0700
+++ b/test/nest/nest.tst	Tue Apr 03 08:15:40 2018 -0400
@@ -60,7 +60,7 @@
 %! assert (f("foo"), "nested foo");
 %! assert (f("foo"), "nested foo");
 
-%!test <39257>
+%!test <*39257>
 %! f = no_closure (1);
 %! assert (f(), "nested");
 %! assert (f("foo"), "nested foo");