octave-maintainers
[Top][All Lists]
Advanced

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

Re: octave-image requires c++11


From: Carnë Draug
Subject: Re: octave-image requires c++11
Date: Thu, 30 Jul 2015 19:15:52 +0100

On 30 July 2015 at 04:57, John W. Eaton <address@hidden> wrote:
> On 07/29/2015 10:48 PM, Orion Poplawski wrote:
>>
>> It appears that octave-image 2.4.0 requires c++11:
>>
>> checking whether g++ supports C++11 features by default... no
>> checking whether g++ supports C++11 features with -std=gnu++11... no
>> checking whether g++ supports C++11 features with -std=gnu++0x... no
>> checking whether g++ supports C++11 features with -std=c++11... no
>> checking whether g++ supports C++11 features with -std=c++0x... no
>> configure: error: *** A compiler with support for C++11 language
>> features is required.
>>
>> While I can very much sympathize with wanting to have progress, just
>> note that it is a bit trickier (though not impossible) to get access to
>> a C++11 compiler on RHEL6.  Just something I wanted to note.
>
>
> Yeah, I'm not a fan of this choice either.  At the very least, it would be
> helpful to provide some kind of fallback code.  Or, if that causes too much
> of a maintenance burden, then it would be much better to only disable those
> features that actually require C++11 and at least allow a subset of the
> package to build.
>

I don't see the point of coding a workaround.  I might as well use only the
workaround then.  It is possible to code without std::function, I did that
for a while, but it makes the code messier and I'm not interested on that.

At the moment, C++11 is mainly used by connectivity class, which is a C++
class for the image package, not a function.  It is used by:

  * bwlabeln
  * bwlabel
  * bwperim
  * bwconncomp
  * imreconstruct
  * watershed
  * conndef
  * iptcheckconn
  * bwfill

These functions then get used by:

  * regionprops
  * bwboundaries
  * bwpropfilt
  * imregionalmax
  * imregionalmin
  * bwmorph
  * bwclearborder
  * bwselect

There are other functions which then make use of these.  Not having C++11
will disable a large chunk of the image package, pretty much all of the
mathematical morphology functions.  And I don't think a function needs to
be aware that one of its dependencies needs C++11 to work properly.
It's not a function that needs it, it's one of the classes of the package.

It appears that the minimum required gcc version is 4.5.  That was released
more than 5 years ago.  Both latest stable debian and centOS releases
support it so I don't think it's a bad target.  Anyone with older systems
can:

  1) install an older version of the image package;
  2) revise their need for the image package 2.4;
  3) upgrade their distribution;
  4) build a newer gcc themselves;
  5) employ someone to code a workaround for them.

I'll be happy to talk with anyone interested on doing 5, and explains any
problems, but I'm not interested on doing it myself.

I have stated my opinion about it for core before [1].

Carnë

[1] http://octave.1599824.n4.nabble.com/A-case-for-C-11-in-Octave-td4667350.html



reply via email to

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