Compile problem ov.cc of octave-3.1.51 on cygwin

Jaroslav Hajek highegg at gmail.com
Wed Jul 30 03:22:09 CDT 2008


On Wed, Jul 30, 2008 at 10:18 AM, Tatsuro MATSUOKA
<tmacchant at yahoo.co.jp> wrote:
> Hello Jaroslav Hajek
>
> OK! For gl-render.cc problem, I will ask at the cygwin ML on this matter.
>
> Is there a way to skip to compile gl-render.cc because it may be not required when opengl is not used.
>  I tried --without-opengl but it was not skipped.

If this does not work, then probably not. I'm not familiar with the
graphics stuff.
You can probably enable compilation by commenting out the infringing statements.

>
> Regards
>
> Tatsuro
>
> --- Jaroslav Hajek <highegg at gmail.com> wrote:
>
>> On Wed, Jul 30, 2008 at 9:49 AM, Tatsuro MATSUOKA <tmacchant at yahoo.co.jp> wrote:
>> > Hello
>> >
>> > I am now going to build octave-3.1.51 on the cygwin with the new patch.
>> >
>> > I cannot complete to build octave from the following the reason.
>> > http://www.cae.wisc.edu/pipermail/bug-octave/2008-July/006413.html
>> >
>>
>> I'm afraid I cannot answer.
>> "error: invalid conversion from `void (*)()' to `void (*)()'" seems a
>> nonsense to me - the types
>> are identical. Perhaps you have hit a bug in gcc 3.4.x?
>> In any case, this is not related to the integer conversions issue, so
>> I suggest you start a new thread.
>>
>> > Can anyone tell me solve the problem or temprary avoiding compiling them
>> >
>> > I tried ./configure --without-fltk, but nothing ocurred.
>> >
>> > Regards
>> >
>> > Tatsuro
>> >
>> >
>> >
>> > --- Jaroslav Hajek <highegg at gmail.com> wrote:
>> >
>> >> On Tue, Jul 29, 2008 at 10:56 PM, John W. Eaton <jwe at bevo.che.wisc.edu> wrote:
>> >> > On 29-Jul-2008, Jaroslav Hajek wrote:
>> >> >
>> >> > | On Tue, Jul 29, 2008 at 10:10 AM, Tatsuro MATSUOKA
>> >> > | <tmacchant at yahoo.co.jp> wrote:
>> >> > | > Hello Jaroslav Hajek
>> >> > | >
>> >> > | > With your patch, ov.cc complie problem ov.cc is resolved for cygwin.
>> >> > | >
>> >> > |
>> >> > | Good. John, can you apply this?
>> >> >
>> >> > Did you see my earlier reply?
>> >> >
>> >> > https://www.cae.wisc.edu/pipermail/bug-octave/2008-July/006394.html
>> >> >
>> >> > I asked whether there should maybe be at least a warning for values
>> >> > that are out of range.
>> >> >
>> >> > jwe
>> >> >
>> >>
>> >> Sorry, I attributed the question to my suggestion that octave_int<T>
>> >> should be convertible to default int. The attached patch adds a
>> >> safe_conversion method to octave_int<T> and uses it in
>> >> convert_to_int_array. Is this what you meant?
>> >> However, caling, for instance, int8_array_value () on an octave_value
>> >> object containing a 32-bit int array does not gripe either. Perhaps we
>> >> could make the octave_int<T>:: octave_int(const octave_int<U>&)
>> >> constructor gripe if data need to be truncated.
>> >> In this way, the octave_int<> types would act as "conversion-safe
>> >> integers" contrary to the normal, unsafe integers. I think, however,
>> >> that a mechanism to avoid multiple gripes from loops would be needed
>> >> in such case.
>> >>
>> >> --
>> >> RNDr. Jaroslav Hajek
>> >> computing expert
>> >> Aeronautical Research and Test Institute (VZLU)
>> >> Prague, Czech Republic
>> >> url: www.highegg.matfyz.cz
>> >> > # HG changeset patch
>> >> # User Jaroslav Hajek <highegg at gmail.com>
>> >> # Date 1217398327 -7200
>> >> # Node ID 17373754168aca71345fbd9d14cc03efe626b773
>> >> # Parent  dd5cc5016487f81a49b0f17a8127cdabc61a4c6c
>> >> make octave_value::int_vector_value avoid multiple conversions for integer values.
>> >>
>> >> diff --git a/liboctave/oct-inttypes.h b/liboctave/oct-inttypes.h
>> >> --- a/liboctave/oct-inttypes.h
>> >> +++ b/liboctave/oct-inttypes.h
>> >> @@ -328,6 +328,13 @@
>> >>    operator double (void) const { return double_value (); }
>> >>
>> >>    operator float (void) const { return float_value (); }
>> >> +
>> >> +  template <class U>
>> >> +  bool safe_conversion (U& target)
>> >> +  {
>> >> +    target = OCTAVE_INT_FIT_TO_RANGE (value (), U);
>> >> +    return (value () == target);
>> >> +  }
>> >>
>> >>    octave_int<T>& operator += (const octave_int<T>& x)
>> >>    {
>> >> diff --git a/src/ChangeLog b/src/ChangeLog
>> >> --- a/src/ChangeLog
>> >> +++ b/src/ChangeLog
>> >> @@ -1,3 +1,8 @@
>> >> +2008-07-28  Jaroslav Hajek <highegg at gmail.com>
>> >> +
>> >> +     * ov.cc (octave_value::int_vector_value): probe for every known integer type.
>> >> +     * ov.cc (convert_to_int_array): New static function.
>> >> +
>> >>  2008-07-24  John W. Eaton  <jwe at octave.org>
>> >>
>> >>       * load-path.h (load_path::dir_info::class_info): New struct.
>> >> diff --git a/src/ov.cc b/src/ov.cc
>> >> --- a/src/ov.cc
>> >> +++ b/src/ov.cc
>> >> @@ -1346,6 +1346,26 @@
>> >>                                               type_name (), "real vector"));
>> >>  }
>> >>
>> >> +template <class T>
>> >> +static Array<int>
>> >> +convert_to_int_array (const Array<octave_int<T> >& A)
>> >> +{
>> >> +  Array<int> O (A.dims ());
>> >> +  octave_idx_type n = A.numel ();
>> >> +  bool warned = false;
>> >> +  for (octave_idx_type i = 0; i < n; i++)
>> >> +    {
>> >> +      if (! A.xelem (i).safe_conversion (O.xelem (i)) && warned)
>> >> +        {
>> >> +          warned = true;
>> >> +          warning ("int_vector_value: value truncated to fit to range");
>> >> +        }
>> >> +    }
>> >> +
>> >> +
>> >> +  return O;
>> >> +}
>> >> +
>> >>  Array<int>
>> >>  octave_value::int_vector_value (bool force_string_conv, bool require_int,
>> >>                               bool force_vector_conversion) const
>> >> @@ -1354,14 +1374,24 @@
>> >>
>> >>    if (is_integer_type ())
>> >>      {
>> >> -      // query for the first type that is wide enough
>> >> -#if SIZEOF_INT == 2
>> >> -      retval = int16_array_value ();
>> >> -#elif SIZEOF_INT == 4
>> >> -      retval = int32_array_value ();
>> >> -#else
>> >> -      retval = int64_array_value ();
>> >> -#endif
>> >> +      if (is_int32_type ())
>> >> +        retval = convert_to_int_array (int32_array_value ());
>> >> +      else if (is_int64_type ())
>> >> +        retval = convert_to_int_array (int64_array_value ());
>> >> +      else if (is_int16_type ())
>> >> +        retval = convert_to_int_array (int16_array_value ());
>> >> +      else if (is_int8_type ())
>> >> +        retval = convert_to_int_array (int8_array_value ());
>> >> +      else if (is_uint32_type ())
>> >> +        retval = convert_to_int_array (uint32_array_value ());
>> >> +      else if (is_uint64_type ())
>> >> +        retval = convert_to_int_array (uint64_array_value ());
>> >> +      else if (is_uint16_type ())
>> >> +        retval = convert_to_int_array (uint16_array_value ());
>> >> +      else if (is_uint8_type ())
>> >> +        retval = convert_to_int_array (uint8_array_value ());
>> >> +      else
>> >> +        retval = array_value (force_string_conv);
>> >>      }
>> >>    else
>> >>      {
>> >>
>> >
>> >
>> > --------------------------------------
>> > Power up the Internet with Yahoo! Toolbar.
>> > http://pr.mail.yahoo.co.jp/toolbar/
>> >
>>
>>
>>
>> --
>> RNDr. Jaroslav Hajek
>> computing expert
>> Aeronautical Research and Test Institute (VZLU)
>> Prague, Czech Republic
>> url: www.highegg.matfyz.cz
>>
>
>
> --------------------------------------
> Power up the Internet with Yahoo! Toolbar.
> http://pr.mail.yahoo.co.jp/toolbar/
>



-- 
RNDr. Jaroslav Hajek
computing expert
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz


More information about the Bug-octave mailing list