haskell / entropy

Easy entropy source for Haskell users.
Other
24 stars 49 forks source link

entropy throws and error during build on GHC-9.x for the JS backend in nixpkgs. #87

Open doyougnu opened 2 months ago

doyougnu commented 2 months ago

See this ticket: https://github.com/NixOS/nixpkgs/issues/337996

for the whole story.

Essentially what is happening is the Setup.hs file uses inline assembly to call rdrand which is not supported for JS because emscripten does not support it.

So the fix is to either write that assembly in portable C/C++ or write some javascript that does the same thing and use and ifdef to catch when entropy is being cross-compiled.

I'm more than happy to write the js if you need it, but I wanted to defer to the author of the library to make the decision on how best to proceed.

doyougnu commented 2 months ago

Ah, I just saw that System.GHCJS exists. Perhaps this is just a case of patching Setup.hs then?

doyougnu commented 2 months ago

Reading through the Setup.hs more carefully I don't think this error is actually meaningful. Its thrown by emcc during checkRDRAND but the result will be caught by checkGetRandom which compiles just fine. So if anything the change should be to catch stderr here.