#275 Octave patches for 3.4.0 compatibility, etc.

Karl Wette

Two patches to the Octave module:

octave-config.patch: patches to Octave configuration and example building
* configure.in: tries to use octave-config to find the Octave include directory
first before falling back to /usr/include; makes it easier to test with
different versions of Octave
* Examples/Makefile.in and Examples/octave/*/Makefile: run the examples runme.m
with "make check", as is done for the Python examples; should make it easier
to catch if the examples are broken

octave-bugs.patch: patches to fix Octave 3.4.0 compatibility / broken test cases
* Lib/octave/octrun.swg: fixes a bug that was breaking the "variables" example,
due to an API change in Octave 3.4.0 (it seems that octave_base_values are now
assumed to be zero-dimensional by default, unless dims() is overridden).
* Examples/octave/operator/example.i: Octave module now uses __ before and
after Python-like operator functions.
* Examples/octave/operator/runme.m: since Octave 3.2.4 printf doesn't accept
octave_maps as printable types, but both octave_swig_type and octave_swig_ref
claim to be maps (is_map() returns true); but wrapping them in disp() changes
then to a string (using __str__()) so they can be printed.

With these patches applied against SWIG (SVN version 12773), I ran the test suite
and examples against compiled-from-source versions of octave 3.0.5, 3.2.4, and
3.4.0; the only test that failed was the imports.multicpptest test for octave 3.2.4,
but since I couldn't reproduce this failure for 3.4.0 I think this may be due to
a bug in Octave.


  • Karl Wette
    Karl Wette

  • Karl Wette
    Karl Wette

  • Karl Wette
    Karl Wette

    • assigned_to: nobody --> wsfulton
  • committed; revision 12774.

    • assigned_to: wsfulton --> xavier98
    • status: open --> closed