
On Sat, May 05, 2007 at 03:33:03PM -0500, Derek Elkins wrote:
Try adding strictness annotations to all the components of all your data structures (i.e. put a ! before the type). Not all of the need it, but I doubt any need to be lazy either. Probably the reason quant8 seems to be taking so much time is that it is where a lot of stuff finally gets forced. Certainly, for things that are "primitive" like Colour and Vector you want the components to be strict, in general.
(In theory at least) That would not be an issue at all - the GHC profiler uses lexical, *not dynamic*, call stacks.
I did this for the program and ran System1 100 and it took maybe a couple of minutes, it seemed to be going at a decent clip. 200x200 should take 4 times longer, I assume, and I still don't see that taking 15 minutes. This is on a laptop running on a Mobile AMD Sempron 3500+. Also, you have many many superfluous parentheses and use a different naming convention from representative Haskell code (namely camelCase).
Stefan