Skip to content

Task clarifications

We have made some minor updates to the task specification to clarify some points. In particular: “Abort” means abort immediately. You may want to download the new document.


We’re having some trouble with the weather, and we’ve had to make some changes to our specification. The extension is available here, and you can also see this on the
task page.

Here are some new test maps:

UPDATE 21:45 GMT 20120713: Added an extra sentence to clarify exactly when the update/check happens.



We’re getting a few common questions, so we’ve started keep a list of Frequently Asked Questions and answers.

Task announcement

The task details are now available here. You have until 12:00 July 16 Monday UTC for a full submission, or until 12:00 July 14 Saturday UTC for the lightning division.

Happy digging!

One day to go!

Just one day to go! Before we get going, here are some notes on the VM and testing environment:

  • Since Debian squeeze is getting old now, we have decided that submissions may use packages from the testing distribution, wheezy.
  • For those who are still having trouble setting up a Virtual Machine, we have made a Debian Testing image, available here.
    The username/password is icfp/icfp and this account has sudo access.

  • We’ll be asking for a list of packages you’ve had to apt-get as part of your submission. If you have any strange and unusual requirements outside of what is packaged for Debian, it would be best if you can try to include this as part of your submission if possible. However, we will of course do our best to run every submission, if this turns out not to be possible.

We think we’ve managed to mop up enough of the flooding but you may need to look out.

Judging Environment

The judges’ environment will be a Virtual Machine running Debian 6.0 “squeeze” for i386. The VM will have 1 single core CPU, 1 Gb of RAM and 30Gb virtual disk space. There will be no network connection available for submitted programs at runtime.

UPDATE: We have put together a virtual appliance for the Debian testing release for those who would prefer more up to date packages. You can get this from here

Each entry will be run by a general user (not the super user or any privileged account). We will impose a time limit for each submission, which will be announced along with the contest task.

The exact structure of submissions will be announced along with the contest task. However, you should plan to submit either:

  • A statically linked binary compiled for Debian 6.0 for x86
  • Source files for an interpreted language, together with a README giving a list of standard Debian packages which are required to run your program.
  • (In extreme cases only) Source files, a list of standard Debian packages which are required to compile your program, a build script, and a README explaining why you could not submit a binary. An example of a good reason would be: “I only have access to a Raspberry Pi”. We would really prefer it if you could submit binaries however.

In all cases, you should submit your source code, and we will do our best to run each submitted program. We may contact you by email after the contest has ended if we need help with this.

We have found VirtualBox to be an easy to use tool for installing a Virtual Machine on all of Mac OS X, Windows and Linux. You can find torrents for .iso images for Debian 6.0 here. Full details on how to get Debian can be found here.

We recommend preparing a Virtual Machine in advance. Don’t worry, it’s easier than you think, I (Edwin Brady) managed to install and prepare a Debian VM on Mac OS X in around an hour, despite only just having heard of VirtualBox when I started… If you entered last year, details for setting up the environment will be similar (with the exception that we are using Debian for i386).


Registration for teams and individuals is now open, via EventBrite:

Eventbrite - ICFP 2012 Programming Contest

You can register your details any time between now and the end of the contest.

Submission details will be posted shortly – for your submissions you will need the registration number obtained from EventBrite when you sign up. There is a limit of 20 contestants per team; all contestants must register using EventBrite.

Sponsorship News

We are happy to announce that this year’s contest will be sponsored by Facebook, who will be supporting cash prizes and travel to the contest for the prize winners. Full details of the prizes will be announced later.

We have also set up an event page for the contest on Facebook. We hope that there will be enough lambdas for everyone.

Facebook have a university careers site for students and graduates looking for careers or internships.

Contest Announcement

The ICFP Programming Contest 2012 is the 15th instance of the annual programming contest series sponsored by The ACM SIGPLAN International Conference on Functional Programming.  This year, the contest starts at  12:00 July 13 Friday UTC and ends at 12:00 July 16 Monday UTC. There will be a lightning division, ending at 12:00 July 14 Saturday UTC.

The task description will be published here when the contest starts. Solutions to the task must be submitted online before the contest ends. Details of the submission procedure will be announced along with the contest task.

This is an open contest. Anybody may participate except for the contest organisers and members of the same group as the the contest chairs. No advance registration or entry fee is required.

Any programming language(s) may be used as long as the submitted program can be run by the judges on a standard Linux environment with no network connection. Details of the judges’ environment will be announced later.

There will be cash prizes for the first and second place teams, the team winning the lightning divison, and a discretionary judges’ prize. There may also be travel support for the winning teams to attend the conference. (The prizes and travel support are subject to the budget plan of ICFP 2012 pending approval by ACM.)

In addition, the organisers will declare during the conference that:

  • the first place team’s language is “the programming language of choice for discriminating hackers”,
  • the second place team’s language is “a fine tool for many applications”,
  • the winning lightning division team’s language is “very suitable for rapid prototyping”, and
  • the team winning the judges’ prize is “an extremely cool bunch of hackers”.

Additional announcements will be made at, including
the rules and details of the task.

The contest organisers are: Kevin Hammond (co-chair), Edwin Brady (co-chair), Brian Campbell, Sam Lindley, Robert Atkey and Sam Elliott.