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: Sat, 6 Feb 2021 10:18:33 -0500 (EST)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.63

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

                 Summary: libqhull was deprecated in favor of libqhull_r
                 Project: GNU Octave
            Submitted by: mmuetzel
            Submitted on: Sat 06 Feb 2021 04:18:31 PM CET
                Category: Libraries
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Build Failure
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
                 Release: dev
         Discussion Lock: Any
        Operating System: Any

    _______________________________________________________

Details:

The non-reentrant version of the Qhull library `libqhull` was deprecated
upstream in favor of the reentrant version of the same library `libqhull_r`.

>From the upstream repository:
https://github.com/qhull/qhull/blob/master/src/libqhull/DEPRECATED.txt

qhull/src/libqhull

    This directory contains the non-reentrant version of qhull, libqhull.
    
    New code should use the reentrant version of qhull (libqhull_r).
    It allows multiple instances of qhull to run at the same time. On 
    modern architectures, it is nearly as fast as libqhull.   
    
    Qhull programs may be built with either library.  Each program has a
    reentrant version (e.g., qconvex_r.c) and a non-reentrant 
    version (qconvex.c).   The programs, rbox, qconvex, qdelaunay, qhalf, 
    and qvoronoi, are built with libqhull.  The qhull program is built 
    with libqhull_r.

    Qhull's C++ interface requires libqhull_r.  If you previously used the 
    C++ interface with libqhull, you will need to update your code to
libqhull_r.
    See qh-code.htm#convert and Changes.txt for suggestions.
     
    The C code in libqhull looks unusual because of the 'qh' macro.  The 'qh'
    macro controls access to Qhull's global data structure, qhT.  If 
    'qh_QHpointer' is defined, 'qh' is 'qh_qh->' and 'qh_qh' is defined as
    'qhT *qh_qh', otherwise 'qh' is 'qh_qh.' and 'qh_qh' is defined as
    'qhT qh_qh'.  This allows dynamic allocation of qh_qh without modifying
    the code.  Reentrant Qhull is a better solution.

    libqhull will be supported indefinitely.  The qh_QHpointer variation
    of libqhull will be not be retested each release.  It is replaced by 
    libqhull_r.


See this related note from the Debian repositories:
https://salsa.debian.org/science-team/qhull/-/blob/debian/debian/README.Debian

Deprecation Notice
------------------
The non-reentrant libqhull is no longer built by default in upstream. You
should port your software to the reentrant libqhull_r library as soon as
possible. libqhull is likely to be discontinued after the 8.0.x releases.


We should probably switch over to using libqhull_r in Octave.

This is already an issue for MXE Octave: The non-reentrant version that we use
in Octave isn't built currently.
That should probably be fixed there, too (at least until we switch to
libqhull_r in Octave).




    _______________________________________________________

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]