13 / 13
Jun 2007

GHC 6.6 was released almost six months ago. Can we get it added, or upgrade from GHC 6.4 to 6.6?

The main reason is that it includes a much faster string library (ByteString), which would make Haskell viable for many more of the problems.

/bump

Haskell users are effectively precluded from any of the competitions because of this problem.

24 days later

Absolutely agree.. GHC 6.6 will help haskellers think more in solution of the problem rather than fine tuning the IO.

(my code spent >150% of allowed time in IO for INTEST)

GHC has finally been upgraded to 6.6.1... Sorry for the wait.
This version indeed is much faster than the previous one for some SPOJ programs.

That's great news, however some of my problems that compiled before are not compiling anymore. I believe you're not linking some default libraries. This is the error I got for submission 850954:

/tmp/tested.hs:3:7:
Could not find module `Data.Graph.Inductive.Query.MaxFlow':
Use -v to see a list of the files searched for.

Perhaps adding "-package fgl" to the command line should be enough?

Thanks for pointing that out; it seems it was good I hadn't rejudged older solutions yet confused
Unfortunately, fgl library is uninstallable in Debian at the moment (no version for 6.6).
Sorry for the inconvenience, but I'd rather wait a few days for a Debian package (because it's more maintainable this way and because I'm not familiar with haskell and installing libraries from source).

I think new programs are supposed to be even more efficient if they use ByteString instead of String for I/O. I am not sure how much of a difference there is.

If the optimizer was good enough, it should be able to optimize most String manipulations anyway, so there would be no difference. Just don't allocate a seperate [Char] object in the heap for each character. Especially it should be possible if you scan the input lazily, since each list element created would immediately be consumed, so no need to allocate memory for it. I am not sure if GHC does that though.

Without ByteString, I couldn't get acc in INTEST. Using ByteString I was accepted (without changing anything else but I/O).

21 days later

Use "--make" on the command line and it will automatically decide which installed packages need to be available for compilation.

ghc --make File.hs

Then you don't need any -package ___ flags.

GHC programs are compiled with:

ghc -o tested tested.hs -O --make

So, I don't know what you wanted to fix with "--make", but it already has been there for a long time.

Oh, I was just addressing the fellow who suggested "-package fgl".