Re: How do I force evaluation?
Hi, I want to do something like: | main = do | monstrousDataStructure - monstrousComputation | hPutStr stderr "success!" | ... The important point is that I want to make sure that the computation has terminated and not failed before I go to `...'. If the monstrous data structure has a 'serious' equality (not always returning True), you can try: | main = do | monstrousDataStructure - monstrousComputation | if (monstrousDataStructure == monstrousDataStructure) then |hPutStr stderr "success!" | else | hPutStr stderr "failure?" The idea is that comparing for equality walks over the entire data structure, forcing evaluation because every location has to be inspected. Hope this helps, Jan de Wit ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
GHC HQ are looking for a Linux-IA64 box
[Apologies if you get multiple copies of this msg.] Folks, Following a recent discussion about future development directions for GHC, it seems one thing we want to start thinking about is support for the IA64 architecture. Does any kind person have an IA64 box, running Linux, on which we could have an account? The extent of the work would be to make GHC's runtime-support system work again on a 64-bit platform (it used to), and possibly to build an IA64 native code generator. This work would be spread across a couple of months, I imagine. Basic requirements are: * IA64 Linux box, with development tools (gcc, perl, autoconf, gdb, etc -- all the usual Linux/Unix stuff). * As many spare processor cycles as possible. GHC building/debugging tends to CPU intensive. Also, probably at least 256MB of memory would be necessary to keep us out of trouble. * At a bare minimum, 300 MB of free disk space; 1 GB would be preferable, since it would allow more thorough testing of the system. * Decent, permanent, reliable internet connection from so that we can work remotely (obviously) and so that we can talk to our CVS server. I'd say at a bare minimum a 128 kb/sec connection. Preferably as few as possible network hops from Cambridge, UK. This work is likely to be on-and-off (not all the time) over a couple of months, I'd guess. We probably won't be ready to start on it for at least a month, so some time around the start of May would be when we'd really want to start moving on this. Availability of such a machine would be a useful contribution to the GHC development effort, so we'd be grateful if any of you could point us in the right direction. J (speaking for the GHC crew as a whole) ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: GHC HQ are looking for a Linux-IA64 box
On 12-Mar-2001, Julian Seward (Intl Vendor) [EMAIL PROTECTED] wrote: Does any kind person have an IA64 box, running Linux, on which we could have an account? You might want to check out SourceForge: http://ia-64.sourceforge.net/. -- Fergus Henderson [EMAIL PROTECTED] | "I have always known that the pursuit | of excellence is a lethal habit" WWW: http://www.cs.mu.oz.au/~fjh | -- the last words of T. S. Garp. ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: How do I force evaluation?
Yes, that does not look very nice but it should work. In a private response, I was also pointed out the alternative solution of using case together with `seq` to trigger evaluation, which looked like the default way to me (what else is seq for?): | case monstrousDS `seq` True of True - hPutStr stderr "ok." I first tried to wrap this in a `force' function, thereby proving that I still haven't grasped the concept entirely. (-: But maybe it is possible to make a primitive of this in the same way as has been done with assert? Anyway thanks for all your help, Matthias "Jan de Wit" [EMAIL PROTECTED] writes: Hi, I want to do something like: | main = do | monstrousDataStructure - monstrousComputation | hPutStr stderr "success!" | ... The important point is that I want to make sure that the computation has terminated and not failed before I go to `...'. If the monstrous data structure has a 'serious' equality (not always returning True), you can try: | main = do | monstrousDataStructure - monstrousComputation | if (monstrousDataStructure == monstrousDataStructure) then |hPutStr stderr "success!" | else | hPutStr stderr "failure?" The idea is that comparing for equality walks over the entire data structure, forcing evaluation because every location has to be inspected. Hope this helps, Jan de Wit ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users -- Matthias Fischmann | Research Engineer | +358 (9) 8565 7474 [EMAIL PROTECTED] | SSH Communication Security Corp | +358 (40) 752 5291 ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users