[Haskell-cafe] ANNOUNCE: lushtags, haskell ctags for Vim Tagbar plugin
I would like to announce the first release of my program lushtags. Available on hackage: cabal install lushtags At github: https://github.com/bitc/lushtags Screenshot: https://github.com/bitc/lushtags/raw/master/doc/screenshot-tagbar-2011-09-19.png What is lushtags? From the README: lushtags Create ctags compatible tags files for Haskell programs Similar programs are [hasktags][1], [gasbag][2], [hothasktags][3], and GHC's builtin ctags generation. lushtags differs from these by being designed to have smooth integration with the [Vim Tagbar][4] plugin. Tagbar is nice because it deals with creating tags automatically. There is no need to manually run commands or keep track of tag files. Just open any Haskell file in Vim and the Tagbar window will instantly show an interactive browsable list of all the functions and declarations in the file. This window also updates automatically as you edit the file. The tags created by lushtags are marked with several extensions, so that when used with Tagbar you get these features: - Type signatures are displayed for functions. - Tags are properly scoped so that, for example, data declarations appear as a tree with their constructors scoped as children. - Definitions that are exported from the module are marked as public and appear emphasized in Tagbar. - Tag locations are internally stored as patterns, not line numbers, so that you can correctly jump to tags even if they have moved in the source code during editing. ![screenshot](https://github.com/bitc/lushtags/raw/master/doc/screenshot-tagbar-2011-09-19.png) [1]: http://hackage.haskell.org/package/hasktags [2]: http://kingfisher.nfshost.com/sw/gasbag/ [3]: http://hackage.haskell.org/package/hothasktags [4]: http://majutsushi.github.com/tagbar/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Printing of asynchronous exceptions to stderr
On Wed, Nov 10, 2010 at 5:48 PM, Simon Marlow marlo...@gmail.com wrote: [...] So we should say there are a few things that you can do that guarantee not to call any interruptible operations: - IORef operations - STM transactions that do not use retry - everything from the Foreign.* modules and probably some other things. Maybe we should put this list in the documentation. A list would be very helpful. I am specifically interested in knowing about: - The try family of MVar functions - the forkIO function itself Thanks, Bit Connor ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Bug in HTTP (bad internal error handling)
On Sat, Oct 23, 2010 at 8:49 PM, Ganesh Sittampalam gan...@earth.li wrote: Hi Bit, On Thu, 21 Oct 2010, Bit Connor wrote: On Sat, Oct 16, 2010 at 10:29 AM, Claus Reinke claus.rei...@talk21.com wrote: After it catches this error, the function returns (line 376): return (fail (show e)) The fail is running in the Either monad (The Result type = Either). This calls the default Monad implementation of fail, which is just a call to plain old error. This basically causes the entire program to crash. Actually, it appears that simpleHTTP isn't actually supposed to throw an IOException, and it is instead supposed to return a ConnError result. So the real fix is to fix the code to make this happen. But Sounds like a victim of http://hackage.haskell.org/trac/ghc/ticket/4159 For mtl clients, 'fail' for 'Either' used to call 'Left'. That was changed, though the ticket does not indicate the library versions affected. This looks like the problem. Any idea how to get the HTTP package fixed? I could try making a patch myself, but I would prefer hearing from the HTTP maintainer first, who doesn't seem to be around. I'm just looking at fixing this so I can make an upload as discussed with Sigbjorn. I guess the best thing to do is to make all the calls to fail into something more explicit. Yep. Ideally, simpleHTTP and its friends should never throw an IO exception (and should certainly never call prelude's error, as happens now). Network errors and other errors should be reported by returning an appropriate ConnError Result: http://hackage.haskell.org/packages/archive/HTTP/4000.0.9/doc/html/Network-Stream.html#t:Result BTW, can you confirm that you were using GHC 7.0 (or 6.13) when this went wrong? Yes, I am using ghc 7.1.20100925 Thanks, Bit Connor ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Redy to release gtk2hs-0.12.0!
On Sat, Oct 23, 2010 at 12:40 PM, Andy Stewart lazycat.mana...@gmail.com wrote: * Support newest GIO library (Cross platform file APIs) You can use GIO develop cross-platform file-manager, like this : http://www.flickr.com/photos/48809...@n02/4793031888/lightbox/ Wow. That looks like a pretty impressive library of computer literature :) Thanks for all your great work on gtk2hs btw ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Bug in HTTP (bad internal error handling)
On Sat, Oct 16, 2010 at 10:29 AM, Claus Reinke claus.rei...@talk21.com wrote: After it catches this error, the function returns (line 376): return (fail (show e)) The fail is running in the Either monad (The Result type = Either). This calls the default Monad implementation of fail, which is just a call to plain old error. This basically causes the entire program to crash. Actually, it appears that simpleHTTP isn't actually supposed to throw an IOException, and it is instead supposed to return a ConnError result. So the real fix is to fix the code to make this happen. But Sounds like a victim of http://hackage.haskell.org/trac/ghc/ticket/4159 For mtl clients, 'fail' for 'Either' used to call 'Left'. That was changed, though the ticket does not indicate the library versions affected. This looks like the problem. Any idea how to get the HTTP package fixed? I could try making a patch myself, but I would prefer hearing from the HTTP maintainer first, who doesn't seem to be around. Bit Connor ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Bug in HTTP (bad internal error handling)
Hello, I have reported this problem to the maintainer of the HTTP package about 2 weeks ago, but have not yet received a response, so I am reporting it here. I am using a recent git check out of HTTP 4000.0.10 The bufferReadLine function from Network.TCP has a bug in how it handles an IOException after it catches one. It checks for isEOFError e, and that branch of code seems to be ok. The problem is how it handles other types of IO errors. One type of such an error, for example, is: socket: 117: Data.ByteString.hGetLine: resource vanished (Connection reset by peer) After it catches this error, the function returns (line 376): return (fail (show e)) The fail is running in the Either monad (The Result type = Either). This calls the default Monad implementation of fail, which is just a call to plain old error. This basically causes the entire program to crash. A simple fix, is to instead just reraise the original error: ioError e This will propagate the error through as a normal IOException, which can then be caught by the caller (such as the caller of simpleHTTP). By looking at the library code, the same bug seems to be in other places (bufferGetBlock, bufferPutBlock), but I have only observed the bug actually occurring in bufferReadLine. Actually, it appears that simpleHTTP isn't actually supposed to throw an IOException, and it is instead supposed to return a ConnError result. So the real fix is to fix the code to make this happen. But I've found simpleHTTP to throw an IOException in a lot of circumstances, so for now I think the fix above is a good immediate solution. Thanks, Bit Connor ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskell on a VPS
On Thu, Jul 23, 2009 at 6:12 PM, John Van Enkvane...@gmail.com wrote: No, I just want to know if there are any gotchas in the typical VPS setups that for some strange reason wouldn't like Haskell binaries. I couldn't think of any, but I miss details some times. There used to be problems with ghci running under the virtualization software Xen on x86_64 which is a common setup for VPS. As far as I can tell these problems have been resolved. http://hackage.haskell.org/trac/ghc/ticket/2512 http://hackage.haskell.org/trac/ghc/ticket/2063 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Problem resizing widget contained in window
On Tue, Jul 14, 2009 at 5:46 PM, Jeff Heardjefferson.r.he...@gmail.com wrote: Now, if someone resizes the window, the GLArea does not appear to resize along with it. Did I screw something up? You need to call the opengl glViewport function(I don't remember what the haskell binding is called) in your resize handler so that opengl knows about the new viewport size. And you are also probably going to want to update the opengl projection matrix to prevent distortion as a result of a changed aspect ratio. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] How to get glyph outline from ttf font.
On Sat, Apr 4, 2009 at 6:59 PM, Dmitry V'yal akam...@gmail.com wrote: to get them out of font? As far as I know, freetype library is capable of extracting outlines, but is there any haskell binding for it which supports this functionality? Here [1] one such lib was mentioned, but it wasn't availible online that time. Have situation changed today? Hello, I am Bit from the thread that you referenced. I have not yet uploaded the bindings to FreeType that I mentioned. I'll try to upload a darcs repository of what I have. The bindings are incomplete, but there is full support for loading fonts and extracting the outlines. What is missing is FreeType's functions for rendering glyphs to bitmaps. I even made a high level wrapper function to make extraction of glyph outlines easier: outlineDecompose2 :: FT.Outline - IO OutlineDecomposition data OutlineContourStep = OutlineContourLineTo FT.Vector | OutlineContourConicTo FT.Vector FT.Vector | OutlineContourCubicTo FT.Vector FT.Vector FT.Vector deriving (Eq, Show) data OutlineContour = OutlineContour FT.Vector [OutlineContourStep] deriving (Eq, Show) data OutlineDecomposition = OutlineDecomposition [OutlineContour] deriving (Eq, Show) I also made an example that renders the outlines using OpenGL to verify that everything works. I will apply for an account on code.haskell.org and upload the current state of the bindings into a darcs repository there. P.S. Anyone know how to apply to get an account on code.haskell.org? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] FP simulators for real-time systems?
On Mon, Feb 2, 2009 at 10:43 AM, Lee Pike leep...@gmail.com wrote: I'm interested to hear if anyone out there has used Haskell (or other functional languages for that matter) to build simulators for real-time systems. This is probably not exactly what you are thinking of, but there is OmegaGB, a game boy emulator written in Haskell: http://www.mutantlemon.com/omegagb/ Peace, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Will GHC finally support epoll in 2009?
On Thu, Jan 1, 2009 at 8:32 PM, Bryan O'Sullivan b...@serpentine.com wrote: On Wed, Dec 31, 2008 at 11:42 AM, Levi Greenspan greenspan.l...@googlemail.com wrote: Hence my question - is it likely that GHC will support epoll in 2009? Yes. I'm working on a patch at the moment. Awesome! Please post to this list when you have any news or updates. Thanks, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] SDL program under MinGW
Did you follow the instructions described in the WIN32 file? On Sat, Dec 6, 2008 at 2:05 PM, sam lee [EMAIL PROTECTED] wrote: Hi. I am using Windows Vista. I installed the following: - ghc 6.8.3 (using official Windows binary installer) - MinGW (from http://nuwen.net/mingw.html) - SDL binding (from http://hackage.haskell.org/cgi-bin/hackage-scripts/package/SDL) I am trying to compile the following program: module Main where import qualified Graphics.UI.SDL as SDL main = do SDL.init [SDL.InitEverything] SDL.quit I get the following error: C:\Users\client\code\sandboxghc --make Example.hs Linking Example.exe ... C:\MinGW\lib/libSDLmain.a(SDL_win32_main.o)(.text+0x409):SDL_win32_main.c: undefined reference to `SDL_main' According to SDL faq (http://www.libsdl.org/faq.php?action=listentriescategory=4#48) I should use int main(int argc, char *argv[]), not int main() nor WinMain(). Can anyone compile the above snippet on windows machine? I am using SDL library that is shipped with MinGW distribution that I'm using. I also recompiled SDL haskell binding with official SDL windows binary (http://www.libsdl.org/release/SDL-devel-1.2.13-mingw32.tar.gz). But I get the same undefined reference to SDL_main linker error. Do I need to have specific main IO action so that SDL would work in Haskell? Thank you. Sam. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Trouble installing ghc-6.10.1 on linux
I'm trying to install ghc 6.10.1 on a machine with the crux distro. libc version 2.3.6 gcc 4.0.3 linux version 2.6.15.6 First I tried the binary version ghc-6.10.1-i386-unknown-linux.tar.bz2 and I very quickly get this error: $ ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu Which we'll further canonicalise into: i386-unknown-linux checking for path to top of build tree... configure: error: cannot determine current directory $ Next I tried building the source version ghc-6.10.1-src.tar.bz2 using ghc 6.6 that is already installed. configure works but make eventually dies with: ... Configuring ghc-6.10.1... cabal-bin: At least the following dependencies are missing: Cabal -any, base 3, filepath =1 1.2, haskell98 -any, hpc -any, template-haskell -any, unix -any make[2]: *** [boot.stage.2] Error 1 Any ideas? Thanks, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Password hashing
On Tue, Oct 28, 2008 at 5:56 PM, Michał Pałka [EMAIL PROTECTED] wrote: It's a good idea to salt your passwords before hashing, though. See http://en.wikipedia.org/wiki/Salt_(cryptography) What can be used for generating a random salt? Is System.Random secure enough? Thanks ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: [Haskell] How to get the binary respentation of the Int/Double.
On Wed, Oct 29, 2008 at 7:58 PM, Ryan Ingram [EMAIL PROTECTED] wrote: Actually, this is a good question, at least as relating to floating point values. Is there a primitive to view the machine representation of floats? This isn't the first time this issue has come up on this mailing list. I think it would be good if there was a wiki page for this. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Password hashing
Hello, What library can be used to securely hash passwords? From what I understand, the bcrypt algorithm is what the experts recommend. It is described in the paper: http://www.openbsd.org/papers/bcrypt-paper.ps I couldn't find a haskell library for this. There is a BSD licensed C implementation that looks very simple here: http://www.mindrot.org/projects/py-bcrypt/ A translation to haskell should be straight forward. Alternatively, a haskell bcrypt library could directly use this implementation and provide a very light FFI wrapper. Any thoughts? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Constraints at construction
On Thu, Oct 9, 2008 at 3:05 PM, Mitchell, Neil [EMAIL PROTECTED] wrote: Hi Iain, The wiki page has quite a nice article: http://www.haskell.org/haskellwiki/Smart_constructors Smart constructors are nice but if your module doesn't also export the regular constructor then you can't pattern match against it. It would be cool if there was a way to export constructors from a module, but only for use in pattern matching and not constructing new values. Peace, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Hmm, what license to use?
On Mon, Sep 29, 2008 at 4:06 AM, Michael Giagnocavo [EMAIL PROTECTED] wrote: Goal 2 (The open source angle): Developers who use the library should have to contribute their modifications of the library back to the community. I believe that it's wrong to use a license to try to enforce such cooperation. Look what happened with KHTML when Apple started using it for their Safari web browser. Even though KHTML was Well, the MPL helps out with this Goal 2 by requiring that you document all modifications (they recommend providing diffs). http://www.mozilla.org/MPL/MPL-1.1.html#section-3.3 However, because of this clause (and others), the MPL is incompatible with the GPL: http://www.gnu.org/philosophy/license-list.html#MPL http://www.tomhull.com/ocston/docs/mozgpl.html If it's not obvious why GPL compatibility is an important thing then the second link above provides some explanation. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Where is OpenGL loadMatrix ?
withMatrix doesn't seem to have anything to do with glLoadMatrix. You are right that you can do glLoadMatrix with loadIdentity and multMatrix. To directly load a matrix, use the function matrix (with a Nothing argument). This will internally call the loadMatrix function that Krzysztof mentioned (which is correctly not exported). Note that in addition to loading a matrix, the matrix function is also used for retrieving the current matrix. (glGetFloatv with argument GL_MODELVIEW_MATRIX and friends). On Thu, Sep 25, 2008 at 5:12 PM, minh thu [EMAIL PROTECTED] wrote: 2008/9/25 Achim Schneider [EMAIL PROTECTED]: minh thu [EMAIL PROTECTED] wrote: I can't find the loadMatrix function in http://hackage.haskell.org/packages/archive/OpenGL/latest/doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html Should I use loadIdentity then multMatrix instead ? You're supposed to use withMatrix and regard OpenGL not as an imperative language, but as a markup language coincidentally using do to specify (flattened) lists. I even read about some library managing display lists transparently for you, but I can't recall where. If you're right, it's weird there are things like loadIdentity, $=, ... and it is even weirder to not provide loadMatrix (which can be done with loadIdenity and multMatrix). Anyway, the bindings are not that much functionnal, even with things like withMatrix. Cheers Thu ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Building SDL-image package on Windows
I think the best thing to do is to darcs send a patch with the necessary changes On Thu, Aug 28, 2008 at 1:05 AM, Garrick Chin [EMAIL PROTECTED] wrote: Hello, Adding the main macro undef has solved the linker errors and both SDL_image and SDL_ttf build and install correctly now. For both SDL_image and SDL_ttf only the ./Graphics/UI/SDL/Image/Version.hsc file needed to be changed, pasting in the undef macro under #include SDL_image.h and #include SDL_ttf.h respectively. Thanks for your help! It would probably be a good idea to include these notes in a WIN32 file like for the SDL package for other users. I sent an e-mail to the listed maintainer on Hackage yesterday, is that the best way to about doing this? On Wed, Aug 27, 2008 at 4:40 AM, Bit Connor [EMAIL PROTECTED] wrote: Hi, I wrote the instructions in the WIN32 file. This looks like the same problem that I originally had with the SDL package, mangling of main function in C land by the hand of the C SDL.h include file. If you look at the .hsc files from the SDL package, you will see the fix I applied at the top of each file, after #including SDL.h the evil main macro is undefined: #include SDL.h #ifdef main #undef main #endif Probably the same must be done for all the .hsc files in SDL-image(and probably also all other haskell SDL addon packages). Please let me know if this information is helpful. 2008/8/27 Garrick Chin [EMAIL PROTECTED]: Hello, I'm trying to build the latest SDL-image package (0.5.2) from Hackage on Windows and encountering problems. These are the steps I've taken so far: 1. Downloaded SDL 1.2.13 developmental library for Mingw32 to E:\SDL-1.2.13, and SDL_image 1.2.6 developmental library for VC8 to E:\SDL_image-1.2.6. 2. Installed SDL package from Hackage, modifying the SDL.cabal according to the included WIN32 readme file and then runghc Setup.lhs configure/build/install 3. Downloaded the SDL-image package from Hackage, modified the SDL-image.cabal file to add the line Include-Dirs: E:\SDL_image-1.2.6\include\SDL, E:\SDL-1.2.13\include\SDL so Cabal can find the header files. After doing runghc Setup.lhs configure, runghc Setup.lhs build -v gives me the following output: Creating dist\build (and its parents) Creating dist\build\autogen (and its parents) Preprocessing library SDL-image-0.5.2... Creating dist\build\Graphics\UI\SDL\Image (and its parents) E:\ghc\ghc-6.8.2\bin\hsc2hs.exe --cc=E:\ghc\ghc-6.8.2\bin\ghc.exe --ld=E:\ghc\ghc-6.8.2\bin\ghc.exe --cflag=-package --cflag=SDL-0.5.4 --cflag=-package --cflag=base-3.0.1.0 --cflag=-IE:\SDL_image-1.2.6\include\SDL --cflag=-IE:\SDL-1.2.13\include\SDL -o dist\build\Graphics\UI\SDL\Image\Version.hs Graphics\UI\SDL\Image\Version.hsc E:/ghc/ghc-6.8.2/libHSrts.a(Main.o)(.text+0x7):Main.c: undefined reference to `__stginit_ZCMain' E:/ghc/ghc-6.8.2/libHSrts.a(Main.o)(.text+0x36):Main.c: undefined reference to `ZCMain_main_closure' collect2: ld returned 1 exit status linking dist\build\Graphics\UI\SDL\Image\Version_hsc_make.o failed command was: E:\ghc\ghc-6.8.2\bin\ghc.exe dist\build\Graphics\UI\SDL\Image\Version_hsc_make.o -o dist\build\Graphics\UI\SDL\Image\Version_hsc_make.exe The results of a limited google search suggests that the __stginit_ZCMain linker error has to do with GHC expecting a main function, but I'm not really sure how that works in context of a library. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Building SDL-image package on Windows
Hi, I wrote the instructions in the WIN32 file. This looks like the same problem that I originally had with the SDL package, mangling of main function in C land by the hand of the C SDL.h include file. If you look at the .hsc files from the SDL package, you will see the fix I applied at the top of each file, after #including SDL.h the evil main macro is undefined: #include SDL.h #ifdef main #undef main #endif Probably the same must be done for all the .hsc files in SDL-image(and probably also all other haskell SDL addon packages). Please let me know if this information is helpful. 2008/8/27 Garrick Chin [EMAIL PROTECTED]: Hello, I'm trying to build the latest SDL-image package (0.5.2) from Hackage on Windows and encountering problems. These are the steps I've taken so far: 1. Downloaded SDL 1.2.13 developmental library for Mingw32 to E:\SDL-1.2.13, and SDL_image 1.2.6 developmental library for VC8 to E:\SDL_image-1.2.6. 2. Installed SDL package from Hackage, modifying the SDL.cabal according to the included WIN32 readme file and then runghc Setup.lhs configure/build/install 3. Downloaded the SDL-image package from Hackage, modified the SDL-image.cabal file to add the line Include-Dirs: E:\SDL_image-1.2.6\include\SDL, E:\SDL-1.2.13\include\SDL so Cabal can find the header files. After doing runghc Setup.lhs configure, runghc Setup.lhs build -v gives me the following output: Creating dist\build (and its parents) Creating dist\build\autogen (and its parents) Preprocessing library SDL-image-0.5.2... Creating dist\build\Graphics\UI\SDL\Image (and its parents) E:\ghc\ghc-6.8.2\bin\hsc2hs.exe --cc=E:\ghc\ghc-6.8.2\bin\ghc.exe --ld=E:\ghc\ghc-6.8.2\bin\ghc.exe --cflag=-package --cflag=SDL-0.5.4 --cflag=-package --cflag=base-3.0.1.0 --cflag=-IE:\SDL_image-1.2.6\include\SDL --cflag=-IE:\SDL-1.2.13\include\SDL -o dist\build\Graphics\UI\SDL\Image\Version.hs Graphics\UI\SDL\Image\Version.hsc E:/ghc/ghc-6.8.2/libHSrts.a(Main.o)(.text+0x7):Main.c: undefined reference to `__stginit_ZCMain' E:/ghc/ghc-6.8.2/libHSrts.a(Main.o)(.text+0x36):Main.c: undefined reference to `ZCMain_main_closure' collect2: ld returned 1 exit status linking dist\build\Graphics\UI\SDL\Image\Version_hsc_make.o failed command was: E:\ghc\ghc-6.8.2\bin\ghc.exe dist\build\Graphics\UI\SDL\Image\Version_hsc_make.o -o dist\build\Graphics\UI\SDL\Image\Version_hsc_make.exe The results of a limited google search suggests that the __stginit_ZCMain linker error has to do with GHC expecting a main function, but I'm not really sure how that works in context of a library. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] OpenGL's VBO with Haskell
Hi, I used VBO with haskell and I remember it being pretty straightforward, pretty much the same as in C. This was a while ago and I don't really remember how things work so I can't really comment on your code. But I'll see if I can find my old haskell VBO code. On Mon, Aug 25, 2008 at 8:43 PM, Twinside [EMAIL PROTECTED] wrote: Hi Haskell list, Today I'm turning to you for the use of VBO (Vertex Buffer Object) in Haskell. I seem to be able to create one without any problem using the following code : -- vboOfList :: Int - [Float] - IO BufferObject vboOfList size elems = let ptrsize = toEnum $ size * 4 arrayType = ElementArrayBuffer in do [array] - genObjectNames 1 bindBuffer arrayType $= Just array arr - newListArray (0, size - 1) elems withStorableArray arr (\ptr - bufferData arrayType $= (ptrsize, ptr, StaticDraw)) bindBuffer ArrayBuffer $= Nothing reportErrors return array -- However the problem arise when I try to draw primitives using this vbo : -- displayVbo buff size = do let stride = toEnum sizeOfVertexInfo vxDesc = VertexArrayDescriptor 3 Float stride $ offset 0 colors = VertexArrayDescriptor 4 Float stride $ offset 12 texCoo = VertexArrayDescriptor 2 Float stride $ offset (12 + 16) filt = VertexArrayDescriptor 4 Float stride $ offset (12 + 16 + 8) bindBuffer ArrayBuffer $= Just buff arrayPointer VertexArray $= vxDesc arrayPointer ColorArray $= colors arrayPointer TextureCoordArray $= texCoo arrayPointer SecondaryColorArray $= filt drawArrays Quads 0 size bindBuffer ArrayBuffer $= Nothing -- Nothing is displayed on screen. As you can see, my VBO contain interleaved data : - 3 float for the vertex - 4 for the color - 2 for the texture coordinate - 4 for the secondary color) The 'offset' function has type Int - Ptr Float, and is used to forge a pointer from an Int, to mimic the C way of using VBO. As far as I've checked, the values in my list for VBO generation are valid and well displayed using other techniques. So is there a workaround other method for my solution, preferably by keeping my data interleaved? Secondly, is there any sample for advanced features like VBOs in Haskell? Regards, Vincent ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] poll: how can we help you contribute to darcs?
What about the idea of creating a GUI interface to darcs? I love the command line as much as the next guy, but I think darcs could really benefit from a polished GUI. I used tortoise darcs on a small project a while ago and it was pretty nice, but I think there is potential for much better. I think that if darcs had a usable GUI then it would be a great advantage over other its competitors and it could tremendously increase its user base. I have been thinking about making a gtk2hs darcs frontend for a while now, what does everyone think about this? On Fri, Aug 1, 2008 at 6:45 PM, Eric Kow [EMAIL PROTECTED] wrote: Dear Haskellers, I would like to take an informal poll for the purposes of darcs recruitment. Could you please complete this sentence for me? I would contribute to darcs if only... The answers I am most interested in hearing go beyond ... I had more time. For instance, if you are contributing to other Haskell/volunteer projects, why are you contributing more to them, rather than darcs? The context: Lately, darcs has suffered a setback: the GHC team has decided that it is now time to switch to a different system, like git or Mercurial. This is probably a good thing for GHC and for us. By the way, good luck to them, and thanks for everything! (better GHC == better darcs) But where is darcs going? For now, we are going to have to focus on what we do best, providing precision merging and a consistent user interface for small-to-medium sized projects. I want more, though! I want to see darcs 2.1 come out next year, performance enhanced out the wazoo, and running great on Windows. And I want to see Future Darcs, the universal revision control system, seamlessly integrating with everybody else. We need to learn to do better so that darcs can achieve this kind of wild success. For example, whereas darcs suffers from the day job problem, xmonad has had to turn developers away! As Don mentions, this is partly thanks to their extreme accessibility (better self-documentation). But does anyone have more specific ideas about things we need to change so that you can contribute to darcs? How do we hit critical hacker mass? I have jotted down some other thoughts here regarding recruitment here: http://wiki.darcs.net/index.html/Recruitment In the meantime, if you have been discouraged from hacking on darcs, we want to know why, and how we can change things! Thanks, ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] I/O without monads, using an event loop
Yeah, this sounds really similar to functionally reactive programming. I recommend you start by reading this paper: http://haskell.cs.yale.edu/frp/genuinely-functional-guis.pdf On Fri, May 30, 2008 at 11:34 AM, Wolfgang Jeltsch [EMAIL PROTECTED] wrote: Am Freitag, 30. Mai 2008 16:09 schrieb Robin Green: […] I'm primarily interested in embedded system and desktop UIs, Than you should take a look at http://haskell.org/haskellwiki/FRP. […] Best wishes, Wolfgang ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Ann: Win32-notify 0.1
Factor has a file system notification API that wraps windows, linux and mac ones. It might be worth taking a look at that to see what it does. Mono also has such an API and I've heard very good things about it. It would also be worth looking at. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] install trouble with SDL on win32+cygwin
SDL works great on Windows, and you don't even need cygwin. Only ghc is required. There are instructions in the WIN32 file. http://darcs.haskell.org/~lemmih/hsSDL/hssdl/WIN32 2008/4/12 Conal Elliott [EMAIL PROTECTED]: Now I have sdl-config, but still not able to build. Does *anyone* have the SDL package running on Windows? If not, is GLFW the recommended cross-platform GL toolkit? Thanks, - Conal On Fri, Apr 11, 2008 at 8:55 PM, Luke Palmer [EMAIL PROTECTED] wrote: 2008/4/11 Conal Elliott [EMAIL PROTECTED]: I'm trying to install the SDL package (on win32+cygwin), and configure isn't able to find my SDL.dll, though it's on my PATH. Any ideas? - Conal bash-3.2$ cabal install SDL 'SDL-0.5.3' is cached. [1 of 1] Compiling Main ( Setup.lhs, dist\setup/Main.o ) Linking dist\setup\setup.exe ... Configuring SDL-0.5.3... checking for sdl-config... no I currently am not running cygwin, so I could be wrong, but the lack of sdl-config is a red flag. Have you installed sdl and sdl-devel (I think those are the package names) with the cygwin installer yet? Luke ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Rendering TTF fonts in Haskell and OpenGL
I also have made haskell bindings to FreeType, including support for extracting glyph outlines. I haven't had time to publish it yet. Hopefully I'll get around to it soon. On Mon, Feb 18, 2008 at 5:07 AM, Jeremy Shaw [EMAIL PROTECTED] wrote: At Mon, 18 Feb 2008 01:26:17 +, Luke Palmer wrote: I have an immature, but precise and picky implementation that renders text in a ttf font to an OpenGL texture (using SDL-ttf) here: http://svn.luqui.org/svn/misc/luke/work/code/haskell/frp/Fregl/Draw.hs (It may have some dependencies in the same directory). Text support is way at the bottom. Along the same lines, I have an imcomplete, but direct binding to freetype and an incomplete binding to GLX which can be used to draw text to opengl textures: http://n-heptane.com/nhlab/repos/haskell-freetype/ http://n-heptane.com/nhlab/repos/haskell-glx/ This file contains an example of drawing text using GLX+FreeType: http://n-heptane.com/nhlab/repos/haskell-freetype/FreeTypeTest.hs This code has not been touched in a few years, so it probably needs some updates to work with ghc 6.8. Also, I believe the X11 package now has builtin support for ClientMessage, so that module can go away. j. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: HStringTemplate -- An Elegant, Functional, Nifty Templating Engine for Haskell
On Jan 14, 2008 9:47 AM, Sterling Clover [EMAIL PROTECTED] wrote: HStringTemplate is a port of Terrence Parr's lovely StringTemplate (http://www.stringtemplate.org) engine to Haskell. It is available, cabalized, at: darcs get http://code.haskell.org/HStringTemplate/ Template systems have been a crucial missing part of Haskell web development. I am very happy to hear about this project, and will definitely be looking at this in the near future! Thanks, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] JOB OFFER / Haskell for commercial projects?
On Dec 15, 2007 4:40 PM, Duncan Coutts [EMAIL PROTECTED] wrote: On Sat, 2007-12-15 at 14:29 +0100, Wolfgang Jeltsch wrote: [...] I think, there is some issue with the GMP library which is used for implementing the Integer type and which is licensed under the GPL, AFAIK. It's the LGPL not the GPL. See http://gmplib.org/ When GHC compiles a haskell program, it seems to statically link in libgmp. I don't believe that libgmp's license has a static linking exception. Therefore it would seem that the resulting haskell program must be distributed only under the terms of the LGPL(either providing providing the full source of your haskell program, or providing your object files). Or am I missing something? Thanks, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Point and link
On Dec 8, 2007 10:15 PM, Andrew Coppin [EMAIL PROTECTED] wrote: Bit Connor wrote: On Dec 8, 2007 8:19 PM, Andrew Coppin [EMAIL PROTECTED] wrote: http://alts.homelinux.net/shots/195-0.jpg This is the kind of thing I'd like to end up with. Such a GUI would also be cool for visually programming Functional Reactive Programming systems using yampa, by connecting Signal Transformers using the arrow combinators. It would be a glorified version of the arrow do notation syntax. Such a GUI would be cool for a number of projects. It still needs to exist first. ;-) What about Gnome Canvas? It's a widget for Gtk+. I don't think there are haskell bindings for it. Gtk2hs already has bindings to a number of gtk/gnome extensions... maybe Gnome Canvas can be next on the list? Here are screenshots: http://gstreamer.freedesktop.org/data/images/gst-editor/gst-editor-0.4.1.png http://gstreamer.freedesktop.org/data/images/gst-editor/gst-editor-ambisonics.png Peace, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Design of a Physics Interface
I think your integrate function looks like a good idea: integrate :: TimeStep - World - World For bodies, I think you should have a BodyID type, and then to add a body to the world you could have a function: newBody :: (Position, Velocity) - World - (BodyID, World) To delete a body: deleteBody :: BodyID - World - World So your World type will need to contain all of the bodies inside it, something like this: data World = World { gravity :: Vector, bodies :: [(BodyID, (Position, Velocity, BodyProperties))] This is pretty much the way things are done in the FRP paper The Yampa Arcade, where they use an Identity List where the type ILKey = Int. See section 5.5 of the paper: http://www.haskell.org/yale/papers/haskell-workshop03/index.html ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Progress indications
Lazy evaluation can sometimes be helpful here. I once wrote a raytracer that computed the resulting image using a pure function that returned a list of the RGB colors of the pixels: [(Word8, Word8, Word8)] When plotting the pixels to the screen in the IO monad, the value of each pixel would be computed on demand, and so the image was shown progressively as the calculations were performed. I was new to haskell when I made this program and when I ran the program for this first time I was expecting to experience a long pause and then a display of the final image. I was very surprised to see progressive rendering! On Nov 29, 2007 12:03 AM, Andrew Coppin [EMAIL PROTECTED] wrote: In a normal programming language, you might write something like this: for x = 1 to 100 print x ...do slow complex stuff... next x In Haskell, you're more likely to write something like result k = filter my_weird_condition $ map strange_conversion $ unfoldr ... That means that when you try to process the result, lots of processing happens, and your program just appears to lock up until a result is produced. So, like, how do you make it so that some kind of progress information is output while it's working? (Aside from dunking everything into the IO monad and ruining all your beautiful abstractions.) There doesn't seem to be a clean solution to this one... ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Why aren't Float and Double Bounded?
Actually, IEEE numbers are designed in such a way, that if you interpret their bits as integer number, then 'succ' leads you to the next larger representable number. Thus you only have to cast from Float or Double to Int32 or Int64 respectively, call enumFromTo, then cast back to Float or Double, respectively. :-] How do you cast from Float to Int32(or Word32), and back again? I couldn't find an appropriate function. Only thing I can see is going through the Storable interface, but that seems cumbersome and I imagine slow. Also, a related question: How do you convert from Float - Double, and the reverse? Only thing I could find is (fromRational . toRational) which I also imagine to be slow, and I also wonder about accuracy. Thanks, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] The Yampa Arcade: source code available?
I am also happy to hear this. When will the new version be released? Thanks, Bit On Nov 21, 2007 7:11 PM, Paul L [EMAIL PROTECTED] wrote: Just to echo back to the question whether Yampa/AFRP is still being developed, the answer is YES. We are working on an updated version at Yale. But really, we have many choices of doing reactive programming, and AFRP is only one of them. And even for AFRP, there are many choices of combinators and event switch constructs. There is still more research work to be done before we can settle on the interface for next version. I agree that more examples in the line of Space Invaders will serve the purpose of not only illustrating the capability, but also as tutorials to get people started. We'll first clean up existing code and bring it up to date, from which hopefully more examples could be developed. -- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale On 11/20/07, Peter Verswyvelen [EMAIL PROTECTED] wrote: Thanks for the feedback. Unfortunatly the Space Invaders game uses HGL, which is not supported on Windows anymore. Is it supported on Linux? Frag does compile and run on Windows using GHC 6.6.1, so that might be a better starting point. What is the current consensus regarding (A)FRP? Is it a dead end? Are approaches like Modelica better suited for the job? From the point of view of a veteran assembly/C++ game hacker like myself, it is funny to see that the same problems popup when doing reactive programming in a pure language like Haskell or an imperative language like C++... Recursive dependencies are problematic, be it with signals in FRP or with objects in C++. In videogames using an imperative language, this is often solved by just adding a global single frame delay between what is read and what is written. Ugly, but works in many cases. Or a third object is introduced that breaks the recursive dependency between the two problematic objects. If I'm correct, when switching from FRP to AFRP signals (type Signal a = Time - a) are no first class values anymore, only signal functions (type SF a b = Signal a - Signal b) are first class. Furthermore the handling of recursive dependencies/feedback is done solely in a loop arrow. I must say it is frustratring. I finally got to understand FRP from the SOE book, only to find out that it is not really the way to go ;-) Now I'm trying to grasp AFRP. It is incredibly interesting stuff, but for a not-so-abstract-thinking-average programmer like me, it is not an obvious task. Maybe *using* AFRP is easier than understanding the inner details... Maybe it would be a good idea for the community if someone (maybe me, if I find the time ;-) to write a very very simple game using AFRP and GHC 6.8.1? Even simpler than the Space Invaders game (which does not work anymore anyway), but which does show dynamic collections and switching? Maybe like Andrew Coppin mentioned, a very simple Tetris clone? Of course, this is not legal, Tetris is copyrighted, but maybe for tutorial purposes it can be allowed :) Don Stewart wrote: sk: On 19.11.2007, at 19:54, Peter Verswyvelen wrote: I can find the paper, but is the source code for that Space Invaders alike game also available somewhere? it's included here: http://haskell.org/yampa/afrp-0.4-src.tgz btw, does anybody know what's the current state of affairs with yampa/ afrp? is the framework still developed further? Can we get this uploaded to hackage? -- Don ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Tetris
On Nov 21, 2007 5:00 PM, Peter Verswyvelen [EMAIL PROTECTED] wrote: Last time I checked the SDL binding did not work properly on Windows when using GHCi. The next version of hsSDL (current darcs) has documentation that explains how to get ghci working. The trick is to make copies of the SDL.dll, since for some reason the way hsSDL is built through cabal, ghci looks for this dll under 2 additional names. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] libSDL [Tetris]
On Nov 22, 2007 9:39 PM, Andrew Coppin [EMAIL PROTECTED] wrote: Editing the cabal config file is necessary so that the SDL include files and libs can be found. ...because Windows uses DLLs instead of [whatever it is that Unix does]? The reason is that on Unix, there are standard location for header files and libraries. On windows, they can be anywhere, and in the case of SDL, they are inside the directory where SDL was installed. Out of curiosity, is there a reason I'm trying to compile the code myself in the first place? Is it just because that's the Unix way, or is there some deep reason why we can't just download prebuilt binaries? I am in favour of the idea of providing prebuilt binaries. Do you think something like the gtk2hs windows installer would be good? Gtk2hs is certainly drop-dead easy to install, no doubt about that. (Modulo some tricky path fiddling if you install Glade seperately as well... but that's no fault of the Haskell package.) Personally, given how tricky it generally is to build *most* things from source code (you have to have all the right tools to do it), I'd prefer to see *all* packages available in binary form. However, I guess the number of packages and possible target platforms makes this prohibitive... On GNU/Linux it is usually not tricky at all to build things from source, and a lot of people prefer it over installing binaries. I do agree that binary packages should be available for windows. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Tetris
As far as I'm aware, GLUT isn't available for Windows. (Or rather, I tried it once, and it wasn't happy at all. And after some Google searching, I found it's not around any more.) GLUT should work fine on windows, but another alternative is SDL, which works on Windows, GNU/Linux, and Mac The haskell bindings are here: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/SDL-0.5.1 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] New demo/test program for Yhc Javascript backend
This is very cool! I will definitely be playing with this. Safari 3.0.2 for windows gives an error though: Maximum call stack size exceeded. http://darcs.haskell.org/yhc/web/jsdemos/HsWTKDemo.html Line: 87 Sometimes it gives the same error but instead of line 87 with line 314, and other times line 224 or 422 Are you aware of this issue? Thanks On Nov 17, 2007 8:32 AM, Dimitry Golubovsky [EMAIL PROTECTED] wrote: Hi, For those of you who are interested in using Haskell in client-side web application programming: I have added a new demo/test program to this Wiki page (Does it leak?): http://haskell.org/haskellwiki/Yhc/Javascript This demo program shows some progress made since the first announcement of Yhc Javascript backend (Core to Javascript converter) was made about a year ago. Please test the demo for functionality and memory leaks in various browsers. Your feedback is appreciated. The demo program is self-contained (does not require any Haskell libraries beyond those included with Yhc). There is a darcs repo: http://www.golubovsky.org/repos/wsptest/ from which this demo program along with Makefile can be obtained if anybody wants to play with the code. Thanks. -- Dimitry Golubovsky Anywhere on the Web ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Pixel plotter
There should be a WIN32 file with instructions for installing on windows. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] formatTime %Q not working
Hello, I am using ghc 6.6. I am using the formatTime function from Data.Time.Format. The docs say that the %Q format string gives: decimal point and up to 12 second decimals, without trailing zeros. But I always just get an empty string. Here is what happens when I try using ghci: now - getCurrentTime 2007-06-21 13:48:44.298699 UTC formatTime defaultTimeLocale %s now 1182433724 formatTime defaultTimeLocale %Q now %q also always gives me an empty string. Is this a bug? Thanks, Bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] killThread on a terminated thread.
Hello, Is it safe to use killThread to terminate a thread that has already terminated(it's IO action has run to completion)? Or are ThreadIds reused, potentially causing an unwanted thread to be terminated? I'm using ghc 6.6 Thanks, bit ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe