Re: How do I force evaluation?

2001-03-12 Thread Jan de Wit

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

2001-03-12 Thread Julian Seward (Intl Vendor)


[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

2001-03-12 Thread Fergus Henderson

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?

2001-03-12 Thread Matthias Fischmann




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