Project

General

Profile

Support #240

GUI compilation: GMP is not naturally thread-safe

Added by Anna Maria Bigatti over 11 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
GUI
Target version:
Start date:
27 Sep 2012
Due date:
% Done:

100%

Estimated time:
3.33 h
Spent time:

Description

Difficult to notice, but it appears that the GUI (rarely) crashes (maybe!) for GMP not being thread-safe (the GUI runs in two threads)

One example making it crash is this

XX :=  ((10^131070-1984)/64)/((10^131232)/64);

[Right now I cannot find the exact fix by John (i.e. how to compile GMP with the "thread-safe" option)]

In conclusion, the GUI should be linked to a thread-safe gmp.
Design a way to automatically deal with this problem.


Related issues

Related to CoCoA-5 - Support #1393: GUI with Qt5Feedback2020-01-13

History

#1 Updated by Anna Maria Bigatti over 11 years ago

The first failing computation was (by L.Robbiano)

Use QQ[x];
F:=2*x*(1-x);
Pop:= Subst(F, x,  0.2);
For N:=2 To 20 Do
  Pop := Subst(F, x, Pop)
EndFor;

#2 Updated by Anna Maria Bigatti over 11 years ago

  • % Done changed from 0 to 10

#3 Updated by John Abbott over 11 years ago

  • Category set to GUI
  • Status changed from New to In Progress
  • Assignee set to John Abbott
  • % Done changed from 10 to 50

I confirmed the problem using the GUI on my computer (Mac OS 10.5.8).

I reinstalled GMP (version 5.0.5), selecting a threadsafe build, and confirmed that the problem no longer exists. The GMP configuration command I used was:

./configure --enable-cxx --disable-alloca

The second option is the one which ensures that the build is threadsafe (but the GMP documentation says there will be a run-time speed penalty).

I am slightly puzzled because it seems to me that the GMP documentation suggests that the default setting for alloca would be threadsafe in any case (perhaps Macs have a poor alloca function?)

#4 Updated by John Abbott over 11 years ago

  • Status changed from In Progress to Resolved

If Anna and Renzo confirm that my solution works for them too, I'll close this issue.

#5 Updated by Anna Maria Bigatti over 11 years ago

it works for me!

#6 Updated by Anna Maria Bigatti about 10 years ago

  • Target version set to CoCoA-5.1.0 Easter14

#7 Updated by John Abbott almost 10 years ago

  • Target version changed from CoCoA-5.1.0 Easter14 to CoCoA-5.1.1 Seoul14

#8 Updated by John Abbott over 9 years ago

  • Target version changed from CoCoA-5.1.1 Seoul14 to CoCoA-5.?.?

#9 Updated by John Abbott over 9 years ago

JAA has confirmed (20140902) that the problem persists (with GMP 6.0.0 built without the --disable-alloca flag).

#10 Updated by John Abbott about 4 years ago

#11 Updated by John Abbott about 4 years ago

  • % Done changed from 50 to 60

This issue is very old. GMP has surely changed over the last 5 years (but last update was about 2 years ago).
The old Qt interface does not work any more.
Should we just close this issue as "probably no longer relevant"?

#12 Updated by John Abbott about 4 years ago

  • Status changed from Resolved to Closed
  • Target version changed from CoCoA-5.?.? to CoCoA-5.3.0
  • % Done changed from 60 to 100
  • Estimated time set to 3.33 h

No one seems to care about this issue; I'm pretty sure it has lost all relevance, so I'm closing it.

Also available in: Atom PDF