On 2014-01-03 15:07-0700 Orion Poplawski wrote:

> On 12/31/2013 06:50 PM, Alan W. Irwin wrote:
>> Hi Orion:
>>
>> Thanks for doing that suggested experiment.  More below
>> in context.
>>
>> On 2013-12-31 16:52-0700 Orion Poplawski wrote:
>>
>>> On 12/31/2013 11:56 AM, Alan W. Irwin wrote:
>>>> On 2013-12-30 13:42-0700 Orion Poplawski wrote:
>>>>
>>>>> Ah, you hit the nail on the head - they dropped OCTAVE_API_VERSION_NUMBER
>>>>> completely.  I've sent an email to the octave developers asking why.
>>>>
>>>> To see if there are any more octave-3.8.0 issues beyond this one, I
>>>> suggest you temporarily add
>>>>
>>>> #define OCTAVE_API_VERSION_NUMBER 49
>>>>
>>>> to the generated bindings/octave/plplot_octaveOCTAVE_wrap.cxx
>>>> file and see how far you get with
>>>
>>> cd /home/orion/fedora/plplot/plplot-5.9.11/fedora/bindings/octave &&
>>> /usr/lib64/ccache/c++   -DHAVE_CONFIG_H -Dplplot_octave_EXPORTS -O2 -g -pipe
>>> -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
>>> -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  
>>> -m64
>>> -mtune=generic  -fPIC -I/home/orion/fedora/plplot/plplot-5.9.11/include
>>> -I/home/orion/fedora/plplot/plplot-5.9.11/lib/qsastime
>>> -I/home/orion/fedora/plplot/plplot-5.9.11/fedora
>>> -I/home/orion/fedora/plplot/plplot-5.9.11/fedora/include
>>> -I/home/orion/fedora/plplot/plplot-5.9.11/fedora/bindings/octave
>>> -I/usr/include/octave-3.8.0 -I/usr/include/octave-3.8.0/octave
>>> -I/home/orion/fedora/plplot/plplot-5.9.11/bindings/swig-support    -o
>>> CMakeFiles/plplot_octave.dir/plplot_octaveOCTAVE_wrap.cxx.o -c
>>> /home/orion/fedora/plplot/plplot-5.9.11/fedora/bindings/octave/plplot_octaveOCTAVE_wrap.cxx
>>>
>>> /home/orion/fedora/plplot/plplot-5.9.11/fedora/bindings/octave/plplot_octaveOCTAVE_wrap.cxx:
>>>
>>> In member function ‘virtual dim_vector octave_swig_type::dims() const’:
>>> /home/orion/fedora/plplot/plplot-5.9.11/fedora/bindings/octave/plplot_octaveOCTAVE_wrap.cxx:1183:46:
>>>
>>> error: ‘class octave_value’ has no member named ‘is_real_nd_array’
>>>       } else if (out.is_matrix_type() || out.is_real_nd_array() ||
>>> out.is_numeric_type() ) {
>>>                                              ^
>>
>> "is_real_nd_array" is only used in a function that is provided by swig
>> (as opposed to C++ interface code supplied by PLplot).  So I would
>> summarize this issue as a backwards-incompatible Octave change (or
>> bug) that is confounding swig very similar to the missing
>> OCTAVE_API_VERSION_NUMBER #define.
>>
>> Again, I think the Octave developers should be consulted about this to
>> see whether this is a bug or an intended backwards-incompatible change
>> in the Octave C++ library API.
>
> According to the octave folks, "is_real_nd_array()" was intentionally removed,
> and may indeed have only ever returned "false".
>
> octave upstream seems adverse to re-adding OCTAVE_API_VERSION_NUMBER.
>
> I have gotten no response yet to my swig bug:
> https://sourceforge.net/p/swig/bugs/1353/
>

I found via google the octave threads at
http://octave.1599824.n4.nabble.com/Why-no-more-OCTAVE-API-VERSION-NUMBER-td4660468.html
and
http://octave.1599824.n4.nabble.com/Any-documentation-of-changes-to-libinterp-API-td4660492.html
where octave developers replied to your two reports, and I agree with
your conclusion that it looks like they will do nothing to rescind
those backwards incompatibilities.

> [out of order]I may be able to put some hacks into the Fedora swig package to 
> work around
> these problems, but I rather avoid it.
>
> Any suggestions for how to proceed?

For the PLplot build system it should be straightforward to create an
Octave version test.  Also, I am pretty sure that swig users are
allowed to redefine any core swig functionality.  Thus, for any Octave
version greater than 3.6.4, we would want to #define
OCTAVE-API-VERSION-NUMBER and simply copy the the swig core
functionality that currently uses is_real_nd_array() and modify it to
drop that call.  But I don't understand OOP well enough to figure out
the code unit that needs to be copied so I hope you or Andrew can
figure that out (or figure out some other simpler means of effectively
dropping that call to is_real_nd_array()).

> Have you had any luck with the swig folks?

I haven't tried yet since I think your bug report will need to be
supplemented if we attempt to follow the above plan to modify PLplot
so it will work properly with Octave-3.8.0.  Once 3.8.0 works for us,
you should update that bug report with a patch to swig that takes all
measures we discover need to be made in the PLplot case. At that point
I would be willing to bring up your bug report on the swig mailing
list. There is nothing like a patch (no matter how crude/brute force)
to focus and attract discussion.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to