Third Annual ICFP Programming Contest:  Submission Information

Last Update:  Tuesday August 29, 2000 05:04:59 PM


New:

The contest is now over!!!

Submissions will no longer be accepted.

Please send all email inquiries to icfp00@cs.cornell.edu.  We will try to answer your questions and keep the FAQ updated.  


Contest Platform:

The contest platform will  be a 200MHz Pentium II with 64MB RAM running Red Hat Linux version 6.2.  (Though this is a pretty old configuration hardware-wise, we can get lots of these machines which will simplify the evaluation phase.)   See the machine configuration page for more information about pre-installed software.


What to Submit:

You should submit a gzipped tar file as your entry.  You may submit multiple entries during the contest, and we will use the most recently submitted file during evaluation.  For space reasons, we will not retain old versions.

The tar file should contain the following:

We have installed a number of standard functional language implementations on the test machines, including the latest versions of GHC, Hugs, SML/NJ, O'Caml, and MzScheme. We have installed these languages only in case we need to debug your code to get it to work. The RPMs that we used to install these language implementations or paths to the relevant directories are available on the machine description page.  Hopefully, we will also provide a test environment so that you can upload a sample program and ensure that it builds and executes correctly on our platform.   

However, the contest machines may not have the language implementations or shared libraries for your implementation language, may be configured in an unexpected way, and/or we may not have the test environment set up with enough lead time.  Thus, your best bet is to submit a statically linked executable and to include any files that you need.  If your favorite language cannot emit executable binaries, then let ./runme be an executable shell script that runs an interpreter binary located in ./support.


How to Submit:

Because of Cornell is in the process of upgrading it's webservers we've decided to do the submission process via email, which will be more reliable than the webserver right now.

There are two forms of email submission
   1. Submit a URL to your submission which we will then download, or
   2. Submit an email with the submission as an attached file.

Choice #1 is the preferred method of submission for large files (>= 2MB).

Choice #2 is fine if you only have access to email and can't easily make your submission available for download via the web or anonymous ftp.

Details regarding the two options are below.  Remember that all submissions should be a single tarred and gzipped file with contents as specified above. At a minimum, your tar file should contain buildme, README, and runme files.  Please keep copies of the tar file if you submit multiple times and the associated md5 sums just in case.... 

Choice #1 (Email a URL that points to your gzipped tar file)

Create an email with the following text (without the --cut here-- lines) and send it to icfp-sub@cs.cornell.edu.

-----cut here----
[submission]
team: <name of your team>
contact-email: <if different than sender>
address1: <first line of address>
address2: <second line of address>
phone: <phone number>
md5sum: <md5sum of your submission here>
url: <url to the gzipped tar file>
-----cut here-----

Fill in each field as appropriate.  Don't add anything else as it will confuse our parser. It's especially important to not add any leading white space to the lines. The subject of the email and the name of the submitted file do not matter.

The contact-email field is optional and only necessary if it's different from the submission address.  However all errors and replies get sent back to the sender of the email (based on the Return-Path: header of the email message.) The contact email address is who we complain to after we get all the submissions and need to figure who to bug about issues unrelated to the submission process.

Please make sure your mailer isn't sending anything other than plain old text. Make sure to send the message to icfp-sub@cs.cornell.edu.

Choice #2 (Email your gzipped tar file with our handy shell script)

First, create an information file (say info.txt) with the following information:

-----cut here----
[submission]
team: <name of your team>
contact-email: <if different than sender>
address1: <first line of address>
address2: <second line of address>
phone: <phone number>
md5sum: <md5sum of your submission here>
-----cut here-----

Fill in each field as appropriate.  Don't add anything else as it will confuse our parser. It's especially important to not add any leading white space to the lines. The subject of the email and the name of the submitted file do not matter.  The contact-email field is optional and only necessary if it's different from the submission address.  However all errors and replies get sent back to the sender of the email (based on the Return-Path: header of the email message.) The contact email address is who we complain to after we get all the submissions and need to figure who to bug about issues unrelated to the submission process.

Download the submit.sh shell script and make it executable (chmod u+x).  Then invoke it giving it your information file and your tar file.

  submit.sh <information file> <gzipped tar file for your submission>

The script requires metamail to execute, which should be standard on any Linux/UNIX system.  If you have trouble with the script, then you can use any mailer that can send a multipart/mixed MIME message.  The message should be sent to icfp-sub@cs.cornell.edu and should start with the fields listed above.  You should then attach your gzipped tar file as a base64 encoded file.


What Happens After you Submit

After you submit you will receive a reply back from our auto-responder.  Given that this is email and not the web, please be patient.  The message should tell you whether the submission succeeded. We will check the md5 sum of the file we receive against the submitted version.

Those who submit a url, may get a checksum error because of an incorrect URL. Please, double check you the URL returned in our acknowledgement, before resubmitting.


What Happens If We Goof Up (Don't Panic)

If there's a bug with our script, it will generate an error message which gets mailed back to you and to a real live person, who will try to fix the problem and get back to you hastily. Also all emails are logged, and since we have md5 sums and message time stamps, if you keep copies of the submitted files, if the world comes to an end we can still make progress.  Please email icfp00@cs.cornell.edu for any questions you may have regarding the process.

* Python hackers may figure out we are using ConfigParser module to do
  our parsing, as well as Python to do all the processing of incoming


Back to the ICFP Programming Contest Main Page