octave-bug-tracker
[Top][All Lists]
Advanced

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

[Octave-bug-tracker] [bug #60016] libqhull was deprecated in favor of li


From: Markus Mützel
Subject: [Octave-bug-tracker] [bug #60016] libqhull was deprecated in favor of libqhull_r
Date: Fri, 7 May 2021 11:58:32 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.51

Update of bug #60016 (project octave):

                  Status:          Patch Reviewed => In Progress            

    _______________________________________________________

Follow-up Comment #17:

I rebased the patch to the latest default branch. That needed quite a few
manual changes. (I hope I got those right. See attachment.)

When I compile with that patch with gcc 10 on Ubuntu 20.10 (libqhull-r8.0
2020.1-2), I see loads of warnings for each time the qhT structure is
initialized:

../libinterp/dldfcn/convhulln.cc: In function ‘octave_value_list
Fconvhulln(const octave_value_list&, int)’:
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::ALLOWshort’ [-Wmissing-field-initializers]
  174 |   qhT context = { 0 };
      |                     ^
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::ALLOWwarning’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::ALLOWwide’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::ANGLEmerge’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::APPROXhull’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::MINoutside’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::ANNOTATEoutput’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::ATinfinity’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::AVOIDold’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::BESToutside’ [-Wmissing-field-initializers]
../libinterp/dldfcn/convhulln.cc:174:21: warning: missing initializer for
member ‘qhT::CDDinput’ [-Wmissing-field-initializers]
[...]


Is it ok to leave all of those member fields uninitialized? Or should we do
something different?


The tests for convhulln.oct are failing:

>>>>> processing
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.cc-tst
***** testif HAVE_QHULL
 cube = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
 [h, v] = convhulln (cube, "Qt");
 assert (size (h), [12 3]);
 h = sortrows (sort (h, 2), [1:3]);
 assert (h, [1 2 4; 1 2 6; 1 4 8; 1 5 6; 1 5 8; 2 3 4; 2 3 7; 2 6 7; 3 4 7; 4
7 8; 5 6 7; 5 7 8]);
 assert (v, 1, 10*eps);
 [h2, v2] = convhulln (cube);  # Test default option = "Qt"
 assert (size (h2), size (h));
 h2 = sortrows (sort (h2, 2), [1:3]);
 assert (h2, h);
 assert (v2, v, 10*eps);
!!!!! test failed
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
failed to load:
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
undefined symbol: qh_facet3vertex
***** testif HAVE_QHULL
 cube = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
 [h, v] = convhulln (cube, "QJ");
 assert (size (h), [12 3]);
 assert (sortrows (sort (h, 2), [1:3]), [1 2 4; 1 2 5; 1 4 5; 2 3 4; 2 3 6; 2
5 6; 3 4 8; 3 6 7; 3 7 8; 4 5 8; 5 6 8; 6 7 8]);
 assert (v, 1.0, 1e6*eps);
!!!!! test failed
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
failed to load:
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
undefined symbol: qh_facet3vertex
***** testif HAVE_QHULL
 tetrahedron = [1 1 1;-1 -1 1;-1 1 -1;1 -1 -1];
 [h, v] = convhulln (tetrahedron);
 h = sortrows (sort (h, 2), [1 2 3]);
 assert (h, [1 2 3;1 2 4; 1 3 4; 2 3 4]);
 assert (v, 8/3, 10*eps);
!!!!! test failed
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
failed to load:
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
undefined symbol: qh_facet3vertex
***** testif HAVE_QHULL
 triangle = [0 0; 1 1; 1 0; 1 2];
 h = convhulln (triangle);
 assert (size (h), [3 2]);
!!!!! test failed
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
failed to load:
/home/osboxes/Documents/Repositories/Octave/octave-1/.build/libinterp/dldfcn/convhulln.oct:
undefined symbol: qh_facet3vertex


Similar errors about undefined symbols for "test convhull", "test delaunay",
"test delaunayn", "test griddata", "test griddata3", "test griddatan", and
"test voronoi".
It looks like it might be a little more involved to switch to using
libqhull_r. Some functions seem to no longer exist in the reentrant version of
the library (or they have been renamed?).

@Stefan: When those issues are fixed, would you like to be added to the list
of contributors that appears at the beginning of the manual?

(file #51399)
    _______________________________________________________

Additional Item Attachment:

File name: bug60016-qhull-reentrant-v3.patch Size:17 KB
   
<https://file.savannah.gnu.org/file/bug60016-qhull-reentrant-v3.patch?file_id=51399>



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?60016>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

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