[Haskell-cafe] Please review my Xapian foreign function interface
Edward Z. Yang
ezyang at MIT.EDU
Mon Feb 21 02:49:49 CET 2011
Thanks Oliver!
I haven't had time to look at your bindings very closely, but I do
have a few initial things to think about:
* You're writing your imports by hand. Several other projects used
to do this, and it's a pain in the neck when you have hundreds
of functions that you need to bind and you don't quite do it all
properly, and then you segfault because there was an API mismatch.
Consider using a tool like c2hs which rules out this possibility
(and reduces the code you need to write!)
* I see a lot of unsafePerformIO and no consideration for:
- Interruptibility
- Thread safety
People who use Haskell tend to expect their code to be thread-safe and
interruptible, so we have high standards ;-) But even C++ code
that looks thread safe may be mutating shared memory under the hood,
so check carefully.
I use Sup, so I deal with Xapian on a day-to-day basis. Bindings are good
to see.
Cheers,
Edward
More information about the Haskell-Cafe
mailing list