octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #64784] VM causes coredump since recent change


From: anonymous
Subject: [Octave-bug-tracker] [bug #64784] VM causes coredump since recent changes
Date: Wed, 18 Oct 2023 08:49:15 -0400 (EDT)

Follow-up Comment #5, bug #64784 (project octave):

a) Doing a hg bisect will take some time (~2 hours per iteration in my complex
environment) and I may not be able to do this until the week-end (For 4
commits in question, bisect seems to be a little overkill when only three of
them concern the VM and all three are pretty small changes though). 

b) The core dump seems to occur in a multiple cascade of (sub) functions and
anonymous functions. They require a large database and a large octave
application to work and I can try to simplify this at the week-end to make it
shareable:
- A function (file) tries to find a minimum using fminunc expecting a vector
and returning a double. The function to be minimized is defined via an
anonymous function which sets/passes the parameter and calls the next
subfunction (not a nested, just a secondary function of the same function
file) 
- The subfunction is actually calculating an integral (using quadv) and its
derivative integral (using quadgk) both relying on anonymous functions to
set/pass the parameters and calling the next subfunctions of the same function
file
- The final (sub) functions are plain vanilla functions calculating f(x) and
f'(x) 

c) I can confirm that the local changes should not be interfering. They are
two changes done in order to avoid a compiler warning (change syntax) and
externalising a boolean.


hg diff
diff -r e9eb8975961e libinterp/corefcn/input.h
--- a/libinterp/corefcn/input.h
+++ b/libinterp/corefcn/input.h 
@@ -42,7 +42,7 @@
 #include "pager.h"
 
 // TRUE after a call to completion_matches.
-extern bool octave_completion_matches_called;
+extern OCTINTERP_API bool octave_completion_matches_called;
 
 // TRUE if the plotting system has requested a call to drawnow at
 // the next user prompt.
diff -r e9eb8975961e liboctave/array/Range.h
--- a/liboctave/array/Range.h   
+++ b/liboctave/array/Range.h  
@@ -252,7 +252,7 @@
 
         T *array = retval.fortran_vec ();
 
-        idx.loop (n, [=, &array] (octave_idx_type i)
+        idx.loop (n, [*this, &array] (octave_idx_type i)
         {
           if (i == 0)
             // Required for proper NaN handling.




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64784>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]