
Manuel M T Chakravarty wrote:
jutaro:
This is the first answer I got from the gtk2hs mailing list. Please consider this issue seriously.
Well there is a simple fix as Simon Marlow wrote,
The fix is fiarly easy: use Foreign.Concurrent.mkForeignPtr with a foreign import.
In fact, if as Axel writes, these finalisers are Haskell functions that are exported using foreign import wrapper, then using Foreign.Concurrent.mkForeignPtr is actually the *simpler* thing to do (you don't need any wrapping and exporting).
Right. Admittedly we hadn't realised that this would affect gtk2hs when we decided to bring this change into 6.10.2, and if we had, perhaps we would have decided to wait until 6.12.1. Patchlevel releases are not supposed to break existing working code - however in this case the code that is broken is using undocumented features. So we *could* back out the change. let's talk about whether that's the right course of action. There's a GHC meeting this afternoon, come long to #ghc on Freenode at 1600 UTC (in just under 2.5 hours). To summarise the issues: * gtk2hs is broken by this change, and possibly others. Unfortunately we can't easily find out whether code is affected, because this is a dynamic property. * gtk2hs can be fixed, but that means doing a new release etc. * the error message is pretty clear (not a crash) * there was some demand for the new feature (e.g Conal Elliot). If we back out, then these people will have to wait until 6.12.1 (~ 6 months). * backing out now will delay the GHC release. Cheers, Simon