Subject: bug#40406: closed (Re: bug#40406: python-matplotlib fails to build on i686-linux)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 15 Nov 2020 03:15:02 +0000

Your bug report

#40406: python-matplotlib fails to build on i686-linux

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
40406: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=40406
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#40406: python-matplotlib fails to build on i686-linux
From: Maxim Cournoyer <[email-masked]>
To: Diego Nicola Barbato <[email-masked]>
Cc: [email-masked], Leo Famulari <[email-masked]>
Date: Sat, 14 Nov 2020 22:14:08 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Diego,

Diego Nicola Barbato <[email-masked]> writes:

> Hey,
>
> Diego Nicola Barbato <[email-masked]> writes:
>
> [...]
>
>> Apparently there is nothing wrong with the slider.  Instead matrix
>> multiplication, which is used under the hood for transformations, seems
>> to sometimes produce incorrect results on i686-linux.  I have reported
>> this as a separate bug (https://debbugs.gnu.org/41665).
>
> I got this wrong: This issue isn't caused by the Numpy bug, since
> Matplotlib doesn't use Numpy for transformations.  Both bugs are caused
> by the excess precision of the x87 FPU's floating point registers.
>
> I've attached a patch which makes sure that the C and C++ extensions are
> compiled with -ffloat-store.  This doesn't get rid of all possible
> rounding errors but it's enough for the slider test to pass.

Thanks for the investigationd and workaround!  I've tested it and it
seems to work well.  I've pushed a slightly modified version to master
as commit 81643c4cf3e61f5a98b92a72a92c230f5e7ca905.

Thank you!

Closing.

Maxim

Subject: python-matplotlib fails to build on i686-linux
From: Diego Nicola Barbato <[email-masked]>
To: [email-masked]
Date: Fri, 03 Apr 2020 17:20:08 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix,

The package python-matplotlib fails to build during the check phase on
i686-linux.  The test failure appears to be deterministic:

--8<---------------cut here---------------start------------->8---
=================================== FAILURES ===================================
_______________________ test_slider_horizontal_vertical ________________________

    def test_slider_horizontal_vertical():
        fig, ax = plt.subplots()
        slider = widgets.Slider(ax=ax, label='', valmin=0, valmax=24,
                                valinit=12, orientation='horizontal')
        slider.set_val(10)
        assert slider.val == 10
        # check the dimension of the slider patch in axes units
        box = slider.poly.get_extents().transformed(ax.transAxes.inverted())
>       assert_allclose(box.bounds, [0, 0, 10/24, 1])
E       AssertionError: 
E       Not equal to tolerance rtol=1e-07, atol=0
E       
E       Mismatch: 25%
E       Max absolute difference: 1.11022302e-16
E       Max relative difference: 2.66453526e-16
E        x: array([ 0.000000e+00, -2.310706e-18,  4.166667e-01,  1.000000e+00])
E        y: array([0.      , 0.      , 0.416667, 1.      ])

/gnu/store/8g8yfikj63wf0y3hwvpk00hqj5wpfs7v-python-matplotlib-3.1.2/lib/python3.7/site-packages/matplotlib/tests/test_widgets.py:333: AssertionError
--8<---------------cut here---------------end--------------->8---

Im currently on commit 151f3d4.

Regards,

Diego