Compile problem ov.cc of octave-3.1.51 on cygwin
Tatsuro MATSUOKA
tmacchant at yahoo.co.jp
Wed Jul 30 03:26:03 CDT 2008
Hello
> 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.
I will try it.
Thanks.
Tatsuro
> >
> > 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
>
--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/
More information about the Bug-octave
mailing list