Mon 26 May 2014 05:53:17 PM UTC, original submission:
I'm currently trying to get up and running the octave interface for perl again
http://search.cpan.org/~aadler/Inline-Octave-0.31/Octave.pm
with the current octave 3.8.1. Until the previous version 3.6.4 all worked fine. The sample program
gave with 3.6.4 the correct output
jnk1= 4
When using octave 3.8.1, I get the following error:
sample.pm
Warning: function name 'myfunc' does not agree with function file name ''; (in octave code) at ./sample.pm line 0.
Undefined subroutine &main::myfunc called at ./sample.pm line 5.
Debugging, I found octave-3.8.1/libinterp/parse-tree/oct-parse.in.yy line 2819ff
with the if-condition lexer.reading_fcn_file as true -> warning. The "Undefined subroutine" error above seems like a follow-up error as id_name is overwritten with the empty variable nm.
The corresponding if-condition in octave-3.6.4/src/oct-parse.yy line 2826ff looks like
but with reading_fcn_file as false -> no warning. The reason for the different value of this flag might be an additional if-clause in octave-3.8.1/libinterp/parse-tree/lex.ll line 2411ff
which sets reading_fcn_file to true but is missing in 3.6.4. But this is too deep in the octave internals for me to be sure.
Inline::Octave starts an octave instance and communicates with it via
use IPC::Open3;
use IO::File;
So can anybody help me with this issue? An empty function file name seems to be strange.
|