ekmett / rounded

MPFR bindings for Haskell
http://hackage.haskell.org/package/rounded
BSD 3-Clause "New" or "Revised" License
34 stars 13 forks source link

support for 8.10 onwards! #34

Open cartazio opened 3 years ago

cartazio commented 3 years ago

@claudeha @ekmett looks like this lovely stuff has languished. did folks shift to other tools or just it needs love?

claudeha commented 3 years ago

I think it just needed some dependency bound adjustments; hackage is revised and I pushed the changes, test suite passes with versions up to ghc-9.0.1

On the other end, seems rounded no longer builds with ghc-8.2 (and I presume earlier versions) since I don't know when, so I updated the tested-with: field and updated the description to make ghc-8.4.4 the minimum supported version. Debian Buster (current stable) has ghc-8.4.4, Bullseye (soon to be next stable) has ghc-8.8.4.

cartazio commented 1 year ago

I've hit some problems on 9.2 and 9.4: this is on an ARM mac, so the c compiler is probably clang.

c/float128.c:5:27: error:  error: unknown type name '_Float128'
  |
claudeha commented 1 year ago

c/float128.c:5:27: error: error: unknown type name '_Float128' is not coming from rounded (try git grep -i float128)

The float128 package seems to want be installed because my long-double package (which is a dependency of rounded) assumes 64bit ARM has C long double as an alias for C _Float128, which is true on aarch64 Debian at least. What is C's long double on 64bit ARM OS X? If it's an alias for C double (like on armv7 32bit Debian), then the fix should be quite simple, just add more conditionals to the long-double.cabal

claudeha commented 1 year ago

@cartazio I just uploaded long-double 0.1.1.1 which should fix this (Apple and Microsoft use nonstandard aarch64 ABI)

cartazio commented 1 year ago

@claudeha the released package doesn't allow ghc >= 9.4

i'm currently using

packages: *.cabal

allow-newer: rounded:base,rounded:ghc-prim,long-double:base

to relax those bounds

But I think a secondary but equally important issue is that for resolving GMP, recent GHC dont come with a GMP by default, so we run into build problems even after that allow-newer dance!

i think the "right" fix is to conditionally on new enough ghc, add gmp to package config deps