mini-gmp mpz_{get,set}_d not fully compatible with GMP
Torbjörn Granlund
tg at gmplib.org
Tue Mar 13 14:34:26 UTC 2018
nisse at lysator.liu.se (Niels Möller) writes:
Does C11 provide any way to initialize a local static variable, like in
recent C++? I.e., not code running before main, but code running the
first time the function is entered, and guaranteed to run just once?
> I don't think volatile matters. AFAIK, what you need is _Atomic (C11).
If we can make this thread safe with C11, I think it's fine to document
that mini-gmp requires C11 for thread safety. (I'd still prefer the
simpler way of reying on float.h constants, though).
Let's remind ourselves that we are not executing GMP on a standards
document, but on actual computer systems. :-)
Store reordering is an actual problem which we should keep in mind (but
note that x86 implements total store ordering). Non-atomic loads/stores
is not as long as we keep to short types.
--
Torbjörn
Please encrypt, key id 0xC8601622
More information about the gmp-devel
mailing list