6 Dec
2001
6 Dec
'01
11:43 p.m.
Hi,
Is this what I think it is? Do you benchmark the interpreter? Interpreted code isn't optimised. When I compile
main = print $ sum [1..10000000]
with -O2, it takes 13s on a 600MHz P3 and runs in 1.5MB of space.
Out of curiousity, why doesn't this get compiled down to main = print 50000005000000 ? That is, why doesn't the compiler carry out the calculation and then just embed that in the compiled version? I know that some C compilers do (at least somewhat) similar things when, for example, you say: x = y * 4 it will rewrite this as x = y << 2 and even do more complicated stuff, like if you say x = y * 12 it will give x = 3 * (y << 2) or whatnot. can I expect this from ghc/nhc/etc? - hal