<div>Thanks. It&#39;s actually quite comforting to know that the problems I run into are known issues and gives me a lot&nbsp;more confidence in the tools.</div>
<div>&nbsp;</div>
<div>As I said I really like Haskell it&#39;s a pleasure to program in it and I do appreciate the work that people have put in to make it possible for me to do so!<br></div>
<div class="gmail_quote">On Mon, May 19, 2008 at 2:15 PM, Jeremy O&#39;Donoghue &lt;<a href="mailto:jeremy.odonoghue@gmail.com">jeremy.odonoghue@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="Ih2E3d">Ben Arnold wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">WxHaskell was a little trickier but more successful. There didn&#39;t appear to be any installation instructions on the website, but it did imply that I needed to install wxWidgets first. I did that, and made sure the paths didn&#39;t have spaces in them (yawn). And after restarting the PC eventually I got a working Hello World dialogue box.<br>
<br>Which is nice, except that when I call &quot;main&quot; twice in succession from GHCi, ghc.exe crashes. So I have no confidence in the wxHaskell libraries either. I don&#39;t want to invest time in programming with libraries that perform illegal operations on my operating system.<br>
</blockquote></div>This is a known wxHaskell problem, and is a consequence of changes in the underlying design of wxWidgets since wxHaskell was designed.<br><br>The basic problem is that wxWidgets, since around wxWidgets 2.5, uses C++ static constructors and destructors to initialize and destroy some internal data structures. Unfortunately, on Windows, the only way to make these run is to unload the wxWidgets DLL when main terminates, and this is something we do not currently do (I&#39;m working on it, but it is not trivial, and I have little time to work on the problem, so progress is slower than I would like).<br>
<br>If this functionality is essential to you, I can only suggest using wxHaskell 0.9.4 with wxWidgets <a href="http://2.4.2./" target="_blank">2.4.2.</a> This older version of wxWidgets does not use static constructors/destructors, and can be used to execute main more than once. This older revision is three years old now, and will require you to use GHC 6.4.<br>
<br>In terms of an &#39;expert&#39; reference - wxHaskell or GtkHs are the only reasonably maintained GUI options for Haskell. GtkHs has a larger team of contributors, but both are capable of producing complex and stable GUI applications - I can certainly vouch for wxHaskell in this respect (and in respect of speed of development), and the reason I work on it is precisely because I didn&#39;t want to see such a superb piece of software rot through lack of attention.<br>
<br>However, both projects rely on fairly small volunteer teams working on their spare time out of love (or something like it...), and I think it&#39;s fair to say that both teams are some way from matching the ease of developing and deploying of, say, C# or Java.<br>
<br>Regards<br><font color="#888888">Jeremy O&#39;Donoghue<br></font></blockquote></div><br>