Am 02.09.2020 um 02:26 schrieb Kurt-Karen Carlson-Lougheed:
Thomas:
As stated, twice, the full code is on SourceForge as uac19 v3.3. If you need me to send you a tgz with sample data please let me know, but note the comments and patch below. I can certainly walk you through reproducing the problem if you believe that is worthwhile.
Kurt-Karen:
I am not uac savvy. The proposal to dig out some software package, build it (which may create hours-long trouble in some cases), collect data from somewhere else etc, to reproduce an assumed bug, is not appropriate. It's your term to provide a single, reproducible demonstration of a bug. If this were an issue in my project, I would close it now for refusal of cooperation.


Stephen:
Thank you. I couldn't get the 'blame' to work (I am not git savvy), but I got the cygwin qsort.c. The problem is *EXACTLY* as described by Dennis de Champeaux in the 2015-01-11 cygwin list posting. The secondary insertion sort attempt is not safe. I patched as follows, the de Champeaux is code is more correct in removing swap_cnt as it is no longer used:

kc: diff -u qsort.c cygsort.c
--- qsort.c     2020-09-01 15:36:39.716029300 -0700
+++ cygsort.c   2020-09-01 16:47:30.152545600 -0700
@@ -252,14 +252,15 @@
                pb += es;
                pc -= es;
        }
-       if (swap_cnt == 0) {  /* Switch to insertion sort */
+/* kc
+       if (swap_cnt == 0) {  // Switch to insertion sort
                for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)                         for (pl = pm; pl > (char *) a && CMP(thunk, pl - es, pl) > 0;
                             pl -= es)
                                swap(pl, pl - es);
                goto pop;
        }
-
+kc */
        /*
         * Rearrange the array in three parts sorted like this:
         * { elements < pivot, elements == pivot, elements > pivot }

If you need me to provide further information, please advise.
Regards, kurt

On Tue, Sep 1, 2020 at 3:02 PM Thomas Wolff <t...@towo.net <mailto:t...@towo.net>> wrote:

    Am 01.09.2020 um 22:29 schrieb Kurt-Karen Carlson-Lougheed via Cygwin:
    >    Brian:
    > 1. The Qsort() source I sent was from netbsd.org
    <http://netbsd.org>, NOT cygwin. netbsd works.
    > 2. Complete package is on SourceForge as uac19 v3.3. I'm happy
    to send a
    > tgz if you prefer that. Read 3 choices at end before considering
    this.
    > 3. Data is curl'd from owid as shown in the script example.
    Likewise I can
    > send a sample data set. The program analyzes COVID-19 csv files
    from either
    > owid or github/nytimes
    > 4. I've used qsort() for years. I agree, keeping the sort
    routines simple
    > is always appropriate. I confirmed today the only ones that fail
    include
    > float divides, lDsort() and lXsort() in attached c19sort.c. When
    it's
    > pre-calculated and added to the struct it works, the code has a
    toggle now
    > for testing that.
    >
    > Thomas:
    > I tried (again) today  to build a simple test case. The data
    structures in
    > use are complex, probably the only thing I can attempt is
    stripping down
    > the code which will be very time consuming. I know you don't
    know me at
    > all, but I've written code, debugged proprietary operating systems
    > (assembler), performed OS dump analysis, troubleshot
    intermittent hardware
    > issues, identified disk firmware issues causing intermittent data
    > corruption, identified nfs performance issues, managed large hpc
    clusters,
    > etc. etc. etc. over 40+ years.
    Your code does not even compile. I did not ask for a minimal test
    case
    although that is generally appreciated. But a working test case at
    least
    is required to establlish your claim of a bug.
    >
    > I see three choices:
    > A. One of you look at simple the qqsort wrapper. I modified my
    code to
    > toggle between the functional netbsd Qsort() and cygwin qsort().
    I have
    > demonstrated erroneous results coming from the cygwin version in
    a small
    > percentage of requests. If you can acknowledge that, perhaps you
    can check
    > the cygwin version of qsort() vs. the current netbsd.org
    <http://netbsd.org>?
    > B. If you could kindly provide me or point me to the cygwin
    qsort() source
    > I'll check it out myself.
    > C. We can thank each other and leave cygwin's qsort() as is
    broken in some
    > small number of circumstances since I've compiled netbsd's into
    my code and
    > that always works.
    >
    > Regards, kurt
    --
    Problem reports: https://cygwin.com/problems.html
    FAQ: https://cygwin.com/faq/
    Documentation: https://cygwin.com/docs.html
    Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to