Simon Marlow <marlo...@gmail.com> writes:

> On 19/04/2010 15:09, Andy Stewart wrote:
>> Hi Simon,
>> Simon Marlow<marlo...@gmail.com>  writes:
>>
>>> On 09/04/2010 17:14, Axel Simon wrote:
>>>>
>>>> On 09.04.2010, at 17:13, Simon Marlow wrote:
>>>>
>>>>> On 09/04/2010 16:01, Simon Marlow wrote:
>>>>>
>>>>>> Now I have a different problem:
>>>>>>
>>>>>> /home/simonmar/fp/bin/x86_64-unknown-linux/ghc-6.12.1.20100330 +RTS -RTS
>>>>>> -c soegtk/Graphics/SOE/Gtk.hs -o soegtk/Graphics/SOE/Gtk.o -O -isoegtk
>>>>>> -package-conf package.conf.inplace -hide-all-packages -ignore-package
>>>>>> soegtk -package base-4.2.0.1 -package old-time-1.0.0.4 -package
>>>>>> mtl-1.1.0.2 -package glib-0.10.1 -package gtk-0.10.1 -package
>>>>>> cairo-0.10.1 -package-name soegtk-0.10.1 '-#include<gtk/hsgtk.h>'
>>>>>> -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
>>>>>> -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
>>>>>> -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-2.0
>>>>>> -I/usr/lib64/gtk-2.0/include -I/usr/include/cairo -I/usr/include/atk-1.0
>>>>>> -I.
>>>>>> <command line>: cannot satisfy -package gtk-0.10.1:
>>>>>> gtk-0.10.1 is unusable due to missing or recursive dependencies:
>>>>>> gio-0.10.1
>>>>>> (use -v for more information)
>>>>>> make[1]: *** [soegtk/Graphics/SOE/Gtk.o] Error 1
>>>>>>
>>>>>> I presume I need to build gio, and it's not being built because I don't
>>>>>> have the development library installed?
>>>>>
>>>>> Having poked around a bit more, I see that
>>>>>
>>>>> - configure.ac wants gio>= 2.16.4 to enable gio support
>>>>> - gtk now depends on gio
>>>>> - this distro (Fedora 9) only provides gio 2.16.3
>>>>>
>>>>> So I'm out of luck. Looks like some updates to the configure script are
>>>>> needed so this fails a bit earlier though?
>>>>>
>>>>
>>>> Ok, so gio is fairly new and we should probably try to make Gtk build
>>>> without it. As far as I understand, there are only a few data types that
>>>> GIO uses and which are also used by Gtk. If that is the sole reason that
>>>> gtk depends on gio, then maybe we can conditionally compile those gtk
>>>> functions that use the gio data types.
>>>>
>>>> Thanks Simon for bearing with us. I really want to keep Gtk2Hs compiling
>>>> against every release of Gtk+ starting from 2.8 (which is where Cairo
>>>> was introduced).
>>>
>>> I've been away for a week, and I see there is much upheaval in the gtk2hs 
>>> camp.  I really wanted
> to
>>> get gtk2hs built with GHC 6.12.1 so that I could investigate Andy's bug 
>>> with forkProcess
>>>
>>> http://hackage.haskell.org/trac/ghc/ticket/3918
>> I have found why, below is notes i wrote in
>> `gtk2hs/demo/embedded/Notes.txt` :
>>
>> ------------------------------>  Notes start<------------------------------
>> If you use GtkSocket/GtkPlug with multi-processes framework.
>> DON'T use function `forkProcess` to spawn process!
>>
>> Because `forkProcess` just simple call C `fork`, haven't any protection,
>> then two processes will got *race condition*,
>> you will get X Window error (such as `BadWindow`) when those two processes
>> try to access same X resource.
>>
>> So use `runProcess` or `runCommand` instead.
>> Above two functions add MVar lock when spawn processes (call 
>> c_runInteractiveProcess)
>> to make sure two processes won't get *race condition* problem on X resource.
>> ------------------------------>  Notes end<------------------------------
>
> Ah, so you're saying I can close that ticket?
Yes, you can close this ticket.
I think this is not bug of GHC, it's problem of `forkProcess` implementation.
Because `forkProcess` is not a safe function to spawn process.

I'm developing Haskell Application Platform (multi-processes framework
with DBus), i use `runProcess` spawn child process, i test it with
GHC-6.12 everyday, works perfect.

Please attach my notes when you close ticket,
then other people won't get same trouble with `forkProcess`.

>
>>> I can't use the latest release of gtk2hs because it doesn't work with GHC 
>>> 6.12.x.  So if anyone
> has
>>> any advice, please let me know!
>> Axel has working on cabalized version, i think he will release it very
>> soon.
>
> Great to hear that, I look forward to it!
Yes, cabalized version is cool, that's mean Windows and Mac can install
gtk2hs easily.

Cheers,

  -- Andy

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Gtk2hs-devel mailing list
Gtk2hs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

Reply via email to