bscarlet / llvm-general

Rich LLVM bindings for Haskell (with transfer of LLVM IR to and from C++, detailed compilation pass control, etc.)
http://hackage.haskell.org/package/llvm-general
132 stars 38 forks source link

OrcJIT API expansion and test fixes #191

Closed acowley closed 7 years ago

acowley commented 8 years ago

I have a few commits here, and I can break this into multiple PRs if that would be preferred. Each is pretty distinct and comes with a log message describing the change.

The last two commits involve changes to tests to account for varying OS support within LLVM itself, and a Haskell re-entrancy issue with GHC-8.0.1 on OS X that doesn't seem to impact @cocreature, so I have noted a guess that maybe this is another platform-dependent issue. I haven't been able to resolve that, but segfaulting as it does prevents the test suite from completing, so I am selectively disabling that test for the time being.

acowley commented 8 years ago

Here is where the error I saw with the memory sanitizer seems to originate, which is why I did the OS conditional bit.

acowley commented 8 years ago

I can do the formatting changes, but the larger point here is the API expansion and I have no idea how to write a proof of a necessity for that.

EDIT: Here's an idea: would you be willing to expose the Internal modules the way packages like text and bytestring do? Then more things could live in separate packages.